推測デコーディングの実装:EAGLE-3、Medusa-1、PARD、ドラフトモデル、n-gramとサフィックス復号をゼロから [P]

Reddit r/MachineLearning / 2026/4/27

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical UsageModels & Research

要点

  • 著者は、複数の推測デコーディング手法を、提案(proposer)設計の違いを比較しやすくするための共通のデコーディング/評価コントラクトのもとで、ライブラリのラップではなくゼロから実装した教育用リポジトリを公開した。
  • 実装済みのアプローチには、EAGLE-3、Medusa-1、標準的なドラフトモデルによる推測、PARD/parallel draft models、学習不要のn-gramプロンプトルックアップ、サフィックスデコーディングが含まれる。
  • リポジトリには、該当する手法では学習と推論の両方の経路が用意されており、ターゲットモデルとしてQwen/Qwen2.5-7B-Instructを用い、手法に応じて小型の学習済みヘッドやドラフトモデルを使い分ける。
  • 提案品質と検証コスト(verifier cost)のトレードオフ、高い受理率が必ずしも高スループットにつながらない理由、受理率が低くてもPARDが自 autoregressiveドラフトモデルより速くなり得る理由など、重要な論点を明確に示している。
  • ベンチマーク要約や実装ノートも含まれているが、計算制約のため小規模な評価スライス上の結果であり、広範な一般化よりも挙動・実装ベンチマークとして解釈すべきだとしている。

私は、推測的デコード(speculative decoding)のための教育用の実装リポジトリに取り組んできました:

https://github.com/shreyansh26/Speculative-Decoding

目的は既存ライブラリをラップすることではなく、提案者(proposer)の設計の違いをより調べやすくするために、共通のデコード/評価(decoding/evaluation)契約の裏側で、複数の推測的デコード手法をゼロから実装することです。

これまでに実装した手法:

  • EAGLE-3
  • Medusa-1
  • 標準のドラフトモデルによる推測
  • PARD / 並列ドラフトモデル
  • n-gram のプロンプトルックアップ
  • サフィックスデコーディング

このリポジトリには、適用可能な場合、トレーニングと推論の両方の経路があります。学習済みの提案者(learned proposers)では、ターゲットモデルとして Qwen/Qwen2.5-7B-Instruct を使用し、手法に応じて、小さな学習済み/推測用のヘッド、またはドラフトモデルを用います。トレーニング不要(training-free)の手法では、提案者はプロンプト/生成されたコンテキストから構築します。

このリポジトリに明示しておきたかったことがいくつかあります:

  1. 提案者の品質と、検証(verifier)のコストの違い。
  2. なぜ高い受理率(acceptance rate)が常に高いスループットを意味しないのか。
  3. なぜ PARD のような手法は、自己回帰的なドラフトモデルより受理率が低いにもかかわらず、より高速になり得るのか。
  4. EAGLE/Medusa 型の学習済みヘッドと、ドラフトモデルによる推測の違い。
  5. プロンプトに再利用可能な構造が含まれるとき、n-gram やサフィックスデコーディングのような単純な手法はどう振る舞うのか。

このリポジトリには、ベンチマークの要約、コマンドライン、チェックポイント/エクスポート、実装メモが含まれています。計算制約のため、いくつかの結果は意図的に小さな「学習データと重なりのある」評価スライスに基づいています。そのため、私は数値を広範な一般化の主張というより、実装/挙動のベンチマークとして扱うべきだと考えています。

私は主に、アルゴリズムとシステムの境界で推測的デコードを理解したい人向けの学習リソースとして、このものを作りました。具体的には、提案者がどう訓練されるのか、ドラフトトークンがどう生成されるのか、ターゲットの検証がどう機能するのか、何がキャッシュされるのか、そしてスピードアップが実際にどこから生まれるのか、といった点です。

submitted by /u/shreyansh26
[link] [comments]