# Speculative Decoding
## 定義
Speculative Decoding(投機的復号)とは、通常の自己回帰生成が K トークンの予測に K 回の forward を要しレイテンシが無視できなくなる問題に対し、軽量なドラフトモデルや追加予測モジュールで複数トークンを仮予測させ、それを大きなターゲットモデルで並列検証・棄却サンプリングすることで出力分布を保ったまま生成を高速化する手法である。最も単純な構成(小さいモデルによるドラフト)は小モデル自体の KVCache が膨れ上がり実用性が低いため、Medusa(追加予測ヘッド)や Eagle(直前予測を逐次入力する連鎖的ドラフト)のように、余分なメモリを使わずに数トークン先をドラフトする手法が発展してきた。(Source: [[@2026__SpeakerDeck__LLM高速化(勉強会)]])
## 横断的知見
- **KVCache 削減という制約が、ドラフト手法の設計を単純な小型モデルから軽量ヘッド方式へ押し出した**: 素朴な Speculative Decoding(小型ドラフトモデル)は KVCache の二重負担という [[KVキャッシュ管理]] 上の問題により実用性が低いとされ、Medusa・Eagle はいずれも「ターゲットモデルの隠れ状態を再利用し追加の KVCache を持たない」設計に収束している。これは KVCache 容量制約がアルゴリズム設計そのものを規定する例であり、[[Grouped-Query Attention]] や [[Multi-Head Latent Attention]] が KVCache 削減をアーキテクチャ側で解決するのと対をなす、生成アルゴリズム側からの対処である。(Source: [[@2026__SpeakerDeck__LLM高速化(勉強会)]])
- **語彙予測の 2 段階クラスタリングは、計算量とメモリロードの両方を削減できる**: 出力層で vocab_size 全体に対する行列積を 1 段階で行う代わりに、クラスタを選択してからクラスタ内トークンを選ぶ 2 段階構成にすると、大雑把な評価で `cluster_size + vocab_size/cluster_size` が `vocab_size` を下回り計算量が削減されるだけでなく、2 段階目のメモリロード量も減る。これは Speculative Decoding のドラフト生成コスト自体をさらに下げる、語彙側からのアプローチである。(Source: [[@2026__SpeakerDeck__LLM高速化(勉強会)]])
## 未解決の問い
- Medusa・Eagle 以降のドラフト手法(木構造検証を含む)と、GQA/MLA/Linear Attention のような KVCache 削減アーキテクチャを組み合わせた場合の複合効果はどの程度か。
- Linear Attention のように前の hidden_state を使うアーキテクチャは、途中までの KVCache を破棄する Speculative Decoding 的手法に弱いとされる。この弱点はドラフト側・検証側のどちらの設計変更で緩和できるか。
## 関連
- 隣接 concept: [[LLM推論]] / [[KVキャッシュ管理]] / [[線形注意]]
- ソース: [[@2026__SpeakerDeck__LLM高速化(勉強会)]]
## 出典
- [[@2026__SpeakerDeck__LLM高速化(勉強会)]] — Speculative Decoding の基本構成、Medusa/Eagle の比較、2 段階クラスタリングによる語彙予測の計算量見積もり