JetSpec++:前瞻并行草稿与自修正加速LLM推理

JetSpec++ 通过算法与系统协同设计,让强草稿模型几乎不占额外墙钟成本,实现最高 7.45 倍无损加速。
投机解码长期面临草稿质量与草稿成本的权衡:草稿模型越强接受率越高,但生成成本也越大。JetSpec++ 提出算法-系统协同设计,保留强学习型草稿模型的同时将其代价藏进目标模型验证的时间窗口。三大组件分别是块内自修正(提升块内预测精度)、块间前瞻草稿(让草稿模型持续忙碌)和流水线化草稿与验证(重叠两阶段执行)。实测相对自回归解码最高 7.45 倍加速,相对 DSpark 为 1.54 倍,GB200 单请求最高 1361 tokens/秒,七个基准平均接受长度 8.94,且完整保留目标模型输出分布。代码与模型已在 GitHub 开源。
投机解码的瓶颈:草稿质量与延迟的博弈
投机解码(Speculative Decoding)已经成为大语言模型(LLM)推理加速的主流方案,其核心逻辑是用一个更轻量的草稿模型先并行生成若干token,再由目标模型一次性验证。这一范式能否奏效,取决于两个彼此拉扯的指标:草稿token的接受率,以及产出这些草稿所付出的成本。
提升接受率往往意味着草稿模型要更强、更贵;而压低成本又容易牺牲质量,导致大量token被目标模型拒绝、加速收益反而缩水。长期以来,这两者在工程实践中更像是权衡而非共赢。来自hao-ai-lab的最新工作JetSpec++提出,借助算法与系统的协同设计(algorithm-system co-design),这两个目标可以被同时优化,而不是二选一。

