Speculative Decoding(スペキュラティブデコーディング)
小さな下書きモデルが複数トークンを先行予測し、大きなターゲットモデルが一括検証することでLLM生成速度を2〜5倍高速化する推論手法。2023年にGoogle DeepMindとStanfordが独立提案。品質を落とさず速度を向上できる点が特長。
Speculative Decodingとは
Speculative Decoding(スペキュラティブデコーディング、投機的デコーディング)は、2023年にGoogleのYaniv Leviathan・Matan Kalman・Yossi MatiaとStanfordのCharlie Chen・Sebastian Borgeaud・Jordan Hoffmann らが独立して提案した、LLM(大規模言語モデル)の推論速度を品質劣化なしに向上させるアルゴリズムです。
- Google DeepMind: 「Accelerating Large Language Model Decoding with Speculative Sampling」(ICML 2023)
- Stanford: 「Fast Inference from Transformers via Speculative Decoding」(ICML 2023)
2026年現在、vLLM・SGLang・TensorRT-LLM・HuggingFace TGIなど主要推論フレームワークに実装されており、特に大型モデル(70B+)の高速化手法として広く活用されています。
基本的な仕組み
LLMの自己回帰的(Autoregressive)なテキスト生成は、1トークンずつ順番に生成するため、大型モデルほど速度が遅くなります。Speculative Decodingはこのボトルネックを「並列検証」で解決します。
標準的なAutoregressive Decoding:
- 各ステップに大型ターゲットモデルの推論コストが発生
- 1トークン生成 = 1回のフォワードパス
Speculative Decoding:
- 小型ドラフトモデルDが次のγ個のトークン(通常5〜7個)を先行予測
- 大型ターゲットモデルTがドラフトの全γトークンを1回のフォワードパスで一括検証
- 採択されたトークンを出力、棄却された場合はターゲットモデルのサンプリングで修正
- 採択率が高ければ1回のステップで複数トークンが確定し速度向上
数学的保証: ターゲットモデルがドラフトトークンを採択するかどうかの確率は、ターゲットモデル単独での生成分布と数学的に等価であることが棄却サンプリング理論により証明されています。つまり出力品質はターゲットモデルと完全に同一でありながら、速度のみが向上します。
採択率と速度の関係
速度向上倍率は採択率βと投機ウィンドウサイズγに依存します。
| 採択率β | γ=5の場合の理論速度倍率 | 実際の速度倍率例 |
|---|---|---|
| 0.95 | 4.5x | 3.5〜4.0x |
| 0.90 | 3.8x | 3.0〜3.5x |
| 0.80 | 2.6x | 2.0〜2.5x |
| 0.70 | 1.8x | 1.5〜2.0x |
| 0.50 | 1.2x | ほぼ効果なし |
採択率はドラフトモデルとターゲットモデルの分布の近さに依存します。同じモデルファミリー(Llama 3.1 1B → Llama 3.1 70B)は採択率が高く、全く異なるアーキテクチャでは低くなります。
主な実装バリアント
| 手法 | 提案者 | 特徴 | 速度倍率 |
|---|---|---|---|
| Speculative Sampling(原論文) | Google DeepMind(2023) | 外部ドラフトモデル使用 | 2〜3x |
| EAGLE | Li et al.(2024) | ターゲットモデルの中間層で自己ドラフト生成 | 3〜4x |
| EAGLE-2 | Li et al.(2024) | ダイナミックドラフトツリーでさらに改善 | 3.5〜4.8x |
| Medusa | Cai et al.(2024) | 複数ヘッドで並列ドラフト、外部モデル不要 | 2.2〜3.6x |
| Self-Speculative | Zhang et al.(2024) | 同一モデルのレイヤースキップでドラフト | 1.8〜2.5x |
| Lookahead Decoding | Fu et al.(2024) | n-gramキャッシュ活用、外部モデル不要 | 1.5〜2.5x |
EAGLE-2の優位性: 2024〜2025年時点でベンチマーク上最高性能のバリアント。ターゲットモデルのfeaturesを使って自己ドラフトを生成するため採択率が高く(β=0.88〜0.95)、外部ドラフトモデルが不要。vLLMとTGIに実装済み。
主要フレームワークでの利用方法
vLLMでのSpeculative Decoding(外部ドラフトモデル方式):
vllm serve meta-llama/Llama-3.1-70B-Instruct --speculative-model meta-llama/Llama-3.1-1B-Instruct --num-speculative-tokens 5 --tensor-parallel-size 2
vLLMでのEAGLE-2:
vllm serve meta-llama/Llama-3.1-70B-Instruct --speculative-model EAGLE-LLaMA3.1-Instruct-70B --num-speculative-tokens 6 --tensor-parallel-size 2
実測速度向上(Llama 3.1 70B、2xRTX 4090)
| 手法 | 1トークン生成時間 | 平均採択率 | 実測速度倍率 |
|---|---|---|---|
| Autoregressive(ベース) | 18ms | - | 1x |
| Spec Decoding(Llama 1B draft) | 9.2ms | 79% | 1.96x |
| EAGLE-2 | 5.8ms | 91% | 3.1x |
| Medusa | 7.4ms | 84% | 2.4x |
自作PCでの活用
RTX 4090x2台(48GB VRAM合計): Llama 3.1 70B(BF16)を対象に、Llama 3.1 1B(BF16)をドラフトとして使用。実測で約2倍の速度向上。会話型チャットボットの応答速度が体感上明確に改善。
RTX 4090単体: Llama 3.1 8B(INT4量子化)にMedusa heads(自己ドラフト方式)を適用すると約2.2x高速化。通常250 tok/s → 約550 tok/sに向上。
Speculative Decodingが効くシナリオ・効かないシナリオ
効果が大きい場面:
- ドラフトとターゲットが近い分布(同じモデルファミリー内)
- コード補完・定型文生成(予測しやすいテキスト)
- バッチサイズが小さい(シングルユーザー・低負荷)
- 長文生成(生成トークン数が多い)
効果が小さい場面:
- 高負荷・高バッチサイズ環境(GPU既にフル活用でドラフトが邪魔)
- ドラフトとターゲットの分布が乖離(採択率β<0.7)
- サンプリング温度が高い(ランダム性が高くドラフトが外れやすい)
- 生成長が短い(1〜10トークン)
よくある質問(FAQ)
Q1: Speculative Decodingは出力品質に影響しますか? A: 数学的に影響しません。棄却サンプリング理論により、採択されたトークン列の確率分布はターゲットモデルが単独で生成した場合と完全に同一であることが証明されています。
Q2: ドラフトモデルのサイズはどう選べばよいですか? A: ターゲットモデルの1/10〜1/20程度のパラメータ数が経験則として適切です。Llama 3.1 70B(ターゲット)に対してLlama 3.1 1B〜8B(ドラフト)が一般的な組み合わせです。
Q3: EAGLE-2とMedusaはどちらを選ぶべきですか? A: 採択率と速度はEAGLE-2が優位。外部モデルのダウンロードが面倒な場合はMedusaが手軽。2025〜2026年においてはEAGLE-2の方がより多くのフレームワークに統合されており実用性が高いです。
まとめ
- Google DeepMindとStanfordが2023年に独立提案したLLM推論高速化アルゴリズム(ICML 2023)
- 小型ドラフトモデルが先読み予測し、大型モデルが一括検証することで2〜5倍の高速化を実現
- 出力品質はターゲットモデルと数学的に同等であることが証明済み
- EAGLE-2が現時点で最高性能のバリアントとして広く採用
- vLLM・SGLang・TGI等でサポートされ自作PCの大型モデル運用に実用的