A SMALL AI DRAFTS, A BIG AI CHECKS
下書きして、まとめて添削する
大きなモデルは1トークン出すたびに重い計算を1回。これが遅さの正体です。 そこで小さなモデルに数トークン先を下書きさせ、大きなモデルが一度にまとめて検算する—— 品質を1ミリも落とさずに速くする「投機的デコード」を、5つのステップで解き明かします。
はじめる ↓1トークンずつ、という壁SEQUENTIAL BOTTLENECK
テキスト生成は1トークンずつの自己回帰ループ(テキスト生成編)。 そして1トークン出すのに、巨大モデルの重い計算(1パス)を丸ごと1回使います。 100トークンの返答なら、重い計算が100回——長さに比例してじれったく待たされるのは、この直列性のせいです。
ONE PASS PER TOKEN — 巨大モデルを何回動かすか
下書きは、小さなモデルにTHE DRAFT MODEL
そこで小さくて速いモデル(下書き役)を用意します。精度は本命に劣りますが、 けた違いに軽い。この下書きモデルに、次の数トークンを一気に予想させる。 外れても構いません——本命が後でまとめて直すからです。まずは下書きと本命の速さの差を見てください。
DRAFT VS TARGET — 速いが粗い / 遅いが正確
✏️ 下書きモデル 小さい・速い
計算が軽く、数トークンを一瞬で提案。ただし時々まちがえる。
1トークンの計算コスト: 小🎯 本命モデル 大きい・正確
計算は重いが正確。最終的な出力の品質はこのモデルが保証する。
1トークンの計算コスト: 大まとめて検証し、合った所まで採用DRAFT → VERIFY → ACCEPT
ここが肝。下書きのK個のトークンを、本命モデルがたった1パスでまとめて検証します (系列全体は1回の計算で採点できる)。頭から見て合っている所までを採用し、 最初に食い違った所は本命の答えに直して、その先は捨てる。 ▶で1ラウンドずつ、文が伸びていく様子を見てください。
VERIFY ROUND — 下書きを検証して、接頭辞を採用
速くなる、しかも出力は変わらないSPEEDUP, LOSSLESS
下書きの当たりやすさ(採用率)が高いほど、1パスで進むトークンが増え、 本命を動かす回数が減る=速くなる。しかも驚くべきは—— この方法で出てくる文章は、本命だけで生成したのと数学的にまったく同じ分布。 品質を犠牲にしない高速化です。採用率スライダーを動かして、速さの伸びを見てください。
SPEEDUP — 採用率 × 下書き長で、本命の回数はどう減るか
どんな文で効くか、そして発展形WHERE IT SHINES
効き目は文章の予測しやすさしだい。定型的なコードや決まり文句は下書きがよく当たり、 大きく速くなる。奔放な創作は当たりにくく、伸びは控えめ。 テキストの種類を選んで採用率と速度の違いを見て、最後に実際に使われている発展形も覗きましょう。
BY TEXT TYPE — 予測しやすさが、速さを決める
VARIANTS — 実際に使われている発展形