DSpark: Speculative decodingを活用したLLM推論の高速化 [pdf]
(github.com/deepseek-ai)- DSpark: 半自己回帰(semi-autoregressive)生成と信頼度スケジューリングを組み合わせた speculative decoding フレームワーク
- 並列ドラフター(parallel drafter) が1回の順伝播で長いトークンブロックを提案する一方、トークン間依存性の欠如により後半で 受理率の急減(acceptance decay) が発生する問題を、半自己回帰構造 と 負荷認識型検証 によって同時に解決
- 重い 並列バックボーン に軽量な 逐次モジュール を組み合わせてブロック内依存性を注入し、ドラフト速度を維持しながら 接尾部崩壊(suffix decay) を緩和
- 信頼度ヘッド(confidence head) が位置ごとの接頭部生存確率を推定し、ハードウェア認識スケジューラ がエンジンのスループット曲線に合わせてリクエストごとに 検証長 を動的に調整
- オフラインベンチマークでは自己回帰 baseline(Eagle3)および並列 baseline(DFlash)に対して 受理長(accepted length) を一貫して改善し、DeepSeek-V4 の実サービス配備時には検証の無駄を抑制
- 既存の production baseline である MTP-1 と比べ、同一スループットでユーザーごとの生成速度を 60–85%高速化 し、厳しいインタラクティブ制約下では到達できなかった性能領域を開いて Pareto frontier を拡張
問題定義 — 並列ドラフターの2つのボトルネック
- LLM はトークンを自己回帰的に生成し、各トークンごとに先行トークン全体に条件付けられた順伝播が必要なため、推論遅延は出力長に比例し、低い GPU 利用率と高い待ち時間が production サービングの主要ボトルネックとして作用する
- speculative decoding では軽量な draft モデルが候補ブロックを提案し、target モデルが単一の順伝播で検証する。rejection sampling により target 分布と一致する最長接頭部を受理するため、品質劣化なしで 高速化できる
-
自己回帰ドラフターの限界
- 各位置を前のトークンに条件付けるため高いモデリング能力を持つが、ドラフティングコストがブロックサイズに線形比例(𝑇draft ∝ 𝛾)するため、小さいブロック と 浅い構造 に制約される
-
並列ドラフターの限界
- すべての位置を一度に生成するため、ドラフト遅延はブロックサイズにほぼ依存せず、大きなブロック(例: 𝛾=16)を使用可能
- 各位置を独立に予測するためトークン間依存性をモデル化できず、マルチモーダル衝突(multi-modal collision) と後半での急激な受理率低下を招く
- 長いブロックを無差別にすべて検証するとスループットが低下し、特に高同時実行環境では拒否リスクの高いトークンがバッチ容量を占有する
- 理想的な検証長は2軸で変動する — データ面(コードなどの構造化リクエストは受理率が高く、オープンエンドなチャットは低い)とシステム面(低負荷時は追加検証がほぼ無料、高負荷時は他のアクティブなリクエスト容量を侵食する)
アーキテクチャ — 2つの相補的構成要素
-
トークンあたり遅延は 𝐿 = (𝑇draft + 𝑇verify)/𝜏、高速化は 𝑇draft の削減・𝜏 の増加・有効 𝑇verify の削減という3つのレバーに還元される
-
デコーディングサイクル: プロンプト ABC から target モデルが次トークン D を生成(アンカーの役割)→ 並列バックボーンと逐次ヘッドが draft EFGH と信頼度スコア c1–c4 を生成 → スケジューラが接頭部 EFG を維持し、低信頼トークン H を除去 → target モデルが並列検証し、E・F を受理して G を拒否した場合は補正トークン G* を生成
-
半自己回帰生成(Semi-Autoregressive Generation)
- 並列ドラフターは “of course” や “no problem” のような複数の連続候補がある場面で “of problem” のような不整合な組み合わせを生成する。これは各位置が実際にサンプリングされた先行トークンではなく、あらゆる可能な先行トークンについて周辺化するため
- 並列段階(Parallel stage): 並列バックボーン(DFlash を採用)がブロック全体に対して単一の順伝播を行い、隠れ状態と基本ロジットを生成。アンカー自体を最初の予測位置として扱い、𝛾 個の入力から 𝛾 個のロジットを出力してドラフト計算を削減
- 逐次段階(Sequential stage): 基本ロジットに接頭部依存の遷移バイアス 𝐵𝑘 を加え、各位置がブロック内の前にサンプリングされたトークンに条件付けられるようにし、自己回帰分解によって因果的なブロック分布を導入する。逐次処理であるため、並列段階より十分に軽量(𝑇sequential ≪ 𝑇parallel)である必要がある
- Markov ヘッド: 直前トークンのみに依存する1次遷移へ簡略化し、𝑉×𝑉 の全行列を低ランク分解 𝐵 = 𝑊1𝑊2(既定 𝑟=256)で近似。保存コストと各ステップ演算を最小化し、“of” をサンプリングした後に “course” を強め、“problem” を抑制してクロスモード衝突を緩和
- RNN ヘッド: 再帰状態 𝑠𝑘 によりブロック内の接頭部履歴全体を蓄積し、ゲート更新で直前トークン以前の情報にもアクセスするが、実装複雑性が高く、配備特性も不利
-
信頼度スケジューリング検証(Confidence-Scheduled Verification)
- ドラフト受理率はドメインごとに変動し(コードは高く、オープンエンドなチャットは低い)、追加トークン検証コストもエンジン負荷によって変わるため、期待収益が正のトークンにのみ target 計算をルーティングする統合メカニズムが必要
- 信頼度ヘッド(Confidence Head): 位置 𝑘 ごとにスカラー推定 𝑐𝑘 ∈ (0,1) を出力し、先行トークンがすべて受理された条件下で位置 𝑘 のトークンが検証を通過する条件付き確率をモデル化する。軽量な線形射影 + sigmoid 構造
- 解析的なステップ別受理率 𝑐*𝑘 = 1 − ½‖𝑝𝑑𝑘 − 𝑝𝑡𝑘‖1(draft・target 分布間の total variation 距離)によって教師あり学習
- 事後補正 — Sequential Temperature Scaling(STS): ハードウェア認識スケジューリングは累積受理確率の絶対値を必要とするが、ニューラルネットワークの信頼度は過信(overconfident)しがちである。各 𝑐𝑖 は条件付き確率なので接頭部累積積として因数分解でき、held-out 検証セット上で左から右への ECE を最小化する1次元 grid search を実行する。順序保存変換のためトークン順位は維持される
- ハードウェア認識接頭部スケジューラ(Hardware-Aware Prefix Scheduler): 検証長の選択をグローバルスループット最大化問題として定式化し、アクティブな 𝑅 件のリクエストに対して SPS(𝐵)(エンジン初期化時に1回だけプロファイルしたコスト表)を用い、𝛩 = 𝜏·SPS(𝐵) を最大化
- 生存確率 𝑎𝑟,𝑗 は 𝑗 に対して単調非増加なので、グローバルソートと貪欲選択がブロック内の接頭部依存性を自然に満たし、𝑂(1) コスト表参照で段階的に admit できる
- 無損失 speculative decoding には non-anticipating 特性が必要だが、Markov 特徴は以前にサンプリングされたトークンに依存するため、事後的なグローバル探索は 𝑥𝑟,𝑘 情報を漏らし、選択バイアスを生む
- 早期停止(early-stopping) メカニズムによりスループットが低下した時点で直ちに停止し、admit 決定がその段階までに処理された接頭部のみに依存するよう因果性を強制する。ただし目的 𝛩 が単峰(unimodal)のときにのみグローバル最適が保証される
学習(Training)
- target シーケンスから複数のアンカー位置をランダムにサンプリングし、𝛾 トークンブロックを学習データとして構成
- target モデルは全過程で固定(frozen)、draft モデルは埋め込み層・LM head を共有しつつ固定し、バックボーンドラフター・逐次ブロック・信頼度ヘッドのみ更新
- 学習目的は3項の加重和 — 交差エントロピー損失 Lce、分布整合損失 Ltv、信頼度損失 Lconf
- すべての項は位置重み 𝑤𝑘 = exp(−(𝑘−1)/𝛾) で重み付けし、接頭部ベース検証で期待受理長により大きく寄与する前半位置を強調
- Ltv は total variation 距離をペナルティ化する。ステップ別受理確率は 1 − ½‖𝑝𝑑 − 𝑝𝑡‖1 に等しいため、Ltv を最小化することは期待受理率を最大化することに等しい
- 既定重みは 𝛼ce = 0.1、𝛼tv = 0.9、𝛼conf = 1.0
実験 — オフラインベンチマーク
-
設定
- target モデル: Qwen3-{4B, 8B, 14B}, Gemma4-12B / 比較ドラフター: SOTA 並列ドラフター DFlash、自己回帰ドラフター Eagle3
- 同一フレームワーク・データで全体を再学習し、Eagle3 の TTT horizon(7)を DFlash・DSpark のブロックサイズ(7)に合わせ、draft 層数は Eagle3 が 1、DSpark と DFlash は 5
- 学習データ: Open-PerfectBlend 130万サンプル(chat 17.6%、math 39.4%、code 38.9%、instruction-following 4.1%)。プロンプトのみを使用し、応答は各 target モデルが再生成、10 epoch 学習
- 評価ドメイン: 数学(GSM8K, MATH500, AIME25)、コード(MBPP, HumanEval, LiveCodeBench)、日常チャット(MT-Bench, Alpaca, Arena-Hard)、サンプリング温度 1.0、ラウンドごとの受理長 𝜏 を報告
-
主要結果
- オフライン評価では信頼度スケジューラを無効化し、固定ブロックで純粋な draft 品質のみを分離
- Qwen3-4B・8B・14B で Eagle3 に対してマクロ平均受理長を 30.9%・26.7%・30.0% 改善、DFlash に対して 16.3%・18.4%・18.3% 改善。Gemma4-12B でも一貫した利得があり、モデルファミリー間での一般化を確認
- 構造化課題の受理長はオープンエンドなチャットより高い(Qwen3-4B 基準で数学 5.57・コード 5.12 vs チャット 3.49)。データ予測性のばらつきが静的検証長の無駄を生み、信頼度スケジューリングの動機となる
実験分析
-
並列生成が自己回帰を上回る理由
- 並列・半自己回帰ドラフターが完全自己回帰の Eagle3 より長い受理長を示すという直感に反する観察を、位置ごとの条件付き受理率(前位置がすべて受理された場合のみを分母に集計)で分析
- 位置1の容量優位: 最初の位置は target 文脈のみに依存する。Eagle3 は 𝑂(𝛾) 遅延のため浅いネットワークに制約される一方、𝑂(1) の並列ドラフターは深いネットワークを使えるため、DFlash は Eagle3 より高く始まる(数学 0.88 vs 0.81、チャット 0.72 vs 0.53)。最初のトークン拒否はブロック全体を無効化するため、この初期優位が最終受理長に大きく影響する
- 後半位置の独立性限界: 位置 2–7 では Eagle3 が条件付き確実性を活用して維持・上昇する(チャット 0.53→0.74)のに対し、DFlash は急激に低下(コード 0.87→0.78、チャット 0.72→0.63)し、マルチモーダル衝突により不整合な接尾部を生成する
- 半自己回帰による接尾部崩壊の緩和: DSpark は深い並列バックボーンの高い初期受理率(数学で 0.93 開始)を継承しつつ、軽量逐次ヘッドで後半崩壊を抑え、ブロック全体で高く安定した条件付き受理率を維持する
-
少ない自己回帰でも大きな効果
- ドラフター深さ: ブロックサイズ 7 固定で、DSpark の層数を 1→5 に増やすと性能は単調に向上し、1→2 層で限界利得が最大。2層 DSpark は 5層 DFlash を全ドメインで上回り、逐次ヘッドのパラメータ効率性を示した
- 提案長: 深さ 5 固定で、draft 長 {4,8,12,16} に拡張したとき DSpark はすべての長さで DFlash を上回り、𝛾 の増加とともに差が拡大した(𝛾=7 で数学 16%・コード 15%・チャット 18%、𝛾=15 で 30%・26%・22%)。RNN ヘッドは長い長さでわずかな追加利得にとどまり、既定では Markov ヘッドを採用
- 遅延オーバーヘッド: バッチ 128・文脈長 {512,1024,2048,4096} の平均基準で、逐次ブロック遅延は無視でき、draft 長を 4→16 に拡張してもラウンド全体の遅延は 0.2–1.3% しか増えず、最大 30% の受理長改善を得た
-
信頼度ヘッドの役割 — 長くではなく、賢く検証する
- Qwen3-4B で静的しきい値スイープを診断したところ、しきい値上昇に伴い拒否トークンのフィルタリングで受理率が上がり、チャットで最も効果が大きかった(45.7%→95.7%)。数学(76.9%→92.5%)・コード(67.6%→92.0%)はより緩やかだった
- 静的しきい値はシステム負荷を無視するため動的サービングでは非最適であり、信頼度モデルは強い識別力(ROC-AUC 0.81–0.90)を持つ一方で過信(ECE 3–8%)があるが、STS 適用後は平均 ECE を約 1% まで下げ、信頼できる生存推定を得た
実サービス配備
-
拡張可能な学習
- DeepSeek-V4-Flash・Pro preview と共同配備され、並列バックボーンは mHC を適用した MoE 3層と sliding window attention 128 で構成、最大ブロックサイズは 𝛾=5、Markov ヘッドを使用し、信頼度ヘッドは end-to-end 学習後に STS で補正
- 隠れ状態通信(Hidden state communication): 全語彙ロジット(𝑉≈10⁵)を転送する代わりに LM head 直前の隠れ状態のみを通信し、サンプル位置に限って LM head を draft ワーカー上でローカル実行することで、トークンあたり通信複雑度を 𝑂(𝑑) に削減
- アンカー限定シーケンスパッキング(Anchor-bounded sequence packing): 固定数の draft アンカーをサンプリングして孤立した予測ブロックを高密度にパックし、トークン単位の attention index によって複数独立シーケンス間の因果マスキングを維持しつつ、padding オーバーヘッドを回避
-
スケジューラの実運用適用
- 2つの衝突がある — アルゴリズムは滑らかな単峰の容量曲線を仮定するが、実際の SPS(𝐵) は離散的で段階的に低下し、ステップごとの動的トークンスケジューリングは連続 CUDA graph replay・Zero-Overhead Scheduling(ZOS)と衝突する
- 非同期スケジューリング で適応し、ZOS は現在ステップ完了前に次のバッチサイズを要求するため、2ステップ前の信頼度出力で検証容量を近似する。現在ステップ候補は最新の累積信頼度で並べ替え、過去予測は動的切断長(𝐾)決定にのみ用い、動的 top-𝐾 選択へキャスト
- 早期停止を除去して制約のないグローバル探索を有効化し、2ステップ前の履歴のみを評価することで現在トークン 𝑥𝑟,𝑘 の実現から隔離され、因果バリアを形成。ハードウェアの崖をまたぐ物理スループット最大化と正確な target 分布保持を両立する
-
高スループット・低遅延推論
- production サービングでは、リクエストごとの遅延と総スループットを同時に最適化する。本配備では KV-cache 容量・ユーザートラフィック制約により有効バッチサイズが GPU 飽和しきい値未満にとどまるため、両目標は競合ではなく高い相関関係へと単純化される
- 可変長クエリ対応が課題であり、固定長デコードカーネルで単純処理すると padding と不均等負荷によって GPU 利用率が下がる。すべてのリクエストトークンを平坦化して独立要素として処理し、シーケンス内部依存性は sparse attention の marker tensor で伝達する。DeepSeek-V4 では index-attention・compress カーネルのみを修正して可変長ルーティングをサポート
-
実ユーザートラフィックでの性能
- DSpark-5(𝛾=5)を MTP-1 baseline と V4-Flash・Pro production エンジンで比較。MTP-1 は静的マルチトークンドラフター(MTP-3/5)が高同時実行時にスループットを低下させるため維持されていた単一トークン設定であり、DeepSeek-V4-preview 公開2週間後に DSpark へ置き換えられた
- V4-Flash: 80 tok/s/user SLA でスループット 51% 向上、120 tok/s/user では MTP-1 が運用限界に近づくため名目上 661% 優位(絶対倍率ではなく、インタラクティブ frontier 拡張の証拠として解釈)。同一スループットでユーザーごとの生成を 60–85% 高速化
- V4-Pro: 35 tok/s/user で 52% 向上、50 tok/s/user で名目上 406% 優位、同一容量で 57–78% 高速化し、全体として throughput–interactivity frontier を外側へ移動
- 負荷適応動作: 中程度の同時実行数(V4-Flash で 200、V4-Pro で 150 リクエスト未満)では、スケジューラが MTP-1 の静的 2 トークンをリクエストごとに約 4–6 トークンへ拡張し、順伝播あたりの受理トークンを増加。同時実行が飽和すると検証長を滑らかに縮小し、低信頼トークンがバッチ容量を侵食する前に枝刈りする
-
限界
- 接頭部スケジューラは target 検証の無駄を最小化するが、並列バックボーンによる初期 𝛾 トークンブロック生成には固定のドラフトコストが存在する。本質的に受理率が低い複雑クエリでは、この先行計算は回収できない
- 今後は draft モデル内の難易度認識型 early exiting により、そのようなリクエストがブロック全体生成を迂回するよう改善できる可能性がある
結論
- 構造面では、重い並列バックボーンと軽量逐次ヘッドを組み合わせた半自己回帰パラダイムにより、独立並列ドラフターの急激な接尾部崩壊を緩和
- システム面では、検証長選択をグローバルスループット最大化問題として定式化し、補正済み生存確率とリアルタイムエンジン負荷に基づくハードウェア認識接頭部スケジューラで検証予算を動的調整
- 広範なオフライン評価で SOTA の自己回帰・並列 baseline を上回り、DeepSeek-V4 の実配備では高負荷同時実行の維持・ユーザーごとの生成高速化・LLM サービング Pareto frontier 拡張によって実用価値を実証
まだコメントはありません。