找回密码
立即注册
搜索
发回帖 发新帖

6255

积分

0

好友

787

主题
发表于 昨天 23:30 | 查看: 9| 回复: 0

论文标题:Approximate Speculative Decoding

论文地址: https://arxiv.org/abs/2608.03447

项目地址: https://github.com/Kissmetothemoon/ASD

论文标题与作者机构列表截图

大模型推理,卡在“逐字蹦”上

大语言模型 以逐字( token )自回归方式生成:每输出一个字,都要把动辄数百亿、上千亿参数的模型完整跑一遍。生成一篇上千字的回答,意味着成百上千次串行的前向计算。推理慢、成本高,已经成了大模型大规模落地的核心瓶颈之一。

投机解码( Speculative Decoding )是近年最主流的“免费提速”思路之一。它的做法是:让一个轻量的“草稿模型”一次性猜好后面的几个字,再由大模型在一次前向计算中并行“批改”。猜对的字直接采纳;猜错的位置则丢弃草稿、由大模型重新生成。

在严格的理论保证下,这种方法可以做到与大模型单独生成完全一致的输出分布,因此被 vLLM 等主流推理框架广泛采用。

一个被浪费的细节:大模型其实“已经批过”

但传统的“批改规则”存在一个固有浪费。标准贪心验证采用二元判断:草稿只要在第一个字上与大模型的最优选择( argmax )不一致,验证就立即停止,后面的草稿全部作废。

可问题在于,在这一轮并行验证中,大模型其实已经把这一整段草稿每个位置的分数( logits )都算出来了。这些已经付出的计算,随着第一个分歧的出现被白白丢弃。

这就像老师批改一份听写:学生第一个字写错了,老师却把后面已经批过、且批对了的内容也一并撕掉,让学生重写。规则虽然“严格”,却浪费了已经完成的批改工作。

关键洞察:token 不一致,不等于任务失败

研究团队注意到一个常被忽视的事实:草稿与大模型在某个字上“不一致”,并不等于最终答案出错。同一个数学结果,可以写成 “1776”“1,776” 或者带方框的形式;不同的连接词、不同的推理路径,也可能殊途同归,得到完全相同的最终答案。

也就是说, token 级别的分歧只是任务质量的一个不完美代理信号,而非错误本身。

当然,接受一个非贪心的字会改变解码轨迹,这并非无损优化。真正的难题不是“无视分歧”,而是:如何在允许极少数分歧的同时,把它们的“累计代价”控制在整个请求范围内,不让近似误差随着输出变长而悄悄累积?

单纯地在每一块草稿里各自放宽,会让偏差在多轮解码中反复叠加;而每块都重置“容错额度”,又无法对同一段生成中已经引入的偏差负责。

ASD:给“容错”装上三道闸门

基于上述洞察,北京航空航天大学等单位的研究团队提出了 Approximate Speculative Decoding(近似投机解码,简称 ASD)。

其核心思想是:与其在第一个分歧处“一刀切”,不如在严格可控的预算内,有选择地接受极少数“大模型本来也几乎想选”的分歧字。随后直接复用其后仍与大模型贪心选择一致的连续后缀——这部分字无需再做任何近似决策,也无需额外跑一次大模型前向。

为防止“放水”演变成质量滑坡, ASD 设置了三道闸门:

一是局部“遗憾”门控( regret gate ),只接受大模型最优选择与草稿选择之间概率差( target-logit regret )极小的分歧,即那些“几乎打平”的字。

二是每个草稿块的异常次数上限,避免单块内密集放水。

三是贯穿整个请求的“遗憾预算账本”( request-level regret ledger ),把整段生成中累计接受的偏差总量约束在固定预算内。

三者共同作用,使近似被显式量化、可审计。

ASD 的另一项关键设计是“已实现前缀后缀复用”:接受一个分歧字后,后续草稿字是在“包含该分歧的新前缀”下被大模型重新打分的,其中一段连续后缀往往恰好仍是大模型的贪心选择。这段后缀可以直接提交,既不需要额外的大模型前向,也不需要再做新的近似决策——这正是提速的主要来源。

工程上, ASD 不需要训练、不需要微调、不需要更换草稿模型,仅修改验证器逻辑,插入标准验证流程即可;当预算设为零时,它严格退化为标准贪心验证,与现有系统完全兼容。

实验:最高提速 15.26%,284B 大模型上同样有效

实验结果系统验证了方法的有效性。

在 Qwen3-14B 搭配 DSpark-14B 草稿模型、覆盖 GSM8K、MATH-500、HumanEval、MBPP、MMLU、MT-Bench、Alpaca 七个任务的评测中, ASD 的固定负载吞吐量较严格投机解码平均提升 7.78%,最高达 15.26%。平均每轮接受长度从 3.85 提升到 4.20 个 token。

在自然结束解码的质量审计中,七个任务有五个准确率不降,仅两个任务出现约 0.6 个百分点的微小波动。

为证明收益不绑定某一款草稿模型,团队在 DSpark、EAGLE3、Medusa 三种不同草稿架构共 10 组设置中测试。ASD 全部取得正增益( 3.05%–15.26%,平均约 7.52%),且每组的平均接受长度都在增加——这说明提速来自验证端机制本身,而非特定草稿的改动。

在 DeepSeek-V4-Flash( 284B 参数)搭配 DSpark 的大规模实验( 8 张 H20 GPU,FP4 到 FP8 兼容设置)中,GSM8K 与 MATH-500 的验证端接受率进一步提升约 10%–16%。

消融实验还表明:ASD 相比“仅在局部放宽”的 MARS 式、Fuzzy 式对照,在 GSM8K 上分别多提升约 6.5%、5.3%、5.1%,在 MATH-500 上多提升约 9.7%、6.0%、7.3%,凸显了“请求级预算账本”不可替代的作用。

系统层面,验证器逻辑本身每个输出字仅增加约 0.045–0.083 毫秒,提速真实来自昂贵验证轮次的减少,而非靠隐藏开销。

不吹“无损”,把权衡摆上台面

值得一提的是,研究团队并没有把 ASD 包装成“无损加速”。论文明确指出:接受非贪心字会改变解码轨迹,ASD 界定的是累积局部遗憾的上界,并不保证输出逐字一致、语义不变或任务必然正确。

为此,团队用两套独立审计把权衡讲清楚:固定负载评测衡量吞吐,自然结束解码则单独审计准确率、生成长度与输出哈希分歧率。

结果显示,在 GSM8K、MATH-500 上虽有超过 95% 的请求输出轨迹发生变化(哈希分歧),但实测准确率并未下降。这恰好印证了论文的核心立场: token 分歧不等于任务失败,但任何一条近似轨迹都不能被当作“精确”或“绝对安全”——速度与行为之间的取舍,应当被显式建模、公开披露,交由具体应用来审计。

小结

ASD 提供了一条免训练、广兼容的投机解码加速路径:不改动草稿生成,只在验证端用“预算化的最长前缀选择”替代“首个分歧即截断”,把大模型已经算好的分数尽可能用足。

在不牺牲多数任务准确率的前提下,它为大模型低成本、高效率部署提供了一个即插即用的新选项。

目前论文已在 arXiv 公开,代码亦已开源,欢迎同行复现、交流与指正。




上一篇:NeurIPS 2026谁最高产?拿开源AgentOS跑了一遍投稿数据
下一篇:安全研究员古河加入智谱,用GLM挖Windows漏洞获微软23次致谢
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-10-16 10:25 , Processed in 0.060476 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表