LLM の重みを固定したまま、入力に付加する学習可能な連続トークン(Soft Prompt)だけを最適化するパラメータ効率的なファインチューニング手法。Google Research が 2021 年に提案し、フルファインチューニングの 0.01% 未満のパラメータで同等性能を達成できることを示した。
Prompt Tuning は、大規模言語モデル(LLM)の全パラメータを更新せず、入力シーケンスの先頭に挿入する少数の学習可能なベクトル(Soft Prompt)だけを勾配降下法で最適化する手法である。2021 年に Google Research の Lester らが論文「The Power of Scale for Parameter-Efficient Prompt Tuning」で提案した。T5-XXL(110 億パラメータ)で Soft Prompt わずか 20,480 パラメータ(全体の 0.01%)を学習するだけで、SuperGLUE ベンチマーク上でフルファインチューニングと同等のスコアを記録した点が画期的であった。
従来の LLM 活用では、タスクごとにモデル全体をファインチューニングする必要があった。しかしモデルサイズが数百億〜数兆パラメータに達した現在、全パラメータ更新には A100 80GB × 8 枚以上の GPU クラスタと数日〜数週間の訓練時間が必要になる。Prompt Tuning はこの問題を根本的に解決する。
2021 年の提案以降、Prefix Tuning(Li & Liang, 2021)、P-Tuning v2(Liu et al., 2022)など派生手法が多数登場し、2025〜2026 年現在では LoRA/QLoRA と並ぶ PEFT(Parameter-Efficient Fine-Tuning)の主要カテゴリとして広く利用されている。
Prompt Tuning の学習プロセスは以下のステップで進む。
| パラメータ | 推奨値 | 影響 |
|---|---|---|
| Prompt Length(トークン数) | 20〜100 | 長いほど表現力↑ だがメモリ消費↑ |
| Learning Rate | 0.1〜0.3 | 通常の LM 学習率(1e-5)より桁違いに大きい |
| 初期化方法 | 語彙トークン | ランダム初期化より収束が 2〜5 倍速い |
| Batch Size | 16〜32 | タスクデータ量に依存 |
| Epochs | 30〜100 | 小規模データセットでは多めに |
Prompt Tuning の最大の特徴は、モデルサイズが大きいほどフルファインチューニングとの性能差が縮まる点である。
| モデルサイズ | Prompt Tuning 精度 | Full FT 精度 | 差分 |
|---|---|---|---|
| T5-Small(60M) | 68.2% | 82.1% | -13.9pt |
| T5-Base(220M) | 74.8% | 84.3% | -9.5pt |
| T5-Large(770M) | 81.5% | 86.0% | -4.5pt |
| T5-XL(3B) | 84.7% | 87.2% | -2.5pt |
| T5-XXL(11B) | 86.4% | 87.0% | -0.6pt |
T5-XXL クラスでは差がわずか 0.6 ポイントまで縮小する。2025〜2026 年の 70B〜405B クラスのモデルでは事実上同等の性能が得られるケースが多い。
2026 年現在、主要な PEFT ライブラリが Prompt Tuning をサポートしている。
PromptTuningConfig クラスで数行の設定で利用可能。prompt_tuning_init="TEXT" で語彙初期化を指定# Hugging Face PEFT での実装例
from peft import PromptTuningConfig, get_peft_model, TaskType
config = PromptTuningConfig(
task_type=TaskType.CAUSAL_LM,
num_virtual_tokens=20,
prompt_tuning_init="TEXT",
prompt_tuning_init_text="Classify the sentiment of the following text:",
tokenizer_name_or_path="meta-llama/Llama-3.1-8B",
)
model = get_peft_model(base_model, config)
# 学習可能パラメータ: 20 * 4096 = 81,920(全体の 0.001%)
Q1: Prompt Tuning と Prompt Engineering の違いは何ですか? A: Prompt Engineering は人間が自然言語でプロンプトを設計する手作業の手法で、学習は伴わない。Prompt Tuning は勾配降下法で連続ベクトル空間上の最適な Soft Prompt を自動学習する手法であり、性能上限が大幅に高い。
Q2: Prompt Tuning と LoRA はどちらを選ぶべきですか? A: 100B 以上の超大規模モデルでタスク切替を頻繁に行う場合は Prompt Tuning が有利。7B〜70B クラスで単一タスクの性能を最大化したい場合は LoRA/QLoRA が有利。両者を組み合わせることも可能。
Q3: Soft Prompt のトークン数はいくつが最適ですか? A: 一般的には 20〜50 トークンで十分。100 トークン以上に増やしても性能向上は飽和する一方、推論時のレイテンシが増加する。タスクの複雑さに応じて 20 から始めて徐々に増やすアプローチが推奨される。
Q4: 学習にはどの程度のデータが必要ですか? A: 数百サンプルから有効。ただし 1,000〜10,000 サンプルあると安定する。フルファインチューニングと比較してデータ効率が良いのも Prompt Tuning の利点の一つ。