PEFT

PEFT

PEFT(Parameter-Efficient Fine-Tuning)とは、大規模言語モデルの全パラメータではなく一部のみを更新することで、少ない計算資源とデータでモデルを特定タスクに適応させるファインチューニング手法の総称である。

数十億パラメータを持つ LLM をそのまま全パラメータ学習させようとすると、A100 を 8 枚並べても半日以上かかる。予算もハードウェアも限られた現場では、そもそも選択肢に入らないことが多い。PEFT はこの壁を「モデルの大部分を凍結し、追加した少量のパラメータだけを学習する」というアプローチで突破する。

代表的な手法を整理すると、以下のようになる。

  • LoRA(Low-Rank Adaptation)— 重み行列に低ランクの差分を挿入する。追加パラメータはモデル全体の 0.1〜1% 程度。現時点で最も採用例が多い
  • QLoRA — LoRA に 4bit 量子化を組み合わせ、GPU メモリをさらに半分以下に圧縮する。コンシューマ GPU でも 7B モデルの学習が回る
  • Prefix Tuning / Prompt Tuning — 入力側に学習可能なベクトルを追加する方式。モデル本体には一切手を加えない
  • Adapter — Transformer 層の間にボトルネック層を挿入する。LoRA 登場以前の主流だったが、今はやや影が薄い

筆者のチームでは、7B パラメータの LLM を LoRA で A100 1 枚・約 3 時間で学習させ、タスク特化の精度をベースモデル比 15〜20% 引き上げた。フル FT なら同じタスクに A100×8・12 時間は必要だったので、コスト差は歴然だった。

一方で万能ではない。モデルが元々持っていない能力——たとえば未対応言語での生成——を PEFT だけで獲得させるのは難しく、その場合は継続事前学習(Continued Pre-training)と組み合わせる必要が出てくる。

よく「PEFT と RAG はどちらを使うべきか」と聞かれるが、そもそも役割が違う。RAG は外部知識の参照、PEFT はモデルの振る舞いやスタイルの調整を担う。社内ナレッジを正確に引用させたいなら RAG、回答のトーンや形式を揃えたいなら PEFT、というのが実務での使い分けの出発点になる。両方を組み合わせるケースも珍しくない。