投機的デコーディングとは
Speculative Decoding
小規模な下書きモデルに複数トークンを先に生成させ、本体モデルで一括検証し生成を高速化する手法
ひとことで言うと
小さいAIに先に答えの候補を作らせ、大きいAIがまとめて確認することで生成を速くする方法。
概要
投機的デコーディング(Speculative Decoding)とは、軽量で高速な「下書きモデル(draft model)」に複数トークンをあらかじめ生成させ、それを大規模な「本体モデル(target model)」で一括検証する手法。 一致した部分をまとめて確定させることで、LLMの生成を高速化する。 本体モデルは1トークンずつ逐次生成する代わりに、下書きモデルが提案した複数トークンの妥当性を並列に検証するだけで済むため、出力の分布を変えずに生成速度を向上できる点が特徴。 下書きモデルの予測が本体モデルの判断と一致する頻度に応じて、高速化の効果は大きくなる。下書きモデルには、本体モデルと似た傾向を持つ小型モデルが選ばれやすい。
背景
自己回帰型のLLMは1トークンずつ逐次生成する必要があり、この逐次性がGPUの並列計算能力を十分に活かせないボトルネックになっていた。 投機的デコーディングは、生成の逐次性そのものは残しつつ複数トークン分の検証を1回のモデル呼び出しにまとめることで、GPUの並列処理能力を有効活用し体感速度を高めるために考案された。
歴史
2023年: LeviathanらとChenらが、それぞれ独立に投機的デコーディングの手法を発表し、大規模モデルの生成速度を保証された品質のまま高速化できることを示す。
アーキテクチャ
下書きモデルが複数トークン(例: 4〜8個)を先に生成し、本体モデルはこれらのトークン全てを含む系列を1回のフォワードパスで処理して各トークンの確率を計算する。 本体モデルの確率と下書きモデルの提案が十分に一致するトークンまでをそのまま採用し、最初に食い違ったトークン以降は本体モデルの分布から生成し直すことで、最終的な出力分布を本体モデル単体の場合と統計的に一致させる。
利点
- 出力の品質・分布を損なうことなく、生成速度を向上できる
- 本体モデルへの追加学習を必要とせず、推論時の仕組みだけで導入できる
欠点
- 下書きモデルと本体モデルの予測が大きく食い違うタスクでは、高速化の効果が小さくなる
- 下書きモデルの用意・運用等、システム構成が複雑になる
比較
関連用語
よくある質問
投機的デコーディングで出力の品質は落ちない?
理論上、最終的に採用されるトークンは本体モデル単体で生成した場合と統計的に同じ分布に従うよう設計されており、出力品質を保ったまま速度だけを改善できるとされる。