Prefix Tuning(プレフィックスチューニング)
Transformer の各層の Key-Value ペアに学習可能な連続ベクトル(Prefix)を挿入するパラメータ効率的ファインチューニング手法。Prompt Tuning が入力 embedding 層のみに作用するのに対し、Prefix Tuning は全層の Attention に介入するため、より細かな制御が可能。
Prefix Tuning(プレフィックスチューニング)とは
Prefix Tuning は、2021 年に Stanford の Li & Liang が提案したパラメータ効率的ファインチューニング手法である。LLM の各 Transformer 層の Multi-Head Attention における Key と Value に、学習可能な連続ベクトル(Prefix)を挿入する。Prompt Tuning が入力 embedding 層にのみ Soft Prompt を追加するのに対し、Prefix Tuning はモデルの全深度にわたって介入する点が異なる。
概要と仕組み
Prefix Tuning では、各 Transformer 層 l の Attention 計算において、入力由来の Key/Value に加えて、学習可能な Prefix ベクトル P_K^l と P_V^l を先頭に結合する。
- 通常の Attention:Attention(Q, K, V)
- Prefix Tuning:Attention(Q, [P_K; K], [P_V; V])
ここで P_K と P_V は各層ごとに独立したパラメータを持つ。例えば GPT-2 Medium(24 層、d=1024、16 ヘッド)で Prefix 長 10 の場合:
- 各層のパラメータ:10 × 1024 × 2(K と V)= 20,480
- 全層合計:24 × 20,480 = 491,520 パラメータ(モデル全体 355M の 0.14%)
Prompt Tuning vs Prefix Tuning 比較
| 特性 | Prompt Tuning | Prefix Tuning |
|---|---|---|
| 介入位置 | embedding 層のみ | 全 Transformer 層の KV |
| パラメータ数(同トークン数) | k × d | k × d × 2 × L(L=層数) |
| 表現力 | 入力表現の制御のみ | 全層の Attention パターン制御 |
| 小規模モデルでの性能 | 低い | 比較的高い |
| 実装の複雑さ | 簡単 | やや複雑 |
| メモリ使用量 | 非常に少ない | Prompt Tuning の L×2 倍 |
Reparameterization トリック
直接 Prefix を最適化すると不安定になるため、原論文では MLP を経由する reparameterization を採用している。
- 小さな行列 P'(k × d'、d' < d)をパラメータとして保持
- 2 層 MLP(d' → d' → d)で P' を P に変換
- 学習中は P' と MLP パラメータを更新、推論時は MLP を通した最終的な P のみ使用
この手法により学習が安定し、Prefix 長 10 でもフルファインチューニングの 97% の性能を達成する。
ベンチマーク結果
| タスク | Full FT | Prefix Tuning (0.1%) | Prompt Tuning (0.01%) |
|---|---|---|---|
| E2E NLG | 68.2 BLEU | 69.7 BLEU | 64.1 BLEU |
| WebNLG | 64.2 BLEU | 65.1 BLEU | 60.3 BLEU |
| DART | 46.2 BLEU | 46.4 BLEU | 42.8 BLEU |
| SST-2 | 94.8% | 93.5% | 92.1% |
自然言語生成(NLG)タスクではフルファインチューニングを上回るケースもある。特にテーブル→テキスト変換タスクで強みを発揮する。
2025〜2026 年の発展
- Prefix Tuning v2:層ごとに異なる Prefix 長を適応的に設定する手法が登場
- Hugging Face PEFT 統合:
PrefixTuningConfigで簡単に設定可能 - LLaMA/Mistral 対応:Decoder-only モデルでの Prefix Tuning が標準化
- LoRA との併用:Prefix Tuning + LoRA のハイブリッドで更なる性能向上
活用シーン
- 自然言語生成タスク(要約、テーブル→テキスト、対話生成)で特に有効
- 中規模モデル(1B〜7B):Prompt Tuning では性能不足、LoRA ほどのパラメータ不要なケース
- マルチタスク学習:タスクごとに Prefix を管理し、共有モデルで複数タスク対応
よくある質問(FAQ)
Q1: Prefix Tuning は Decoder-only モデルでも使えますか? A: 使える。原論文は GPT-2(Decoder-only)で検証しており、Llama 3.1、Mistral、Qwen 2.5 等の最新モデルでも利用可能。Hugging Face PEFT が公式サポートしている。
Q2: Prefix 長はどの程度が最適ですか? A: タスクによるが、一般的に 10〜30 が推奨。NLG タスクでは 20〜50 が有効。200 以上は性能が飽和しメモリ効率が悪化する。
Q3: Prefix Tuning と Adapter はどう違いますか? A: Adapter は各 Transformer 層にボトルネック型の小さなネットワークを挿入する手法で、Feed-Forward 層の後に追加される。Prefix Tuning は Attention の KV に介入する。両者は補完的で併用も可能。
まとめ
- Prefix Tuning は全 Transformer 層の KV に学習可能な Prefix を挿入する PEFT 手法
- Prompt Tuning より高い表現力を持ち、中規模モデルでも安定した性能
- 自然言語生成タスクでフルファインチューニングを上回ることがある
- reparameterization トリックで学習安定性を確保