私は、推測的デコード(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)の手法では、提案者はプロンプト/生成されたコンテキストから構築します。
このリポジトリに明示しておきたかったことがいくつかあります:
- 提案者の品質と、検証(verifier)のコストの違い。
- なぜ高い受理率(acceptance rate)が常に高いスループットを意味しないのか。
- なぜ PARD のような手法は、自己回帰的なドラフトモデルより受理率が低いにもかかわらず、より高速になり得るのか。
- EAGLE/Medusa 型の学習済みヘッドと、ドラフトモデルによる推測の違い。
- プロンプトに再利用可能な構造が含まれるとき、n-gram やサフィックスデコーディングのような単純な手法はどう振る舞うのか。
このリポジトリには、ベンチマークの要約、コマンドライン、チェックポイント/エクスポート、実装メモが含まれています。計算制約のため、いくつかの結果は意図的に小さな「学習データと重なりのある」評価スライスに基づいています。そのため、私は数値を広範な一般化の主張というより、実装/挙動のベンチマークとして扱うべきだと考えています。
私は主に、アルゴリズムとシステムの境界で推測的デコードを理解したい人向けの学習リソースとして、このものを作りました。具体的には、提案者がどう訓練されるのか、ドラフトトークンがどう生成されるのか、ターゲットの検証がどう機能するのか、何がキャッシュされるのか、そしてスピードアップが実際にどこから生まれるのか、といった点です。
[link] [comments]




