推测解码的接受修正采样常被简化理解为“草稿提出、目标确认”,但决定它能否在不改变目标模型输出分布的前提下加速的关键,在于接受规则与拒绝后的修正采样是否严密对应。如果只按候选词元是否“看起来合理”来决定去留,得到的不再是目标模型原本会生成的序列,而是一种混合分布。因此,接受修正采样不只是验证环节的附属步骤,而是保证推测解码正确性的核心算法约束。
标准随机采样条件下,候选词元被接受的概率取目标模型概率与草稿模型概率之比,并截断到不超过 1。这一比值规则并非随意设定的阈值,而是为了让被接受序列的联合分布尽可能跟踪目标模型自身的采样路径。当草稿模型在某个位置给出的概率与目标模型接近时,候选被接受的可能性更高;当草稿模型明显偏离时,候选被快速拒绝,避免错误前缀继续累积。它的本质是用草稿模型较便宜的概率近似,换取更长的可接受前缀。
更关键的细节出现在首次拒绝之后。简单做法可能是丢弃该候选并让目标模型按自身分布重新采样,但这会破坏整体分布:目标模型在验证阶段已经看到候选序列,单纯重新采样并不能等价于从头独立生成。修正采样从目标概率中扣除草稿概率对应的部分,再对剩余质量重新归一化得到修正分布,并从该修正分布中采样。这一步把已被拒绝的候选质量从采样空间中剥离,使最终得到的词元仍携带正确的条件分布。修正采样的必要性正在于此:接受与拒绝并非二值选择,拒绝位置也需要经过约束的补充采样。
贪心解码对应的是确定性校验:只有当草稿候选与目标模型在该位置的最可能词元一致时才接受。与随机验证相比,贪心方式没有修正采样那样的分布校正空间,接受条件更为刚性。两者不能互换。草稿模型输出的答案即使与目标模型多数时候一致,也必须经过与采样设置匹配的验证,否则高接受率只是表面现象,不能证明输出分布保持一致。
因此,在评估推测解码时不应只盯着接受率。接受率反映草稿模型与目标模型的近似程度,但修正采样一旦与解码方式不匹配,再高的接受率也会带来分布漂移。稳妥的做法是在测量延迟与吞吐量的同时,用与解码方式一致的验证程序检查输出统计特性,确认接受修正采样确实维持了目标模型原本的行为。
文章版权归作者所有,未经允许请勿转载。
本文链接:https://www.chatcpt.com.cn/thread/speculative-sampling-verification/
参与讨论
暂无评论,快来发表你的观点吧!