
原文作者:Jinze Li, Yixing Xu, Guanchen Li, Xuanwu Yin, Dong Li, Emad Barsoum

推测解码已成为加速大语言模型(LLM)推理的一种高效方法,但现有方法严重受限于严格的“精确匹配”验证规则,这会丢弃大量语义上合理的续写结果。此外,现有基于训练的宽松解码方法在分布外(OOD)任务上通常会出现显著的性能下降。
在我们最近的论文Training-Free Loosely Speculative Decoding: Accepting Semantically Correct Drafts Beyond Exact Match [1] 中,我们提出了FLy,一种无需额外训练即可放宽这一严格标准的新方法。通过利用目标模型内在的自我纠错行为,FLy能够判断草稿与目标不匹配时是否仍然在语义上是有效的。在这篇博客中,我们将介绍FLy的动机、其双层验证机制,以及它如何在基于ROCm软件栈的AMD GPU上实现无需训练的最先进性能。FLy的GitHub代码 [2]也已提供。
什么是推测解码(SPD)?
大语言模型通常以自回归方式逐token生成文本,这会带来较高的推理延迟。推测解码(SPD)通过引入一个轻量级的草稿模型来顺序生成多个候选token,从而在不损失准确性的前提下缓解这一瓶颈。随后,一个更大的目标模型并行地验证这些草稿token,仅接受与其自身预测一致的token。当接受率较高时,每个token的平均时间成本会下降,从而实现显著加速。
动机:精确匹配瓶颈与OOD性能退化
标准SPD的核心限制在于其“精确匹配”规则:只有当草稿token与目标模型生成完全一致时才会被接受。这种严格要求会拒绝大量合理的续写,即使它们在语义上是对齐且有效的,从而浪费计算资源并限制加速潜力。
为了解决这一问题,近期一些工作提出了宽松版本的SPD,通过训练一个辅助分类器来判断草稿token在上下文中是否有效。然而,这需要精心构建的训练数据,并带来较高的标注成本。更关键的是,这类监督分类器往往难以在不同领域或任务之间泛化,在分布外(OOD)场景中表现脆弱。
核心洞察:LLM的自我纠错行为
为了在不依赖脆弱训练验证器的情况下克服这些问题,FLy完全采用无训练方式。我们的核心观察是:当LLM以真正错误的token为条件时,往往会表现出自我纠错行为;而当面对仅措辞不同但语义等价的替代时,则不会发生明显偏离。基于这一性质,FLy利用目标模型自身的行为来区分有害的不匹配和语义等价的续写。
ROCm:驱动FLy高效加速
由于FLy无需额外前向计算,并且可以直接从已有logits中计算每个token的熵,其计算开销可以忽略不计。我们的所有实验均在AMD GPU上完成。借助ROCm软件栈(其设计旨在最大化内存带宽利用率和细粒度并行性),FLy能够以极低延迟开销实现大规模并行token验证。因此,FLy是一种高效的即插即用方案,可在ROCm系统上与任意草稿-目标模型组合无缝协作,并无需重新调参即可达到生产级性能。
Fly:用于语义验证的双层机制

图1:FLy方法概览。(1) 当草稿token与目标token不一致时,我们不像以往的SPD方法那样立即拒绝,而是通过双层机制判断该不匹配在语义上是否有效,仅拒绝真正无效的情况。(2) 熵门控(entropy gate)会在目标预测较为确定(h < θ)时直接拒绝,对于存在歧义的不匹配则进行延迟处理。(3) 随后,引入一个token级的延迟窗口(W = 6),用于监测后续是否持续发生偏离。(4) 最终生成结果表明,FLy能够接受更多语义上有效的续写,而标准SPD则会在首次出现不匹配时直接拒绝。
如图1所示,为了准确识别语义上有效的不匹配,FLy引入了一种精细的双层机制:
熵级门控(Entropy-level Gate):这是一个轻量级的逐token不确定性检测器,用于判断当前token是否存在多个合理候选(高熵),还是接近确定性(低熵,例如数学计算)。如果目标模型非常确定,则立即拒绝该不匹配;如果存在歧义,则延迟决策。
Token级延迟窗口(Token-level Deferred Window):当触发延迟机制时,FLy会在接下来的若干token(例如6个)内继续观察。在该窗口内,不匹配会被暂时接受。如果随后再次出现不匹配,则说明目标模型正在纠正一个真实错误,此时会回溯性地拒绝初始token;如果没有进一步偏离,则该token被认为是语义上有效的续写并被保留。
多级加速(Multi-Level Acceleration, MLA)
由于FLy接受了更多语义正确的不匹配,平均接受token数量显著增加。因此,草稿模型每轮需要生成更多token,导致草稿阶段成为新的延迟瓶颈。为此,我们提出了多级加速(MLA)方案,不仅加速目标模型,也加速草稿模型本身。通过引入类似prompt lookup decoding(PLD)的无参数方法,MLA降低了草稿端的开销,在不引入领域偏置的情况下进一步提升端到端效率。
实验结果:AMD硬件上的加速比与精度保持

表1:在分布外(OOD)数据集上的加速比以及平均接受token数(τ)。L31和L33分别表示Llama-3.1-Instruct和Llama-3.3-Instruct。Mean表示这些数据集上的平均性能。我们使用加粗字体表示最佳结果。✓表示基于训练的方法,而✗表示无需训练的方法。
如表1所示,FLy表现出卓越性能。对于Llama-3.1-70B-Instruct模型,在temperature=0(=1)时,FLy实现了平均2.74×(2.62×)的加速,优于现有无训练基线。在Llama-3.3模型上,FLy分别以1.62×(1.77×)超过了基于训练的最先进方法EAGLE-3。这一优势随着模型规模增大而进一步放大。在405B模型上,FLy达到4.80×(5.21×)的平均加速,因为更高的单token延迟意味着接受草稿token可以节省更多目标模型调用时间。

图2:精度保持结果。目标模型的性能被归一化为100,并使用恢复率来量化性能保留的程度。
由于FLy属于宽松SPD方法,加速后的目标模型输出不会与原始模型完全一致。因此,我们报告应用FLy后的精度保持情况。如图2所示,我们将原始目标模型性能归一化为100%,并使用恢复率来衡量性能保留程度。原始未归一化分数见论文附录B。在不同数据集和模型规模下,FLy始终保持超过99%的恢复率,并且与基于训练的宽松SPD方法JudgeDecoding表现相当。值得注意的是,JudgeDecoding同样对训练与测试分布不匹配较为敏感:当其训练数据中移除代码样本后,在HumanEval上的性能从99.4%显著下降到92.3%,进一步说明了分布偏移下的性能退化问题。
总结
本文介绍了FLy,一种无需训练的算法,它用宽松验证机制替代了标准SPD中严格的精确匹配规则,从而能够接受语义正确的token。通过熵级门控与token级延迟窗口,FLy利用目标模型的自我纠错行为区分真实错误与合理替代。结合多级加速技术,FLy在基于AMD ROCm的GPU上实现了最先进的加速效果,同时保持超过99%的精度。
参考链接
[1] Training-Free Loosely Speculative Decoding: Accepting Semantically Correct Drafts Beyond Exact Match: https://arxiv.org/abs/2511.22972
[2] GitHub代码: https://github.com/AMD-AGI/FLy