【とうきてきでこーでぃんぐ】

投機的デコーディング とは?

最終更新:
💡 下書き候補をまとめて検証し、生成を速める

軽い仕組みで複数のトークンを先に下書きし、対象のLLMでまとめて検証することで文章生成を速める技術。採用・再サンプリングを適切に行う方式では、対象モデルの出力分布を保てる。

📌 このページのポイント
下書きをまとめて検証し、先頭から採用下書き軽いモデルABCD4候補を一括で評価検証対象モデルABCD採用採用棄却破棄Cの位置から、調整した分布で一つ選び直し、次の下書きへ厳密な方式は分布を保持。毎回同じ文とは別
A〜Dは説明用のトークン記号です。先頭二つを採用し、三つ目を棄却した場合は後続の候補を使わず、その位置を再サンプリングします。事実の正誤や誤字を判定する仕組みではありません。
ひよこ ひよこ
なんでLLMの文章生成って時間がかかるの?
ペンギン先生 ペンギン先生
通常の自己回帰型の生成では、直前までの出力を使って次のトークンを一つずつ決めるからだよ。大きなモデルを繰り返し動かす必要がある。計算だけでなく、メモリーから重みを読み出す帯域なども速度を左右するんだ
ひよこ ひよこ
下書きがあると、どう速くなるの?
ペンギン先生 ペンギン先生
代表的な方式では軽いモデルが何個かの候補を先に作り、対象モデルがまとめて評価するよ。先頭から複数個を採用できれば、対象モデルを順番に動かす回数を減らせる。下書きする個数は方式や設定によるんだ
ひよこ ひよこ
候補が採用されなかったら?
ペンギン先生 ペンギン先生
最初に棄却された位置から先の下書きは使わず、その位置のトークンを調整した分布から選び直すよ。単に誤字や内容の間違いを直す処理ではなく、対象モデルと下書き側の確率を使って、出力分布を保つための判定なんだ
ひよこ ひよこ
毎回、元のモデルと同じ文章が出るの?
ペンギン先生 ペンギン先生
厳密な方式が保つのは、同じ生成設定での確率分布だよ。抽選を伴う生成で、毎回まったく同じ文章になる保証とは違うんだ。分布を保つ判定を省いた別の近似方式まで、同じ保証があるとは言えないね
ひよこ ひよこ
いつでも2〜3倍速くなるの?
ペンギン先生 ペンギン先生
原著にはT5-XXLなど特定の実験でその程度の高速化が報告されているけれど、共通の保証ではないよ。採用率が低かったり、下書きや並列検証の負担が大きかったりすると効果が小さい。モデル、生成設定、ハードウェアなどに合わせて測る必要があるんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「投機的デコーディング」って出てきたら「先に作った下書きをまとめて検証して、LLMの生成を速める技術」と思えばだいたいOK!
📖 おまけ:英語の意味
「Speculative Decoding」 = 投機的復号
💬 Speculativeは「投機的な・推測の」という意味。CPUの投機的実行と同じ発想で、当たりを予測して先に進めておくんだよ

参考資料

← 用語集にもどる