JA EN
体系推論・高速化
·★ 会員·論文·11分で読めます

投機的デコーディングを1から解説 — 小さな下書きモデルで、出力を一切変えずにLLMを速くする

小型モデルに数トークン先まで下書きさせ、大型モデルが一括検証する「投機的デコーディング」。出力分布を数学的に変えないまま2〜3倍速くなる仕組みを、採択率αの直感とともに原論文から解説する。

対象textタスクinference

Fast Inference from Transformers via Speculative Decoding

一次資料 — この記事の根拠

論文の発表 2022-11-30この解説の公開 2026-08-123年8か月後

Fast Inference from Transformers via Speculative DecodingYaniv Leviathan, Matan Kalman, Yossi Matias · 2022-11-30 · v2arXiv:2211.17192論文ページ·PDF
原文の要旨(Abstract)を読む

Inference from large autoregressive models like Transformers is slow - decoding K tokens takes K serial runs of the model. In this work we introduce speculative decoding - an algorithm to sample from autoregressive models faster without any changes to the outputs, by computing several tokens in parallel. At the heart of our approach lie the observations that (1) hard language-modeling tasks often include easier subtasks that can be approximated well by more efficient models, and (2) using speculative execution and a novel sampling method, we can make exact decoding from the large models faster, by running them in parallel on the outputs of the approximation models, potentially generating several tokens concurrently, and without changing the distribution. Our method can accelerate existing off-the-shelf models without retraining or architecture changes. We demonstrate it on T5-XXL and show a 2X-3X acceleration compared to the standard T5X implementation, with identical outputs.


なぜ、賢いAIほど返事が遅いのか

ChatGPTのようなモデルの文章は、1トークン(単語の断片)ずつ順番に生成されます。次のトークンを決めるには直前までの全文が必要なので、K個のトークンを出すにはモデルをK回、直列に動かすしかありません。論文はこの逐次性こそが遅さの根本原因だと指摘します(Abstract)。

もうひとつ、見逃されがちな観察があります。論文によれば、大規模モデルの推論のボトルネックは足し算掛け算の量ではなく、メモリ帯域と通信であることが多い(§1)。巨大な重みをメモリから読み出す時間が支配的で、せっかくの演算器は待ちぼうけしているのです。この「余っている計算力」を並列性で活用しよう、というのが本論文の出発点です。メモリ律速の背景はメモリの壁の記事で詳しく扱っています。

比喩: 若手の下書きと、編集長の赤入れ

編集長(大型モデル)が一語ずつ執筆するのは遅い。そこで若手ライター(小型モデル)に数語先まで下書きさせ、編集長は下書きをまとめて読んで「ここまでは私が書くのと同じ。ここから違う」と赤を入れる。編集長の仕事1回で複数語が一気に確定します。

元ネタはCPUの投機的実行(分岐予測など)です。「必要かどうか確認する前に、たぶん必要になる仕事を先にやってしまう」技法で、論文はこれを「仕事が確率的にしか決まらない」言語生成の世界へ一般化しました(§1)。

全体像: 下書き → 一括検証 → 修正(§2.1)

速くしたい本命をターゲットモデル MpM_p、下書き係を近似モデル(draft model)MqM_q と呼びます。1回の反復はこう動きます。

  1. MqM_qγ\gamma 個のトークンを普通に(自己回帰で)下書きする
  2. MpM_p を「元の文」「元の文+下書き1個」…「元の文+下書きγ\gamma個」の γ+1\gamma+1 通りに対して並列に1回走らせ、各位置の確率分布をまとめて得る
  3. 下書きを前から順に採択ルール(次節)で判定する。最初に棄却された位置は修正した分布から引き直し、全部通ったらおまけをもう1個サンプルする

この設計の利点は、MpM_p の1回の実行で最低1トークン、最大 γ+1\gamma+1 トークンが必ず確定すること。つまり最悪ケースでも MpM_p の直列実行回数は普通の生成を上回りません(§2.1)。論文の図1では、97Mパラメータのターゲットが6Mの下書きモデルの助けを借り、38トークンの文をわずか9回の直列実行で生成しています。

下書きがどれだけ「当たる」かは、確率分布の形にも左右されます。論文の実験では、温度を下げて分布が尖っているほど採択率が高くなりました(§4.2)。分布の尖り方は次の図で体感できます。

FIG 1温度スライダーで次トークンの確率分布が尖ったり平らになったりする。論文の観測では、尖った(温度が低い)分布ほど下書きの採択率αが高かった(§4.2)

心臓部: 出力分布を変えない採択ルール(§2.3)

「小さいモデルの下書きを使ったら、出力の質が落ちるのでは?」——ここが本論文の最大の貢献で、投機的サンプリングという採択ルールにより、出力の確率分布はターゲット単独の場合と数学的に同一であることが保証されます(§2.3, §A.1)。近似が良ければ速く、悪くても遅くならず、出力は一切変わらない。この虫のいい話を成立させるルールは、たった3行で書けます。ここからは、その中身と「なぜ分布が保たれるのか」の証明、そして速さを支配する採択率 α\alpha の正体まで一気に見ていきます。

下書きトークン xx について、ターゲットの確率を p(x)p(x)、下書きモデルの確率を q(x)q(x) とすると、

p(x)=norm(max(0,  p(x)q(x)))p'(x) = \mathrm{norm}\big(\max(0,\; p(x) - q(x))\big)

は「ターゲットが下書きモデルより多めに確率を割いている場所」だけを残し、合計が1になるよう正規化(norm)した分布です。下書き係が過小評価していたトークンほど、引き直しで選ばれやすくなります。つまり は「編集長がその語をどれだけ書きたかったか」、 は「若手がどれだけ書きたかったか」で、若手が盛りすぎた分を消し、編集長の言い分が残った所から引き直す、ということです。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

参考文献

  1. Yaniv Leviathan, Matan Kalman, Yossi Matias. (2022-11-30) Fast Inference from Transformers via Speculative Decoding. arXiv:2211.17192論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

コメント

コメントにはログインが必要です