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

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

💡 下書きは小さい子に任せて、仕上げチェックはエースにお願い
📌 このページのポイント
投機的デコーディングの仕組み ドラフトモデル (小型・高速) 今日 天気 良い ↑ 5トークンを高速に下書き 大型モデル (高精度) 今日 OK OK 天気 OK OK 良い NG よい 修正! 最終出力: 「今日は天気がよい」 → 品質は大型モデルと同等 並列検証で 2〜3倍 高速化(品質劣化なし)
投機的デコーディングのイメージ
ひよこ ひよこ

なんでLLMの文章生成って遅いの?

ペンギン先生 ペンギン先生

LLMは1トークンずつ順番に生成するんだけど、大きなモデルだと1トークン生成するだけでも大量の計算が必要なんだ。100トークンの文章なら、その重い計算を100回繰り返すことになるよ

ひよこ ひよこ

投機的デコーディングはどうやって速くするの?

ペンギン先生 ペンギン先生

まず軽い小型モデルが「たぶんこう続くだろう」と5〜10トークンくらい先に下書きするんだ。次に大型モデルがその下書きをまとめて検証する。大型モデルは複数トークンを並列にチェックできるから、1トークンずつ生成するより速いんだよ

ひよこ ひよこ

下書きが間違ってたらどうなるの?

ペンギン先生 ペンギン先生

間違いが見つかった時点でそこから先を捨てて、大型モデルが正しいトークンを出し直すよ。数学的にうまく設計されていて、最終的な出力の確率分布は大型モデルだけで生成した場合と完全に一致するんだ。つまり品質は落ちないよ

ひよこ ひよこ

いつでも速くなるの?

ペンギン先生 ペンギン先生

ドラフトモデルの予測精度が高いほど効果が大きいよ。文脈が明確な定型的な文章では採用率が高くなって大幅に速くなるけど、創造的な文章だと予測が外れやすくて効果が薄れることもある。最近はモデル内部の浅い層をドラフトに使うSelf-Speculative Decodingなんて手法も研究されているね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「投機的デコーディング」って出てきたら「小さいAIの下書きを大きいAIが高速チェックする技」と思えればだいたいOK!
📖 おまけ:英語の意味
「Speculative Decoding」 = 投機的復号
💬 Speculativeは「投機的な・推測の」という意味。CPUの投機的実行と同じ発想で、当たりを予測して先に進めておくんだよ
← 用語集にもどる