プレフィックスチューニング(プレフィックスチューニング)
LLMの全パラメータをフリーズしたまま、入力の前に学習可能な仮想トークン列(プレフィックス)を付加して特定タスクに適応させるPEFT手法。
プレフィックスチューニングとは
プレフィックスチューニング(Prefix-Tuning)は、2021年にStanfordのLi & Liangが提案した論文「Prefix-Tuning: Optimizing Continuous Prompts for Generation」で紹介されたPEFT手法。LLMの全パラメータをフリーズしたまま、入力の前に付加する学習可能なベクトル列(プレフィックス)のみを訓練する。
仕組み
通常のTransformerは入力トークンのEmbeddingから始まるが、プレフィックスチューニングは各レイヤーのKey-Value(KV)ペアにも仮想ベクトルを注入する:
通常の入力: [x1, x2, x3, ..., xn]
プレフィックスあり: [p1, p2, ..., pk, x1, x2, ..., xn]
さらに深い形式(各レイヤーへの注入):
各レイヤーl: K_l = [P_K_l; K_x_l] (プレフィックスKVと入力KVの連結)
V_l = [P_V_l; V_x_l]
これにより、各Transformerブロックがタスク関連の文脈情報を参照できる。
ハードプロンプト vs ソフトプロンプト
| 種類 | 説明 | 例 |
|---|---|---|
| ハードプロンプト | 実際のテキストトークン | "Translate to French:" |
| ソフトプロンプト(プレフィックス) | 連続ベクトル(意味不明だが高性能) | 数値ベクトル列 |
ソフトプロンプトは勾配降下で最適化されるため、人間が設計する必要がなく、一般にハードプロンプトより高い性能を発揮する。
プレフィックスチューニングのバリエーション
Prompt Tuning(2021, Google)
プレフィックスチューニングをシンプル化し、入力層のみに仮想トークンを追加。学習パラメータ数がさらに少なく、モデルサイズが大きいほど効果的(T5 11BではフルFTと同等)。
P-Tuning v2(2022, THU)
プレフィックスチューニングを自然言語理解(NLU)タスクにも拡張し、各レイヤーへのプレフィックス注入をNERや関係抽出でも有効にした。
LoRAとの比較
| 比較項目 | プレフィックスチューニング | LoRA |
|---|---|---|
| 学習パラメータ | プレフィックス長×d_model | ランク×入出力次元 |
| コンテキスト消費 | あり(プレフィックス長分) | なし |
| 推論オーバーヘッド | わずかにあり | マージ後はゼロ |
| 実装複雑度 | 中(各レイヤー注入が必要) | 低 |
| 2024年現在の普及度 | 低(LoRAが主流) | 非常に高い |
実用上の位置づけ
2021年当時はパラメータ効率の革新として注目されたが、2022年以降はLoRAとQLoRAが実用性・性能面で上回り、産業界での採用はLoRA系が主流となっている。プレフィックスチューニングはPEFT手法の理論的理解や、「モデル本体に一切手を触れたくない」マルチテナント環境での運用(タスクごとにプレフィックスファイルを管理)で今も価値を持つ。