ドラフトモデル投機的デコーディング(ドラフトモデル トウキテキ デコーディング)
LLM推論高速化の基本手法。小型ドラフトモデルが複数トークンを先読み予測し、大型ターゲットモデルが1パスで並行検証・採択することで、ターゲットモデル単独より2〜4倍の高速化を実現する。
ドラフトモデル投機的デコーディング
概要
ドラフトモデル投機的デコーディング(Speculative Decoding with Draft Model)は、2023年にGoogleのLeviathan et al.とDeepMindのChen et al.が独立して発表したLLM推論高速化手法です。小型の「ドラフトモデル」と大型の「ターゲットモデル」を組み合わせることで、ターゲットモデルの出力品質を保ちながら推論速度を2〜4倍向上させます。
動作原理
2モデル構成
- ドラフトモデル(小型): GPT-2やLLaMA-7B等の軽量モデル
- ターゲットモデル(大型): GPT-4やLLaMA-70B等の高精度モデル
デコーディングフロー
ステップ1: ドラフトモデルがK個のトークンを自動回帰で生成(例: "Paris, which is")
ステップ2: ターゲットモデルが1パスでK個を並行評価(各位置でターゲットの確率分布算出)
ステップ3: 採択・棄却ルール(確率比テスト)— p_target >= p_draft なら採択、棄却位置まで採択して残りをターゲットで補完
高速化のメカニズム
| 手法 | ターゲット呼び出し回数 | スループット |
|---|---|---|
| 通常デコーディング | トークン数N回 | 1× |
| 投機的デコーディング(受理率70%時) | N/3〜N/5回 | 2〜4× |
GPUの並列計算によりKトークンをバッチ処理するコストは1トークン処理と大差なく、この並列性を活用して高速化を実現します。
品質等価性の保証
採択・棄却プロセスはリジェクションサンプリングの変形であり、最終的な出力トークン分布がターゲットモデルの自動回帰分布と厳密に等しいことが数学的に証明されています。
実際の高速化倍率
| ドラフト / ターゲット | 受理率 | 高速化 |
|---|---|---|
| GPT-2 / GPT-4 | ~70% | 2.7× |
| LLaMA-7B / LLaMA-70B | ~75% | 3.0× |
| Falcon-7B / Falcon-40B | ~72% | 2.8× |
受理率はドラフトとターゲットの分布が近いほど高く、同系列モデルのペアで最大化されます。
主要な実装(2025年)
- Google PaLM API: 内部でSpeculative Decodingを採用(2023年〜)
- HuggingFace Transformers:
generate()のassistant_modelパラメータで対応 - vLLM: ドラフトモデル投機的デコーディングをネイティブサポート
- TGI (Text Generation Inference): v1.4+でサポート
MedusaとLookaheadとの比較
| 手法 | モデル数 | 追加訓練 | 高速化 | 特徴 |
|---|---|---|---|---|
| ドラフトモデル方式 | 2モデル | 不要 | 2〜4× | 最高の受理率 |
| Medusa | 1モデル | 必要 | 2〜3× | デプロイ簡易 |
| Lookahead | 1モデル | 不要 | 1.5〜2.5× | 汎用・即適用 |
よくある質問(FAQ)
Q1: ドラフトモデルはどう選べばよいですか? A: ターゲットと同系列の小型版が最適(例: LLaMA-70B→LLaMA-7B)。分布が近いほど受理率が上がります。
Q2: バッチ推論でも有効ですか? A: バッチサイズが増えるとGPU利用率が上がり相対的な優位性が下がります。バッチサイズ1〜4で最も効果的です。
Q3: メモリ使用量はどう変わりますか? A: ドラフトモデル分のVRAMが追加で必要です(例: LLaMA-7B追加で約14GB)。
まとめ
- 小型ドラフト + 大型ターゲットの2モデル構成
- 出力品質を数学的に保証しつつ2〜4倍高速化
- HuggingFace/vLLM等主要フレームワークで実装済み(2025年現在)
- バッチサイズが小さいオンラインサービングで最大の効果