“绝对无偏”和“残差采样”是投机解码在数学上保证“速度变快,但模型智商完全不降”的核心机制。
1. 什么是“绝对无偏”?
“绝对无偏”(Strictly Unbiased / Exact Distribution Matching)指的是:
无论 Draft 小模型猜得有多烂、命中率有多低,投机解码最终生成的文本概率分布,与“直接纯用 Target 大模型逐字生成”在数学上完全一模一样。
它的工程意义:
- 无损加速:速度提升了 2~3 倍,但模型的生成质量、准确率、创意度(Temperature)完全没有受到任何损耗。
- 业务无感:在基准测试(如 MMLU、GSM8K)或实际业务中,开启投机解码后的输出结果与不开投机解码没有任何统计学差异。
2. 为什么要用“残差采样”?
如果不用残差采样,直接“拒绝后重算”,就会打破这种无偏性。
假设不用残差采样会发生什么?
假设 Draft 模型猜了一个 TokenAAA(概率q(A)=0.8q(A)=0.8q(A)=0.8),但 Target 大模型觉得AAA不太行(概率p(A)=0.2p(A)=0.2p(A)=0.2),于是拒绝了AAA。
如果被拒绝后,你直接让 Target 大模型按照它自己的原始分布ppp重新随机抽一次:
- 这一次重抽,Target 依然有 20% 的概率再次抽中AAA。
- 但加上前面 Draft 模型推荐AAA并被接受的概率,AAA被选中的总概率就会远高于Target 大模型原本给它的 20%。
- 后果:Draft 模型偏好的 Token 被严重“放大”了,模型生成的文本分布被扭曲,输出了 Draft 风格的错误内容。
残差采样(Residual Sampling)是如何救场的?
残差采样的逻辑是:“把 Draft 之前占领的概率额度扣除掉,只在 Target 认为‘被 Draft 低估’的 Token 范围里抽奖。”
残差采样的分布计算公式为:
p′(x)=max(0,p(x)−q(x))∑ymax(0,p(y)−q(y))p'(x) = \frac{\max(0, p(x) - q(x))}{\sum_{y} \max(0, p(y) - q(y))}p′(x)=∑ymax(0,p(y)−q(y))max(0,p(x)−q(x))
- 彻底清零高估项:对于被 Draft 过度高估的 Token(p<qp < qp<q),max(0,p−q)\max(0, p - q)max(0,p−q)会直接将其概率置为0。这保证了被拒绝的垃圾提案绝不可能在第二轮重采中“死灰复活”。
- 精确补偿缺口:对于被 Draft 忽略或低估的正确 Token(p>qp > qp>q),公式准确保留了它的概率缺口(p−q)(p - q)(p−q)。
严密的数学等式(全概率公式):
系统最终产出 Tokenxxx的总概率为:
总概率 P(x)=P(接受 x)⏟min(q(x),p(x))+P(拒绝)×p′(x)⏟max(0,p(x)−q(x))\text{总概率 } P(x) = \underbrace{P(\text{接受 } x)}_{\min(q(x), p(x))} + \underbrace{P(\text{拒绝}) \times p'(x)}_{\max(0, p(x) - q(x))}总概率P(x)=min(q(x),p(x))P(接受x)+max(0,p(x)−q(x))P(拒绝)×p′(x)
将两项相加,利用恒等式min(a,b)+max(0,a−b)=a\min(a,b) + \max(0, a-b) = amin(a,b)+max(0,a−b)=a:
P(x)=p(x)P(x) = p(x)P(x)=p(x)
结论:
残差采样就是为了在 Draft 模型“猜错被拒”后,对采样概率进行精确的数学补偿,使得最终总输出概率严格等于 Target 大模型的真实概率p(x)p(x)p(x),从而实现了绝对无偏。