Devotd Github
新着推論・サービング

mattral/flashspec 0.3.2 — 呼び出し単位の受理率修正

FlashSpec 0.3.2 は GenerationResult.acceptance_rate を呼び出し 1 回分の値に変更し、累積平均の誤りを修正した。バージョンとコンテナイメージタグも更新された。

リポジトリ情報mattral/flashspec ↗

FlashSpec 0.3.2 は GenerationResult.acceptance_rate を呼び出し 1 回分の値に変更し、累積平均の誤りを修正した。バージョンとコンテナイメージタグも更新された。

GitHub の説明: Adaptive speculative-decoding inference engine with Triton-optimised verification and online bandit draft selection.

スター
★ 16
フォーク
0
言語
Python
ライセンス
Apache-2.0
最新リリース
v0.1.5
原文を見る ↗GitHub で見る ↗

mattral/flashspec が 0.3.2 をリリースした。FlashSpec は HuggingFace の因果言語モデル向けの推測デコーディング(speculative decoding)エンジンで、小さな drafter モデルが提案した token を大きなモデルが一度に検証し、受理された token だけをそのまま使う。ライセンスは Apache-2.0 である。2026-10-29 にマージされたコミット 2fc7f84(Pull Request #59、55 ファイル変更、40 行追加、15 行削除)による 0.3.2 は、デコード経路と速度をそのままにしたバグ修正リリースで、変わったのは 1 点だけだ。GenerationResult.acceptance_rate は、その値を返した呼び出し 1 回分の結果のみを保持するようになった。

それまでのバージョンでは、1 つのエンジンにおける 2 回目以降のすべての呼び出しが、それ以前の呼び出しをすべて合計した累積平均を返していた。ウォームアップの呼び出しが平均に混ざっていたため、どの設定が実際によく合うかを確認する妨げになっていた。受理率は提案 token のうち大きなモデルが受理した割合であり、drafter を使う価値を見極める指標なので、呼び出しごとに読むべきものである。ステップごとの accepted と proposed のカウント、arm_steps の合計は最初から正確で、今回変わったのは表面に出ている値だけである。README の受理率列と docs/lessons.md の Figure 9 は保存されたステップごとのカウントから再計算し、README の表の数値は依然として 0.3.0 リリースの実行(bundle 3c43e08)による結果である。バージョン表記は pyproject.toml と flashspec/__init__.py、CITATION.cff(リリース日 2026-10-29)、deploy/Dockerfile と docker-compose.yml、k8s マニフェスト、docs/install.md、README まで 0.3.2 に引き上げられ、コンテナイメージタグも ghcr.io/mattral/flashspec:0.3.2 に変更された。ユーザーが修正すべきコードはない。

ただし、このリリースは Alpha のままで新しい測定はない。README が示している測定範囲は、モデルペア 1 組(Qwen/Qwen2.5-1.5B-Instruct を Qwen/Qwen2.5-0.5B-Instruct で検証)、Tesla T4 1 台、fp16、バッチサイズ 1、MT-Bench 10 件と HumanEval 10 件のプロンプトのみで、他の GPU とモデルペア、バッチサイズは測定されていない。文書内の H100 の数値は設計目標である。UCB1/Thompson の drafter 選択は、7 つのアームを一度だけ比較した場合には最良の固定アームに勝てなかった。Triton とアセンブリのカーネルは実験段階で、生成のクリティカルパスの外にある。初回呼び出し時のコンパイル、fp16 greedy で完全に一致する場合のタイ、CUDA graph のサイズ警告も 0.3.1 と同じである。誤った指標を直した正確な修正だが、根拠が増えたわけではないため、指標を読み直す予定がないなら、バージョン番号の更新にすぎない。