AI・機械学習
上級

Prompt Tuning(プロンプトチューニング)

LLM の重みを固定したまま、入力に付加する学習可能な連続トークン(Soft Prompt)だけを最適化するパラメータ効率的なファインチューニング手法。Google Research が 2021 年に提案し、フルファインチューニングの 0.01% 未満のパラメータで同等性能を達成できることを示した。

0 回閲覧
0 いいね

Prompt Tuning(プロンプトチューニング)とは

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 はこの問題を根本的に解決する。

  • モデル本体は完全に凍結:推論時と同じ重みのまま
  • 学習対象は Soft Prompt のみ:通常 10〜100 トークン分の連続ベクトル(各トークンは embedding 次元 d のベクトル)
  • タスク切替が瞬時:モデルを再ロードせず Soft Prompt を差し替えるだけ
  • マルチテナント運用に最適:1 つの LLM を共有し、ユーザーごとに異なる Soft Prompt を適用

2021 年の提案以降、Prefix Tuning(Li & Liang, 2021)、P-Tuning v2(Liu et al., 2022)など派生手法が多数登場し、2025〜2026 年現在では LoRA/QLoRA と並ぶ PEFT(Parameter-Efficient Fine-Tuning)の主要カテゴリとして広く利用されている。

技術的な仕組み

Prompt Tuning の学習プロセスは以下のステップで進む。

  1. 初期化:ランダムベクトル、または既存の語彙トークン埋め込みから Soft Prompt を初期化(語彙初期化の方が収束が早い)
  2. 前方伝播:Soft Prompt + 入力テキストを結合し、凍結済みモデルに通す
  3. 損失計算:タスク固有の損失関数(分類なら Cross-Entropy、生成なら Language Modeling Loss)を計算
  4. 逆伝播:勾配を Soft Prompt パラメータにのみ伝播させ更新(モデル本体の勾配は計算しない)
  5. 反復:数千〜数万ステップで収束

主要ハイパーパラメータ

パラメータ推奨値影響
Prompt Length(トークン数)20〜100長いほど表現力↑ だがメモリ消費↑
Learning Rate0.1〜0.3通常の LM 学習率(1e-5)より桁違いに大きい
初期化方法語彙トークンランダム初期化より収束が 2〜5 倍速い
Batch Size16〜32タスクデータ量に依存
Epochs30〜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 をサポートしている。

  • Hugging Face PEFT(v0.14+):PromptTuningConfig クラスで数行の設定で利用可能。prompt_tuning_init="TEXT" で語彙初期化を指定
  • OpenPrompt:Prompt Tuning 専門のフレームワーク。テンプレート設計やバーバライザー設定をサポート
  • LLaMA-Factory:LoRA と並んで Prompt Tuning をワンクリックで設定可能
# 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%)

活用シーンと制約

適したユースケース

  • マルチテナント SaaS:1 モデルを共有し顧客ごとに Soft Prompt を配布
  • タスク切替が頻繁:感情分析・要約・翻訳を 1 モデルで切り替え
  • GPU メモリが限られる環境:RTX 4090(24GB)1 枚でも 7B モデルの Prompt Tuning が可能
  • データが少量:数百〜数千サンプルでも十分な性能

制約と注意点

  • 小規模モデルでは性能不足:3B 未満ではフルファインチューニングとの差が大きい
  • 推論レイテンシ増加:Soft Prompt 分だけ入力長が伸びる(20 トークン追加で約 2〜5ms 増)
  • 解釈性が低い:離散トークンと異なり Soft Prompt の意味を人間が理解しにくい
  • LoRA との比較で劣後するケース:中規模モデル(7B〜13B)では LoRA の方が安定して高性能

よくある質問(FAQ)

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 の利点の一つ。

まとめ

  • Prompt Tuning はモデル全体を凍結し Soft Prompt のみを学習する超軽量 PEFT 手法
  • 全パラメータの 0.01% 未満の学習で、大規模モデルではフルファインチューニング同等の性能
  • マルチテナント・タスク切替・GPU 節約に最適
  • 2026 年現在、LoRA と並ぶ PEFT の 2 大手法として定着