DLoop、推測デコーディングの検証回数を削減
概要
大規模言語モデルの自動回帰生成では、各トークンの生成に大きな対象モデルを繰り返し呼び出す必要があります。推測デコーディングは、軽量なドラフトモデルに複数の候補トークンを先に生成させ、その後で対象モデルがまとめて検証することで、このコストを下げます。
しかし一般的な処理は、「1回ドラフトを生成したら、すぐに1回検証する」という固定的な流れです。ドラフトモデルの性能が高く、候補トークンがすべて受理される可能性が高い場合でも、検証は毎回実行されます。NAVER AI Labの DLoop: Looped Speculative Decoding は、この不要な検証を減らすため、複数のドラフト段階を連続してから一度に検証する仕組みを提案しました。
主なポイント
- 確信度に応じて検証を遅延。 ドラフトモデルの確信度が十分高い間は生成を続け、確信度が下がった時点で、それまでに蓄積した候補を対象モデルにまとめて渡します。
- 高コストな対象モデルの呼び出しを削減。 追加の計算は軽量なドラフトモデルで行い、より高価な対象モデルの前向き計算を減らします。
- 並列ドラフト特有の問題に対応。 自動回帰型ではドラフト長を伸ばしやすい一方、並列型では未検証トークンの対象モデル由来の隠れ状態が不足し、単純な延長が難しくなります。
- loop-aware trainingを導入。 学習中に、ドラフトモデル自身が生成した未検証トークンに対応する隠れ状態を扱わせることで、追加の反復段階でも信頼性を保ちやすくします。
- 複数の方式で評価。 EAGLE-3、DFlash、Domino、DSpark、多トークン予測モジュールを対象とし、無損失デコーディングを維持しながら5〜41%のウォールクロック高速化を報告しています。
意義と影響
DLoopの中心的な発想は、ドラフトモデルを単に大きくすることではなく、ドラフトと検証の順序を見直すことです。ドラフトモデルの受理率が高まるほど、毎回の検証は冗長になります。そこで、信頼できる複数段階をまとめ、対象モデルの計算を本当に必要なタイミングへ集中させます。
もちろん、検証回数を減らす代わりにドラフトモデルの計算量は増えます。全体の速度向上は、追加のドラフト計算が削減できる対象モデル計算より小さい場合に得られます。そのため、モデルサイズ、確信度の校正、ハードウェアの並列性、バッチサイズや系列長によって実際の効果は変わる可能性があります。
推論サービングの観点では、対象モデルの呼び出しがレイテンシーやスループットを大きく左右する環境に適した最適化です。特に並列ドラフトモデルの制約を学習段階から扱う点は、適応的なドラフト長をさまざまな方式へ広げるうえで重要です。推測デコーディングは、毎回すぐ検証する必要がないという、分かりやすく実用的な設計上の示唆を与えています。
コメント
ログイン状態を確認中…
コメントを読み込み中…