AI・機械学習
上級

Prefix Tuning(プレフィックスチューニング)

Transformer の各層の Key-Value ペアに学習可能な連続ベクトル(Prefix)を挿入するパラメータ効率的ファインチューニング手法。Prompt Tuning が入力 embedding 層のみに作用するのに対し、Prefix Tuning は全層の Attention に介入するため、より細かな制御が可能。

0 回閲覧
0 いいね

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 TuningPrefix Tuning
介入位置embedding 層のみ全 Transformer 層の KV
パラメータ数(同トークン数)k × dk × d × 2 × L(L=層数)
表現力入力表現の制御のみ全層の Attention パターン制御
小規模モデルでの性能低い比較的高い
実装の複雑さ簡単やや複雑
メモリ使用量非常に少ないPrompt Tuning の L×2 倍

Reparameterization トリック

直接 Prefix を最適化すると不安定になるため、原論文では MLP を経由する reparameterization を採用している。

  1. 小さな行列 P'(k × d'、d' < d)をパラメータとして保持
  2. 2 層 MLP(d' → d' → d)で P' を P に変換
  3. 学習中は P' と MLP パラメータを更新、推論時は MLP を通した最終的な P のみ使用

この手法により学習が安定し、Prefix 長 10 でもフルファインチューニングの 97% の性能を達成する。

ベンチマーク結果

タスクFull FTPrefix Tuning (0.1%)Prompt Tuning (0.01%)
E2E NLG68.2 BLEU69.7 BLEU64.1 BLEU
WebNLG64.2 BLEU65.1 BLEU60.3 BLEU
DART46.2 BLEU46.4 BLEU42.8 BLEU
SST-294.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 トリックで学習安定性を確保