AI・機械学習
上級

Soft Prompt(ソフトプロンプト)

Prompt Tuning で使用される学習可能な連続ベクトルの集合。離散的な自然言語トークン(Hard Prompt)とは異なり、embedding 空間上の任意の位置に最適化されるため、人間には解読できないが高い表現力を持つ。

0 回閲覧
0 いいね

Soft Prompt(ソフトプロンプト)とは

Soft Prompt は、Prompt Tuning において LLM の入力シーケンスに付加される学習可能な連続ベクトルの集合である。通常のプロンプト(Hard Prompt)が語彙テーブル上の離散トークンであるのに対し、Soft Prompt は embedding 空間上の任意の実数値ベクトルであり、勾配降下法で最適化される。

概要

Soft Prompt の概念は 2021 年の Prompt Tuning 論文で本格的に導入された。入力テキストの前方に k 個の仮想トークン(virtual tokens)を挿入し、各仮想トークンは d 次元の embedding ベクトルとして表現される。例えば Llama 3.1-8B(d=4096)で 20 トークンの Soft Prompt を使う場合、学習パラメータは 20 × 4096 = 81,920 個(約 320KB、FP32)に過ぎない。

Hard Prompt vs Soft Prompt 比較

特性Hard PromptSoft Prompt
表現空間離散(語彙テーブル上)連続(embedding 空間全体)
設計方法人間が自然言語で記述勾配降下法で自動最適化
解釈可能性高い(人間が読める)低い(数値ベクトル)
表現力語彙に制約される語彙間の任意の位置を取れる
再現性テキストをコピーすれば再現ベクトルファイルの共有が必要
最適化上限人間の試行錯誤に依存理論上は最適解に収束

初期化戦略

Soft Prompt の初期化方法は収束速度と最終性能に大きく影響する。

  1. ランダム初期化:各次元を正規分布 N(0, 0.02) からサンプリング。最も単純だが収束に時間がかかる
  2. 語彙トークン初期化:タスクに関連する既存トークンの embedding をコピーして初期値とする。例えば感情分析タスクなら「Classify」「sentiment」「positive」「negative」等のトークン embedding を使用
  3. タスクラベル初期化:分類タスクの場合、出力ラベルのテキスト表現の embedding で初期化。Few-shot 性能が向上
  4. 転移初期化:別タスクで学習済みの Soft Prompt を初期値に使用。ドメイン近接タスク間で有効

初期化方法別の収束比較

初期化方法収束ステップ最終精度(SST-2)推奨度
ランダム30,00092.1%△
語彙トークン12,00093.8%◎
タスクラベル10,00094.2%◎
転移(類似タスク)5,00094.5%○(条件付き)

技術的詳細

Embedding 空間上の振る舞い

Soft Prompt のベクトルは、語彙トークンの embedding とは異なる位置に最適化されることが多い。研究によれば、学習後の Soft Prompt ベクトルは:

  • 最近傍の語彙トークンとの コサイン類似度が 0.3〜0.6 程度(完全に一致しない)
  • タスク固有の「意味的方向」を encoding している
  • 複数の語彙トークンの意味を 1 つのベクトルに圧縮している場合がある

メモリフットプリント

  • Soft Prompt サイズ:k × d × 精度バイト数(例:50 × 4096 × 4 = 800KB、FP32)
  • 学習時追加メモリ:オプティマイザ状態(Adam なら ×3)で約 2.4MB
  • モデル本体との比較:Llama 3.1-8B のフルパラメータ 16GB に対し、Soft Prompt は 0.005% 未満

実用上の注意点

  • 長さの選択:20 トークンが最小推奨。複雑なタスクでは 50〜100。200 以上は費用対効果が低下
  • 保存と配布:PyTorch の state_dict として保存。数百 KB のファイルで顧客間共有可能
  • バージョン管理:モデルバージョンと Soft Prompt は 1:1 対応。ベースモデルを更新したら Soft Prompt の再学習が必要
  • Quantized モデルとの互換性:GPTQ/AWQ 量子化モデルでも Soft Prompt は FP32/FP16 で保持するのが一般的

よくある質問(FAQ)

Q1: Soft Prompt は人間が読めますか? A: 読めない。最近傍トークンを表示する手法(nearest token projection)で近似的な解釈は可能だが、実際のベクトルは語彙トークンの中間的な位置にあり、1 対 1 のテキスト変換はできない。

Q2: Soft Prompt の長さを増やすと必ず性能は上がりますか? A: 一般的に 20→50 トークンでは性能向上するが、100 以上では飽和する。逆に推論時の入力長が伸びてレイテンシが増えるため、最小限の長さで十分な性能を達成するのが望ましい。

Q3: 異なるタスクの Soft Prompt を結合できますか? A: 理論上は結合(concatenation)可能だが、タスク間の干渉が起きるため単純結合では性能が劣化する。Multi-task Prompt Tuning の研究では、共有 Soft Prompt + タスク固有 Soft Prompt の 2 段構成で解決している。

まとめ

  • Soft Prompt は連続ベクトル空間上で最適化される学習可能なプロンプト
  • 離散トークンより高い表現力を持ち、語彙初期化で効率的に学習
  • 数百 KB の超軽量ファイルとしてタスク間・顧客間で共有可能
  • ベースモデルとのバージョン対応に注意が必要