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

Reddit r/LocalLLaMA / 2026/4/27

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisModels & Research

要点

  • 著者は、推測的デコードの複数手法を共通のデコード/評価コントラクトのもとでゼロから実装する教育用GitHubリポジトリを作成し、提案(proposer)設計の違いを比較しやすくしています。
  • 実装済みの手法には、EAGLE-3、Medusa-1、標準的なドラフトモデルによる推測、PARD(parallel draft models)、さらに n-gram のプロンプト参照とサフィックスデコードが含まれ、適用可能な箇所では学習・推論の両方の経路を用意しています。
  • 学習ベースの提案側ではターゲットモデルとして Qwen/Qwen2.5-7B-Instruct を使用し、学習不要の手法ではプロンプト/生成コンテキストから提案側を直接構築します。
  • 記事では、提案側の品質と検証(verifier)コストの違い、受理率が高くてもスループットが必ずしも上がらない理由、受理率が低くても PARD が自己回帰的ドラフトモデルより速くなり得る理由などを強調しています。
  • ベンチマーク要約、コマンド、チェックポイント/エクスポート、実装メモも提供されていますが、計算制約により小さな評価スライスでの意図的な結果も含まれるため、汎用的な結論というより実装・挙動ベンチマークとして扱うべきだと述べています。

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

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

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

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

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

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

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

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

このリポジトリには、ベンチマークの要約、コマンドライン、チェックポイント/エクスポート、実装メモが含まれています。計算制約のため、いくつかの結果は意図的に小さな学習データ重複(train-overlap)の評価スライスになっています。そのため、数値は広範な一般化の主張ではなく、実装/挙動のベンチマークとして扱うのがよいと思います。

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

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