接受率(Acceptance Rate) 是衡量投机解码效率的核心指标,定义为草稿模型生成的 token 中被目标模型验证通过的比例。它的数学期望决定了单位验证步骤能产出多少有效 token,通常用「平均接受长度(Average Acceptance Length)」来度量——即在一次目标模型前向中被成功采纳的 token 数量。若草稿完全正确,理论上单次验证可一次接纳整个草稿块;一旦某位置被拒绝,该位置之后的所有草稿 token 都会被丢弃,因为自回归生成依赖前序 token 的准确性。因此接受率对加速比的影响是非线性的:它既决定有效产出,也影响验证阶段的浪费程度。这正是文章强调「草稿质量与延迟博弈」的原因。
墙钟时间(Wall-clock Time) 指从请求发出到完整响应返回所经历的真实物理时间,区别于仅统计计算量的 FLOPs 或理论延迟。在推理加速场景中,墙钟时间是用户真正感知的指标,也是 Jetspec++ 所有优化最终兑现的目标。
JetSpec++ 的三大组件
JetSpec++的出发点很直接:保留一个强学习型草稿模型,但让它几乎不占用额外的墙钟时间(wall-clock cost)。为此,作者设计了三个互相咬合的机制。
块内自修正(Intra-block Self Refinement)
传统并行草稿一次前向就产出一个token块,块内各位置彼此独立预测,缺乏纠错机会。JetSpec++训练草稿模型在单个token块内部迭代地修正自己的并行预测,让草稿模型用类似“多看几遍再定稿”的方式提升块内质量。这直接作用于接受率——预测更准,被目标模型接受的token就更多。
块间前瞻草稿(Inter-block Foresight Drafting)
在一个token块还未被验证之前,就开始生成下一个块。这一步的意义在于把草稿生成从“串行等待验证结果”的链条中解放出来,让草稿模型持续保持忙碌,从而在时间轴上把草稿成本摊薄。
流水线化的草稿与验证(Pipelined Drafting and Verification)
真正让草稿成本趋近于零的,是把草稿生成与目标模型验证两个阶段重叠起来执行。由于验证本身需要时间,草稿阶段可以“藏”在这段时间窗口内完成,使得草稿的边际墙钟成本几乎可以忽略。三个组件叠加的效果,就是让强草稿模型的代价被系统调度掩盖,同时保住高接受率。
输出分布无损(Lossless Speculative Decoding) 指投机解码在加速的同时,保证最终生成的 token 序列与目标模型独立自回归采样的结果在概率分布上完全一致。传统投机解码通过「拒绝采样(Rejection Sampling)」或「修正采样」实现这一点:验证阶段并非简单接受或拒绝草稿 token,而是根据草稿与目标模型概率的比值决定是否接受,并在拒绝时从修正后的分布中重新采样。这样即使草稿模型质量有限,输出分布也不会被扭曲。JetSpec++ 声称「完整保留目标模型的输出分布」,意味着其所有加速都建立在严格无损的前提下,不会引入生成质量或多样性的偏移。
实测性能:最高7.45倍加速
论文给出的对比数据相当有说服力。与当前最先进的投机解码方法相比,JetSpec++在墙钟时间上实现了相对自回归(AR)解码最高7.45倍的加速,相对DSpark则有1.54倍的提升。
在硬件侧,JetSpec++在GB200上针对单次请求可达最高1,361 tokens/秒的生成速度。在七个基准测试上,平均接受长度达到8.94——这个数字说明草稿块中绝大多数token都被目标模型采纳,是接受率层面的直接证据。更关键的是,JetSpec++在加速的同时完整保留了目标模型的输出分布,没有为了快而改变模型的生成行为。
DSpark 是投机解码领域的一个代表性基线方法,属于 Draft 与目标模型协同优化的路线之一。在 JetSpec++ 的对比中,DSpark 作为当前最先进(SOTA)方法被用作参照,JetSpec++ 相对其取得 1.54 倍墙钟加速,说明其增益不仅来自经典投机解码的框架红利,更来自算法与系统协同设计带来的额外空间。
GB200 是 NVIDIA 面向大规模 AI 推理与训练的下一代 GPU 平台,具备更高显存带宽和更密集的计算单元。JetSpec++ 在 GB200 上单请求达到 1361 tokens/秒,说明其优化在高性能硬件上仍能充分释放。
为什么这件事值得关注
投机解码的工程价值在于“无损加速”,但其收益高度依赖草稿模型的性价比。JetSpec++的思路给出了一种可复用的范式:不牺牲草稿质量,而是通过调度把草稿成本藏起来。块内自修正解决质量,块间前瞻与流水线解决成本,三者分别对应算法层与系统层的优化目标。
从落地角度看,官方已在GitHub开源了代码与模型(hao-ai-lab/JetSpec),这降低了复现与二次开发的门槛。对于需要在有限GPU资源下提升推理吞吐的团队,这类“算法+系统”协同的方案,可能比单纯换更大的草稿模型更具性价比。
提一嘴,论文中的加速比与接受长度均来自特定基准与硬件配置,实际部署中的收益会随任务类型、batch大小和目标模型规模变化。开源仓库的出现,也让社区有机会在更多真实负载下验证这些数字的普适性。
相关推荐

零成本搭建AI超级员工系统:智能体自动工作流全解析
深度拆解B站演示的AI超级员工系统:Agent智能体编排、数字人口播、地图与企业获客、24小时智能客服及法务模块全覆盖。分析零成本开户背后的商业逻辑与合规风险,帮助创业者判断这套AI数字员工系统的真实投产比。

Chatbot与AI Agent的本质区别:从对话到执行的跨越
Chatbot和AI Agent有什么区别?本文基于Learn Tech频道的MCP系列讲解,用订机票、笔记摘要等实例说明:Chatbot只给答案,Agent通过思考-行动-观察循环真正完成任务,并拆解模型、工具、记忆、目标四大部件及MCP的桥梁作用,同时讨论Agent的适用边界与权限风险。

免费GitHub仓库:342小时AI课程,从数学到MCP服务器
一个免费GitHub仓库提供342小时AI课程,包含523节课、20个阶段,覆盖数学基础到Agent构建和MCP服务器。支持目标驱动学习,每节课产出可留存的prompt、skill或agent,已有近10万人开始学习。