9月3日、NVIDIA公式開発者ブログが「Co-Designing AI Models Using Speculative Decoding for Faster LLM Inference」と題した記事を公開した。この記事では、Speculative Decodingを活用してLLM推論を高速化する際のドラフト長・ドラフト機構の選び方を、5つの指針とともに実践的に解説している。
Speculative Decodingとは何か
Speculative Decoding(投機的デコーディング)とは、LLMの自己回帰デコードを高速化する手法だ。小さな「ドラフトモデル」が複数のトークンを先読みし、その候補トークン列をターゲット(大型)モデルが1回のフォワードパスで並列検証する。ターゲットモデルが受け入れたトークンのみを出力として採用するため、通常のデコードと同一の出力品質を保ちながら、イテレーション数を削減できる。
スピードアップの式は次のとおりだ:
$$\mathrm{speedup} = \frac{T_{\mathrm{verif}}(B) \times AL}{T_{\mathrm{verif}}(B \times (1 + D)) + T_{\mathrm{draft}}(B, D)}$$
ここで $D$ はドラフト長(1回のターゲット検証に投機するトークン数)、$AL$(Acceptance Length)は実際にターゲットが受け入れたトークン数だ。スピードアップを最大化するには $(D, AL, T_{\mathrm{draft}})$ の3つを同時に最適化する必要がある。
最も効く指針:ドラフト長の決め方
記事の核心は、どのドラフト長 $D$ を選ぶかだ。ここが実装の巧拙を最も左右する。
線形層(GEMM)への影響
Speculative Decodingを適用すると、ターゲットモデルの各線形層のGEMM-Mが $M$ から $M \times (1 + D)$ に拡大する。これにより、低バッチサイズでもGEMMを計算律速(compute-bound)領域に引き込める。記事によれば、$D=7$ では $D=0$ の場合と比べ、compute-bound に達するのに必要なバッチサイズが 8分の1 で済む。
MoE(Mixture of Experts)モデルでは、全パラメータのうち実際に活性化するエキスパートはごく一部に限られるため、各エキスパートへルーティングされる有効バッチサイズがデンスモデルより大幅に小さくなりやすい。その結果、GEMMがbandwidth-bound(メモリ帯域律速)に陥りやすく、$D$ を増やして有効バッチを底上げする恩恵が特に大きい。
指針1: GEMMをcompute-bound領域に押し込むため、ドラフト長を増やす。ただしKVキャッシュ容量を圧迫しないことが条件。
Attentionへの影響
Reasoning・Agenticワークロードでは、スループット重視の領域でAttentionが実行時間の大半を占めることが多い。Speculative Decodingを使うと、投機トークンが同じKVキャッシュを再利用するため、AttentionのGEMM-Mは実効的に $G \times (1 + D)$($G$:KVヘッド1つあたりのQueryヘッド数)に増える。
現行GPUのAttentionカーネルはGEMM-M=128付近で最大スループットに達するため、最適なドラフト長は次の式で求まる:
$$D = \frac{128}{G} - 1$$
$G=8$ なら $D=15$、$G=32$ なら $D=3$ が理論上の最適値だ。この飽和点を超えて $D$ を増やしても、Attentionがbandwidth-boundでなくなり実行時間が $D$ に比例して伸びるため、スピードアップは得られなくなる。
指針2: Attentionが支配的な場合は $D = \frac{128}{G} - 1$ を選ぶ。
また、Attentionカーネルのソフトウェアタイルサイズは128なので、$G \times (1 + D)$ が128の倍数にならない値を選ぶと最後のタイルが不完全利用になりコストだけかかる。
指針3: $D > \frac{128}{G} - 1$ を選ぶ場合は、$G \times (1 + D)$ が128の倍数になる値を優先する。
超低レイテンシ領域での振る舞い
ParetoカーブのGPU台数が少ない(超低レイテンシ)端では、カーネル起動のオーバーヘッドが支配的になる。自己回帰型ドラフトモデルを使う場合、スピードアップは次の式で近似できる:
$$\mathrm{speedup} = \frac{AL}{1 + \rho D}$$
ここで $\rho = L_{\mathrm{draft}} / L_{\mathrm{target}}$(ドラフトモデルのレイヤー数比)だ。ドラフトオーバーヘッドは $\rho D$ で表され、$D$ を増やすほど $AL$ の伸びがオーバーヘッドを上回り続けるかどうかが問われる。
指針4: 超低レイテンシ領域では、$AL$ の伸びがドラフトコストを正当化できる範囲でのみ $D$ を増やす。
ドラフト機構の選び方
$D$ を決めたら、次はその $D$ トークンをどう生成するかだ。記事では6種類の手法を比較している(表1参照)。
| 手法 | 特徴 | 推奨用途 |
|---|---|---|
| 外部ドラフトモデル | 小型LLMを独立して運用 | LPU環境、GPU非推奨 |
| MTP | ターゲットの最終hidden stateを入力に1層で生成、直列 | GPU上の大型モデルに最適 |
| DFlash | $D$ トークンを1回のパスで並列生成 | バッチサイズ1の小型モデル |
| DSpark | DFlash+軽量Markovヘッドによる逐次補正 | バッチサイズ1の小型モデル |
| EAGLE-3 | embedding+hidden stateを入力に1層で生成 | 元記事の比較表参照 |
| Suffix/n-gram | モデル不要、トークン列のパターン再利用 | 高繰り返しワークロード |
GPUで大型モデルを運用する場合、MTPが最も実用的という結論だ。MTPはターゲットモデルの事前学習時に同時訓練されることが多く、追加のモデルリリースが不要で、サーブ時のメモリオーバーヘッドも小さい。
元記事では各手法のドラフトコストと $AL$ のトレードオフを定量的に比較しているため、EAGLE-3を含む各手法の詳細な優劣については元記事の表を直接参照されたい。
元記事内のベンチマーク計測(SPEED-Bench)では、Qwen3-235B-A22B(Hugging Face)をターゲットとした場合の各ドラフト機構の比較が示されている。なお、元記事に登場するMoEモデルのパラメータ表記については、元記事の原文を直接確認いただきたい。$AL$ が高いことと、スピードアップが高いことは別物であり、ドラフト生成コスト $O_d$ も含めたトータルで判断する必要がある。
指針5(記事内での総括): $AL$ の比較にはSPEED-Benchを使い、ドラフトコストとのトレードオフを定量的に評価したうえでドラフト機構を選ぶ。
このシリーズの位置づけ
本記事はNVIDIA公式開発者ブログによる「AIモデルco-design」シリーズの第3弾だ。第1弾ではハードウェアフレンドリーなLLM設計を、第2弾ではAttentionのグループサイズ・ヘッド次元・シーケンス長がパフォーマンスに与える影響を解説している。Speculative Decodingはこれらの設計パラメータと密接に絡み合うため、シリーズを通じて読むことで最適化の全体像が掴める。
詳細はCo-Designing AI Models Using Speculative Decoding for Faster LLM Inferenceを参照していただきたい。