ELAI S.r.l.

推测解码:为何拒绝修正不能直接从目标分布重采样

通过概率分布、反例、200,000 次试验和成本模型,解析推测解码何时保持概率、何时真正加速。

推测解码:为何拒绝修正不能直接从目标分布重采样

技术分析 · AI 推理 · 2026 年 9 月 24 日

摘要:必须区分的两种保证

推测解码用低成本模型提出候选 token,再由目标模型批量验证。关键问题有两个:什么修正能保持目标分布,提前计算又在何种条件下真正节省时间?本文给出完整的分类分布实例、朴素修正的反例以及成本模型。结论明确:采样的精确性与加速是不同性质,依赖不同假设。

本文是教学性分析:用 Python 执行三个符号上的精确计算、200,000 次蒙特卡洛试验和参数扫描。没有测量 LLM、GPU 或 EL-AI 服务。所需基础为初等概率、有限求和以及自回归生成概念,不要求了解 Transformer 训练过程。

1. 概率契约

固定一个已确认前缀及有限词表 V。p(x) 是目标模型赋予下一个 token 的概率,q(x) 是草稿模型对应的概率。两者非负且总和为一,必须是经过温度、掩码和截断之后实际用于采样的分布。若在接受比中直接使用未归一化 logits,问题就变了。同一个 token 在两个词表中必须表示同一个事件。

保持 p 是指在理想重复试验中,每个事件保留原来的概率。这不等于相同随机种子必然产生相同字符串,因为实现可能以不同顺序消耗随机数。它也不提高事实真实性:若目标模型对错误陈述赋予概率,精确采样器仍会保留这种可能。保证针对统计分布,而非语义正确性。

2. 写代码之前,先核算概率质量

基本规则由 Leviathan、Kalman 和 Matias 在 ICML 2023 论文第 2–3 节及附录 A.1 中提出并证明:从 q 抽取 x,以 min(1,p(x)/q(x)) 的概率接受;拒绝时,从 p−q 的正部归一化分布采样。下面用为本文选取的数值重新核算这一过程。

p = (0.50, 0.30, 0.20) q = (0.20, 0.50, 0.30) a(x) = min(1, p(x)/q(x)) a = (1, 0.60, 2/3)

将三个符号记为 A、B、C。A 的提议概率为 20%,且总被接受,因此贡献 0.20。B 的提议概率为 0.50,但只有 60% 的提议被接受,贡献 0.30。C 的贡献为 0.30×2/3=0.20。接受质量总计 0.70,还缺少 0.30 才能构成完整分布;相对于目标分布,全部缺口都在 A 上。

m(x) = q(x)a(x) = min(p(x),q(x)) A = Σx m(x) = 0.70; Z = 1−A = 0.30 r(x) = max(p(x)−q(x),0)/Z r = (1, 0, 0) P(output=x) = m(x)+Zr(x) = p(x)

公式中的 A 表示总接受率,而作为标签的 A 表示第一个符号,二者需区分。Z 是拒绝概率,r 是给定拒绝事件的条件分布。不能直接相加 m+r:m 是未归一化质量,r 已经总和为一,必须将 r 乘以 Z。这个简单检查能防止演示实现中的常见错误。

两个边界情形能说明构造的含义。若 p=q,则 Z=0,所有提议均被接受,此时不应计算残差分支,以免出现 0/0。若 q 对某事件赋零概率,而 p 允许该事件,它不会被提议,却可通过残差出现。真正从 q 抽出的 token 不需要除以 q=0。反之,若仅在修正之后施加不兼容掩码,就可能删去概率质量并破坏契约。

3. 反例:“拒绝后直接从 p 重采样”

把目标模型作为后备看起来合理,但在这条特定接受规则下却是错误的:接受分支已经提供了 B 和 C 所需的全部质量。拒绝后再从 p 采样,会额外增加它们的概率,而 A 仍不足。最终分布变为 (0.35, 0.39, 0.26)。一句看似合理的话无法揭示这种扭曲,三个事件上的概率核算却能。

wrong(x) = min(p(x),q(x)) + Zp(x) wrong−p = (−0.15, +0.09, +0.06) TV(wrong,p) = ½Σx |wrong(x)−p(x)| = 0.15

总变差距离 TV 衡量某一事件集合上的最大概率差。此处取集合 {A} 即可:0.50 与 0.35 相差 0.15,这不是舍入误差。即使样本数无限增大,错误方法也只会收敛到错误分布。不检查极限分布而一味扩大测试,只会更精确地得到有偏答案。

4. 可复现实验与误差解读

我们使用 Python 3.14.0、random.Random 和种子 20260923,执行了 200,000 次试验。每次试验中,两种方法共享提议和接受决定;拒绝后分别使用各自的恢复分布。这使对比受到控制,但两种方法的计数并非相互独立。表中给出频率,而不是语言质量估计;实验不涉及语料库。

符号目标正确方法实测错误方法极限错误方法实测
A0.50.500090.350.35005
B0.30.298440.390.38831
C0.20.201470.260.26164

本次运行中,正确频率与目标之差小于 0.0016。对 A,频率的边际标准误约为 √(0.5×0.5/200000)=0.00112,这一量级有助于理解波动,但不能把一次运行变成数学证明。脚本还在数值容差内检查精确质量恒等式。证明负责论证方法,蒙特卡洛负责发现代码错误。

这段代码直接计算两种分布,无需模拟。附件包含完整采样器、检查和绘图程序。实验均为教学用途,并在 AI 辅助下完成;不声称经过人工科学审稿或企业验证。

