Devotd Github
新发现推理与服务

mattral/flashspec 0.3.2 — 按调用统计的接受率修正

FlashSpec 0.3.2 将 GenerationResult.acceptance_rate 改为单次调用的数值,修正了累计平均的错误,并更新了版本号与容器镜像标签。

仓库信息mattral/flashspec ↗

FlashSpec 0.3.2 将 GenerationResult.acceptance_rate 改为单次调用的数值,修正了累计平均的错误,并更新了版本号与容器镜像标签。

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。0.3.2 来自 2026-10-29 合并的提交 2fc7f84(Pull Request #59,55 个文件改动,40 行新增,15 行删除),是一个保持解码路径与速度不变的缺陷修复版本,唯一的变化只有一处。GenerationResult.acceptance_rate 现在只包含返回该值的那一次调用的结果。

在此之前的版本中,同一个引擎里第二次及之后的每次调用都会返回把此前所有调用累加起来的累计平均值。由于预热调用被混入平均值,查看哪种配置真正更合适时会受到干扰。接受率是被大模型接受的建议 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 说明的测量范围仅限于一个模型对(用 Qwen/Qwen2.5-0.5B-Instruct 验证 Qwen/Qwen2.5-1.5B-Instruct)、一块 Tesla T4、fp16、批量大小 1,以及 MT-Bench 10 个和 HumanEval 10 个提示;其他 GPU 与模型对、其他批量大小都未被测量。文档中的 H100 数值是设计目标。UCB1/Thompson 的 drafter 选择在只比较一次七个臂的情况下,没有胜过最好的固定臂;Triton 与汇编内核仍处于实验阶段,位于生成关键路径之外。首次调用的编译、在 fp16 greedy 下完全一致时的并列判定、CUDA graph 的大小警告都与 0.3.1 相同。这是针对错误指标的精确修正,但并未增加依据,因此如果没打算重新阅读这些指标,那就只是一次版本号提升。