LLMの応答が遅い。その原因のほとんどは、モデルの賢さではなくアーキテクチャの構造にある。

Speculative Decoding(投機的デコーディング)は、出力品質をいっさい下げずにLLMの推論速度を大幅に引き上げる技術だ。2022年にGoogleが論文として発表し、現在ではGoogleのAI OverviewsやLM Studioなど多くの製品に実装されている。

この記事でわかること:

  • LLMの推論がなぜ遅いのか
  • Speculative Decodingが速度を上げる仕組み
  • 出力品質を変えない数学的保証の仕組み
  • 実際にどのプロダクトで使われているか
  • 2025〜2026年の最新動向

https://research.google/blog/looking-back-at-speculative-decoding/

LLMの推論はなぜ遅いのか

LLMはテキストを1トークンずつ順番に生成する。「One small step for man」という12トークンの文を出力するには、モデルは12回のforward passを実行しなければならない。しかも各ステップは前のトークンの結果に依存するため、並列処理ができない。

GPUやTPUは毎秒数百兆回の演算が可能だが、メモリ帯域幅は毎秒数兆バイト程度にとどまる。LLMの推論は1トークンを生成するたびに数百GBにのぼるモデルの重みをメモリから読み出す必要があり、ボトルネックは「計算の遅さ」ではなく「メモリ読み出しの遅さ」にある。演算リソースは余っているのに、メモリ転送が間に合わず待つ構造だ。

Googleの研究者はここに着目し、「余っている演算リソースで複数トークンを並列に処理できれば、速くなるはずだ」と考えた。

大小2つのモデルで速くする

Speculative Decodingは「ドラフトモデル」と「ターゲットモデル」の2つを組み合わせて動作する。

ドラフトモデルは軽量なモデルで、次のKトークン(たとえば5トークン)を高速に予測する。ターゲットモデルは本命の大規模モデルで、ドラフトモデルが提案したK個のトークンを1回のforward passでまとめて検証する。

流れを整理すると次のとおりだ。

  1. Draft(予測): 小さいモデルがK個のトークン候補を逐次的に生成する
  2. Verify(検証): 大きいモデルがそのK個を1回のforward passで並列検証する
  3. Accept/Reject(採否決定): 確率的サンプリングで合格したトークンを採用し、不合格になったトークン以降は大きいモデルが再生成する

ポイントは検証のコストにある。ターゲットモデルにとって「K個のトークン列を入力して確率分布を出力する」処理は、「1トークンを生成する」処理とほぼ同じ計算コストで済む。つまり、うまくいけば1回のforward passで最大K+1トークンを確定できる。

Googleの原論文では、11BパラメータのT5-XXLモデルに対して60MパラメータのT5-smallをドラフトモデルとして組み合わせ、翻訳タスクで約3倍の速度向上を確認している(参考)。

出力品質はいっさい変わらない

Speculative Decodingの最大の特徴は、出力の確率分布が標準デコーディングと数学的に完全一致することだ。

ドラフトモデルが予測したトークンが正確でなくても問題はない。採否の判断に「投機的サンプリング(Speculative Sampling)」というアルゴリズムを使い、ターゲットモデルの確率分布に合わせた確率でトークンを採用するか棄却するかを決める。棄却された場合は、ターゲットモデルが正しいトークンを補完する。

これにより、速さのためにドラフトモデルを挟んでいるにもかかわらず、最終的な出力はターゲットモデルが単独で生成した場合と統計的に同じになる。追加の学習も不要で、既存のモデルにそのまま適用できる。

Googleはこの手法をGoogleサーチのAI Overviewsに実装しており、応答品質を維持したまま速度を大幅に改善している。

速度向上の幅はトークンの「予測しやすさ」で変わる

どれだけ速くなるかは、ドラフトモデルの予測精度(採択率)に依存する。

たとえば「The square root of 7 is ___」という文では、空欄の「7」は直前のコンテキストから単純にコピーするだけで予測できる。こうした「易しいトークン」ではドラフトモデルの精度が上がり、採択率も高くなる。一方で「2.646」のような推論が必要なトークンは難しく、ドラフトモデルが外すことも多い。

最悪のケースでは採択率がゼロに近くなり、毎回ターゲットモデルが処理をやり直すため、速度向上はほぼゼロになる。最良のケースでは、K個全てが採択され(K+1)/1の速度向上が実現する。実運用では適度な採択率で安定した倍速効果が得られる設定を選ぶことが重要だ。

実装方法と最新の派生手法

ドラフトモデルの設計には複数のアプローチがある。

最もシンプルなのは、ターゲットモデルと同じファミリーの小型モデルを使う方法だ(例: Llama-70BのターゲットにLlama-7Bをドラフトとして使う)。より高度な手法として、ターゲットモデルのレイヤーの一部だけを使うサブセット法や、ターゲットモデルから知識蒸留したドラフトモデルを使う方法もある。

2025〜2026年にかけて新しい改良版も登場している。EAGLEシリーズはターゲットモデルの中間層の特徴量をドラフトモデルに渡すことで採択率を向上させた。Apple Machine Learning Researchが発表したMirror Speculative Decoding(Mirror-SD)は、直列生成のボトルネックをさらに解消し、EAGLE3比で30%の速度改善を報告している(参考)。

LM Studioはバージョン0.3.6からSpeculative Decodingをネイティブサポートしており、ローカル環境でも手軽に試せるようになっている。

まとめ

Speculative Decodingは2022年のGoogle Research論文を起点に、今やLLM推論の標準的な最適化手法となっている。追加学習が不要で出力品質に影響しない設計から、大手プロダクトへの採用が急速に進んでいる。

EAGLEやMirror-SDといった派生手法が続々と登場しており、到達できる速度の上限はまだ更新されている。LLMを自前で動かしたり、APIサービスの推論コストを意識する立場なら、知っておく価値のある技術だ。