PEFTとは

PEFTとは、巨大なAIモデルの全パラメータを更新し直すのではなく、ごく一部の追加パラメータだけを学習させて新しい用途に適応させる手法の総称です。学習済みのモデルをそのまま使うと自社の業務には合わないことがあり、そこで追加学習(ファインチューニング)を行います。ただし数十億規模のパラメータをすべて更新するのは計算も保存も重すぎるため、必要な部分だけを小さく学習させる工夫がPEFTにあたります。

英語表記:Parameter-Efficient Fine-Tuning(PEFT)

PEFTの仕組み

基本となる考え方はシンプルです。元のモデルの重みは凍結したまま動かさず、新たに付け足した小さなパラメータだけを訓練する。その代表格が、重みの変化を小さな行列で近似するLoRAです。モデルを丸ごと作り直さないので、学習で更新する量はごくわずかで済みます。HuggingFaceが公開する同名のライブラリ「PEFT」もよく使われ、LoRAをはじめ複数の方式をまとめて扱えるようになっています。

ファインチューニングとの関係

PEFTは、ファインチューニングを安く軽く行うための方法の集まりと捉えると分かりやすいです。すべての重みを書き換える従来のやり方(フルファインチューニング)に対し、PEFTはごく一部だけを学習させます。その仲間には、LoRAを土台にしたQLoRADoRAのほか、モデルの重みには一切触れず入力側の「仮想的な指示」だけを学ぶ方式もあります。性能をフルに近い水準へ保ちつつ、コストを大きく下げることを目指す考え方です。

ビジネスでの使われ方

PEFTの利点は、手元の限られた計算資源でも大きなモデルを自社用に調整できる点にあります。学習の成果は元のモデルとは別の小さなファイル(アダプタ)として保存でき、用途ごとに差し替えて使えます。タスクの数だけモデルを丸ごと複製しなくて済むので、保存場所の節約にもつながるでしょう。自社データでAIを育てたい企業にとって、現実的なコストで試せる入り口になります。

Topic重みを1つも書き換えない調整方法もある

PEFTと聞くと「モデルの一部を書き換える」と思いがちですが、仲間の中には元のモデルの重みを1つも変えない方式もあります。入力の先頭に学習可能な「仮想トークン」をいくつか付け足し、その数百個ぶんの値だけを訓練するソフトプロンプトと呼ばれる手法です。本体には指一本触れず、いわば短い「合言葉」を覚えさせるだけで新しい用途へ向ける。少ないパラメータで効率よく適応させるというPEFTらしい発想が、よく表れた一例といえます。

PEFTに関するよくある質問

PEFTとファインチューニングは何が違いますか?
ファインチューニングはモデルを追加学習で調整すること全般を指します。PEFTはその中でも、全部の重みを更新せずごく一部だけを学習させる「安く軽く行うやり方の総称」で、対立するものではなく、ファインチューニングを効率化する方法の集まりです。
LoRAとPEFTはどういう関係ですか?
LoRAはPEFTを代表する具体的な一手法です。PEFTという大きな枠の中に、LoRAやそれを発展させたQLoRA・DoRAなどが含まれる、という親子のような関係になります。
PEFTを使うと性能は落ちませんか?
学習する部分を絞っても、多くのタスクで全部を更新した場合に近い性能が得られると報告されています。計算と保存のコストを大きく下げつつ、実用上の精度を保ちやすい点が利点です。

PEFTに関連する記事