Transformer の各層の Key-Value ペアに学習可能な連続ベクトル(Prefix)を挿入するパラメータ効率的ファインチューニング手法。Prompt Tuning が入力 embedding 層のみに作用するのに対し、Prefix Tuning は全層の Attention に介入するため、より細かな制御が可能。
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 を先頭に結合する。
ここで P_K と P_V は各層ごとに独立したパラメータを持つ。例えば GPT-2 Medium(24 層、d=1024、16 ヘッド)で Prefix 長 10 の場合:
| 特性 | Prompt Tuning | Prefix Tuning |
|---|---|---|
| 介入位置 | embedding 層のみ | 全 Transformer 層の KV |
| パラメータ数(同トークン数) | k × d | k × d × 2 × L(L=層数) |
| 表現力 | 入力表現の制御のみ | 全層の Attention パターン制御 |
| 小規模モデルでの性能 | 低い | 比較的高い |
| 実装の複雑さ | 簡単 | やや複雑 |
| メモリ使用量 | 非常に少ない | Prompt Tuning の L×2 倍 |
直接 Prefix を最適化すると不安定になるため、原論文では MLP を経由する reparameterization を採用している。
この手法により学習が安定し、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)タスクではフルファインチューニングを上回るケースもある。特にテーブル→テキスト変換タスクで強みを発揮する。
PrefixTuningConfig で簡単に設定可能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 に介入する。両者は補完的で併用も可能。