プログレッシブプロンプト(プログレッシブプロンプト)
LLMの継続学習においてタスクごとにソフトプロンプトベクトルを順次追加・凍結することで壊滅的忘却を防ぐ手法。各タスクのプロンプトは独立して学習され、推論時にタスクIDに応じたプロンプトが入力シーケンスに付加される。
プログレッシブプロンプト(Progressive Prompts)とは
プログレッシブプロンプト(Progressive Prompts)は、LLMの継続学習においてモデルの重みを一切変更せず、代わりにタスクごとの「ソフトプロンプト」ベクトルを順次追加することで壊滅的忘却を防ぐ手法です。Razdaibiedina et al.(2023)により提案され、パラメータ効率的な継続学習の重要な選択肢として位置付けられています。
ソフトプロンプトの仕組み
通常のプロンプトエンジニアリングは人間が読めるテキストを使いますが、ソフトプロンプト(Soft Prompts)は連続ベクトル空間で最適化される仮想トークンです:
入力: [P1] [P2] ... [Pk] [実際のテキストトークン]
- P1〜Pk: 学習可能な連続ベクトル(ソフトプロンプトトークン)
- LLMは凍結、プロンプトトークンのみが勾配更新される
- プロンプトトークン数kは通常10〜100個
プログレッシブプロンプトの仕組み
タスクを順次学習する流れ
Task 1学習前: [P₁₁ P₁₂ ... P₁k] + テキスト → 学習完了後: P₁凍結
Task 2学習前: [P₁凍結] [P₂₁ P₂₂ ... P₂k(学習中)] + テキスト → 学習完了後: P₂凍結
Task N学習前: [P₁凍結] [P₂凍結] ... [Pₙ₋₁凍結] [Pₙ学習中] + テキスト
キーポイント: 過去タスクのプロンプトが常に入力の先頭に存在するため、新タスク学習時でも旧タスクの文脈が維持されます。
推論時のタスク識別
def inference(text, task_id):
# タスクIDに対応するプロンプトまでを選択
prompts = learned_prompts[:task_id + 1] # 累積プロンプト
full_input = concat(prompts, tokenize(text))
return llm(full_input)
従来手法との比較
| 手法 | モデル重み変更 | タスク増加時のコスト | 忘却防止の仕組み |
|---|---|---|---|
| EWC | あり(全体) | 正則化計算追加 | 重みペナルティ |
| LoRA継続学習 | なし | アダプタ追加 | 構造的分離 |
| Progressive Prompts | なし | プロンプト追加のみ | プロンプト分離 |
| Experience Replay | あり | リプレイバッファ追加 | 過去データ混合 |
Progressive Promptsの利点
1. 完全な忘却防止
モデル重みが凍結されるため、物理的に過去の知識が変更されることはありません。新タスクのプロンプトが追加されるだけで、旧プロンプトには影響がありません。
2. 超低コストな更新
学習パラメータはプロンプトトークンのみ(通常数万〜数十万パラメータ)。GPT-3(175B)と比較すると更新パラメータは0.001%以下です。
3. タスク切替が即座
推論時はプロンプトの長さを変えるだけでタスク切替が可能。モデル重みの切替が不要なため、マルチテナントのAPI提供に適しています。
4. バックワード転移(Backward Transfer)
後からのタスク学習が過去タスクのプロンプトと協調することで、既存タスクの性能が向上するケースがあります(正のBWT)。
限界と課題
入力長の増大: タスク数が増えるほど入力シーケンス長が増加。コンテキストウィンドウの制約を受ける。
タスクID必須: 推論時にどのプロンプトセットを使うか指定が必要。タスクIDが不明な場合は性能が落ちる。
タスク間の類似度依存: 全く異なるドメインでは蓄積プロンプトの効果が薄い場合がある。
プロンプト最適化の難しさ: 適切なプロンプト長やアーキテクチャ(どの層に挿入するか)はタスク依存。
2025年の発展
- Hierarchical Progressive Prompts: グローバルプロンプト(全タスク共通)+ ローカルプロンプト(タスク固有)の2段構造
- Attention Routing: どのプロンプトトークンをどの程度参照するかを学習するルーティング機構
- CLIP-PPL: 画像・テキスト両方のプログレッシブプロンプトでマルチモーダル継続学習
まとめ
プログレッシブプロンプトは、LLMをフリーズした状態でソフトプロンプトのみを増やすことで継続学習を実現する、シンプルかつ効果的な手法です。計算コストとメモリ効率に優れ、LoRAアダプタよりも更に軽量な継続学習アプローチとして、リソース制約のある環境や大規模マルチタスクサービスで注目されています。