並列ドラフトモデルは1回のフォワードパスでトークンブロック全体をドラフトできますが、著者らは公式リリースされたシステムがこの加速性能を十分に活用できていないと考えています。単一リクエストでは、各ステップで受け入れられるトークン数が少ないにもかかわらず、ターゲットモデルの重み全体を読み込む必要があります。バッチ処理では、リクエストごとの検証オーバーヘッドにより加速比が約半分に低下します。さらに、最適なアプローチは、サービングシナリオ、ドラフトモデル、ターゲットモデル、およびGPUによって変化します。SpecPilotは自動最適化ループです。各ラウンドでコストモデルを用いて、現在のシステムが上限から最も大きく乖離している部分を特定し、複数のエージェントが並行して方向性を探索し、成功した変更をマージします。カーネルサブエージェントは、メモリ帯域幅の上限から最も遠いカーネルに特化して調整を行います。トークン強制(token forcing)を用いて各出力トークンを原版と逐一比較し、「報酬の不正操作(reward hacking)」を防ぎます。構造化メモリにより、検証済みのメカニズムを次のラウンドや新しいデプロイメントへ引き継ぎます。リポジトリでは、6 種類のデプロイメントそれぞれに対して発見された推論エンジン(トリム版のSGLangに基づく)が公開されており、起動、ベンチマーク、検証スクリプトが付属しています。
いいね 16 · コードスター数 82
理由
- 著者らは、トレーニング不要で品質を損なわず、単一リクエストにおいて自己回帰方式に対する加速が原版の 4.46 倍から 10.87 倍へ、バッチ処理では 1.94 倍から 3.93 倍へ向上したと述べています。READMEの表では、H100 上の Qwen3.8-27B + DFlash2 において加速が 3.95 倍から 8.86 倍へ向上し、新規クローン環境で4つの H100 設定を再実行した際の加速比と信頼区間も付記されています。
- 発見されたメカニズムは個別に参照可能です。無損失の 12 ビット重み形式 W12(BF16 を3つの 4 ビット平面に分割し、GEMMレジスタ内でビット単位で復元。著者らによれば、これ単体でも 8–30B の稠密モデルにおける BF16 デコードが 1.15–1.26 倍高速化)、2段階検証、混合循環構造ターゲットモデル向けのツリー検証、および3種類のバッチ処理メカニズムが含まれます。
- 再現可能です。コードは Apache-2.0 ライセンスで提供され、各設定は1枚のGPUのみを使用します。スクリプトは環境のセットアップ、固定バージョンのチェックポイントのダウンロード、OpenAI互換サービスの起動、および比較ベンチマークを担当します。Hugging Faceでの当日のいいね数は 16、コードスター数は 82 です(これらは単に関心度を表します)。
使い方
- 環境構築:bash scripts/setup_env.sh(Python 3.11、torch 2.13 + CUDA 13.0、依存関係はロック済み)。特定の設定のチェックポイントをダウンロード:bash scripts/download_models.sh h100_c1_qwen38-27b_dflash2(設定名は settings/ ディレクトリ内のフォルダ名に対応します)。
- サービス起動:bash scripts/serve.sh h100_c1_qwen38-27b_dflash2 final 0 は、GPU 0 のポート 30000 で SpecPilot エンジンを起動します。final を stock / ar に置き換えることで、原版および自己回帰ベースラインを起動できます。インターフェースは SGLang HTTP および OpenAI と互換性があります。
- ベンチマーク:bash scripts/bench.sh <設定> final-1 0 を実行後、scripts/compare.py speed で加速比を比較し、scripts/score.py で gsm8k / humaneval / math500 / mbpp のスコアを算出します。各エンジンの初回起動時にはカーネルのコンパイルが発生するため、事前にウォームアップを実行してから計測してください。
リスク
- ハードウェアの制約:H100 80GB および RTX PRO 6000 Blackwell 96GB のみで検証済みです。RTX PRO 6000 用のカーネルは sm_120a のみでコンパイルされます。torch 2.13 + CUDA 13.0 には R580 ドライバーが必要であり、古いドライバーでは前方互換性ライブラリに依存します。
- 固定された 6 種類の組み合わせのみをカバーしています(Qwen3.8-27B / Muse-Glimmer-30B と DFlash2 / DSpark の組み合わせ)。リポジトリには発見されたエンジンが含まれていますが、エージェント最適化ループ自体の起動方法は確認できません。モデルやドラフトモデルを変更した場合、直接再利用することはできません。
- 「無損失」とは、貪欲デコーディングにおいて各トークンがターゲットモデルによって決定されることを指します。READMEには、出力が自己回帰方式とビット単位で一致するわけではないことが明記されています(バッチ検証における計算順序の違いにより、近似タイブレークが反転する可能性があるため)。付随するスコアリングは整合性チェックのみを目的としており、加速の数値はすべて著者らによる報告です。
編集:すでに単一GPUで Qwen3.8-27B と DFlash2 / DSpark を組み合わせてサービングを行っているチームに適しています。推論最適化に関心のある読者は、W12 重み形式と2段階検証の2つの部分に特に注目してください。
開く · コード · Hugging Face論文ページ