p = [.5, .3, .2]
q = [.2, .5, .3]
m = [min(x,y) for x,y in zip(p,q)]
z = 1-sum(m)
r = [max(x-y,0)/z for x,y in zip(p,q)]
print([a+z*b for a,b in zip(m,r)])
print([a+z*b for a,b in zip(m,p)])

5. 从单个 token 到块:前缀也是状态

长度为 γ 的草稿包含自回归提议,每个概率都依赖前面的 token。目标模型按因果关系评估草稿位置,只保留已接受的前缀。第一次拒绝之后,后续提议依赖一个不会出现在最终文本中的 token;不重新计算就复用它们,相当于使用错误前缀下的条件分布。缓存同样必须丢弃未确认尾部。

并行的是对已提议序列的概率评估,自回归依赖并未消失。若全部提议都被接受,再添加一个来自目标模型的 token;否则由残差产生修正 token。因此,除结束标记等提前停止情况外,每轮输出 1 到 γ+1 个 token。把整个草稿都计为有效输出,会人为抬高吞吐量。

6. 何时值得延长草稿

现在单独考虑成本模型。假设接受事件独立、概率恒为 α,没有提前停止,且验证一个块的成本等于目标模型普通一步的成本 T。每个草稿 token 成本为 cT。这些假设用于分离权衡关系,并非本机测量。至少保留 i 个连续提议的概率为 α 的 i 次幂。对尾概率求和,即得每轮输出 token 数的期望 E。

Eγ = 1 + α + α² + … + α^γ Sγ = Eγ / (1+cγ) Eγ+1 = Eγ + α^(γ+1) Sγ+1 > Sγ ⇔ α^(γ+1)(1+cγ) > cEγ

最后一个不等式来自对两个加速比的正分母交叉相乘。左侧对应新增尝试的边际贡献,右侧对应取得它的代价。当 α<1 时,边际收益按几何级数下降,而草稿一步的成本仍为正。因此,没有普遍理由把 γ 设为最大值。在 α=0 的极限下,草稿不产生有效 token,却仍有成本。

执行的扫描取 γ=1…16,α∈{0.3,0.7,0.9},c∈{0.05,0.20}。在 α=0.7、c=0.05 时,网格最大值出现在 γ=6:E=3.058819,S≈2.353。草稿成本增加四倍后,最大值移动至 γ=3,S≈1.583。同样的概率一致性不意味着同样的时间收益。这些是模型及网格内的最大值,并非经认证的服务器最优配置。

上:目标与错误修正的精确分布。下:已执行扫描中的理论加速比,不是硬件测量。实线 c=0.05,虚线 c=0.20。
上:目标与错误修正的精确分布。下:已执行扫描中的理论加速比,不是硬件测量。实线 c=0.05,虚线 c=0.20。

7. 简化模型何时不再足够

若验证 γ 个 token 的成本为 g(γ)T,分母就应改为 g(γ)+cγ,再加归一化开销。例如 α=0.7、γ=6、c=0.05 时,分子仍为 3.058819;但若 g=3,比值降至约 0.927。此时采样依然精确,方法却更慢。每轮至少输出一个 token 约束的是串行调用次数,而不是调用耗时。

α 恒定同样是简化假设。专有名词、公式或语言切换都可能改变模型间的一致性。一般而言,E 等于一加上“前 i 个 token 全被接受”的联合概率之和;用平均接受率的幂替换这些概率,会忽略依赖关系和前缀选择。平均接受率相同的两个负载,接受长度分布可能不同。只记录 α 会掩盖这种差异。

8. 从研究到必要的测量

2023 年 ICML 工作的实验之一是在 TPU-v4、批量为一的条件下,以较小草稿模型加速 T5-XXL 的翻译和摘要任务。这是历史参考,不是对当前硬件的预测。对于近期方向,我们阅读了 Learning to Draft 的 2026 年 3 月 2 日 arXiv v1 方法和结果:它提出针对时间优化草稿深度及验证规模的策略,而不只追求接受长度。

该研究使用两个经 PPO 训练的策略,并在多个模型和任务上评估;与网格搜索的比较尤其有助于区分自适应带来的收益和单纯选择更佳参数的收益。本文没有复现其基准,也不将其结论推广到所有系统。结果表还包含速度更高但接受长度更短的情形,提醒我们不仅要测量分子,也要测量分母。

多语言服务应分别测试意大利语、英语、中文和西班牙语,同时保持请求和长度可比。测量首 token 时间、token 间延迟、总时间、总体吞吐量、内存及负载下的百分位数。批量为一时的提升,可能在并发请求下消失,因为草稿会占用其他用户原本可用的资源。报告模型、版本、精度、采样、硬件和提示分布,才能让比较具有可解释性。

对 EL-AI 而言,这是一种可考虑的推理评估标准,并非已实现功能的公告。技术结论比速度承诺更有用:先验证修正保留了预期分布,再寻找能降低真实负载成本的工作点。两项验证需要不同工具,不能互相替代。

参考文献与可复现材料

Leviathan, Kalman, Matias (2023), Fast Inference from Transformers via Speculative Decoding, ICML / PMLR 202, 19274–19286. Learning to Draft: Adaptive Speculative Decoding with Reinforcement Learning, arXiv:2603.01639v1 (2026).

文献查阅日期为 2026 年 9 月 24 日;第二项引用明确指向实际阅读的预印本版本。下载代码、结果与说明。JSON 结果。原创封面由 ImageGen 生成,仅作示意,不代表 EL-AI 的真实设施。