A SMALL AI DRAFTS, A BIG AI CHECKS

下書きして、まとめて添削する

大きなモデルは1トークン出すたびに重い計算を1回。これが遅さの正体です。 そこで小さなモデルに数トークン先を下書きさせ、大きなモデルが一度にまとめて検算する—— 品質を1ミリも落とさずに速くする「投機的デコード」を、5つのステップで解き明かします。

はじめる ↓
SCROLL
STEP 01

1トークンずつ、という壁SEQUENTIAL BOTTLENECK

テキスト生成は1トークンずつの自己回帰ループ(テキスト生成編)。 そして1トークン出すのに、巨大モデルの重い計算(1パス)を丸ごと1回使います。 100トークンの返答なら、重い計算が100回——長さに比例してじれったく待たされるのは、この直列性のせいです。

ONE PASS PER TOKEN — 巨大モデルを何回動かすか

STEP 02

下書きは、小さなモデルにTHE DRAFT MODEL

そこで小さくて速いモデル(下書き役)を用意します。精度は本命に劣りますが、 けた違いに軽い。この下書きモデルに、次の数トークンを一気に予想させる。 外れても構いません——本命が後でまとめて直すからです。まずは下書きと本命の速さの差を見てください。

DRAFT VS TARGET — 速いが粗い / 遅いが正確

✏️ 下書きモデル 小さい・速い

計算が軽く、数トークンを一瞬で提案。ただし時々まちがえる。

1トークンの計算コスト: 小

🎯 本命モデル 大きい・正確

計算は重いが正確。最終的な出力の品質はこのモデルが保証する。

1トークンの計算コスト: 大
STEP 03

まとめて検証し、合った所まで採用DRAFT → VERIFY → ACCEPT

ここが肝。下書きのK個のトークンを、本命モデルがたった1パスでまとめて検証します (系列全体は1回の計算で採点できる)。頭から見て合っている所までを採用し、 最初に食い違った所は本命の答えに直して、その先は捨てる。 ▶で1ラウンドずつ、文が伸びていく様子を見てください。

VERIFY ROUND — 下書きを検証して、接頭辞を採用

STEP 04

速くなる、しかも出力は変わらないSPEEDUP, LOSSLESS

下書きの当たりやすさ(採用率)が高いほど、1パスで進むトークンが増え、 本命を動かす回数が減る=速くなる。しかも驚くべきは—— この方法で出てくる文章は、本命だけで生成したのと数学的にまったく同じ分布。 品質を犠牲にしない高速化です。採用率スライダーを動かして、速さの伸びを見てください。

SPEEDUP — 採用率 × 下書き長で、本命の回数はどう減るか

採用率 α 0.70
下書き長 K 4
STEP 05

どんな文で効くか、そして発展形WHERE IT SHINES

効き目は文章の予測しやすさしだい。定型的なコードや決まり文句は下書きがよく当たり、 大きく速くなる。奔放な創作は当たりにくく、伸びは控えめ。 テキストの種類を選んで採用率と速度の違いを見て、最後に実際に使われている発展形も覗きましょう。

BY TEXT TYPE — 予測しやすさが、速さを決める

VARIANTS — 実際に使われている発展形

RECAP

5つのステップ、ふりかえり

STEP 01逐次の壁1トークン=巨大モデル1パス。直列だから遅い。
STEP 02下書き役小さく速いモデルが、数トークン先を予想する。
STEP 03まとめて検証1パスで検算、合った接頭辞を採用し先は捨てる。
STEP 04なぜ速い採用率が高いほど1パスで進む。出力は厳密に不変。
STEP 05使いどころ定型文ほど効く。Medusaなど発展形も実用。
SERIES

この章は量子化・高速化編の続きで、 テキスト生成編の自己回帰ループとサンプリング編の上に建っています。

シリーズ一覧へ →