【Transformer 与注意力机制】50|Speculative Decoding:用小模型加速大模型

💡 原文中文,约13800字,阅读约需33分钟。
📝

内容提要

推测解码通过草稿模型生成候选token,目标模型并行验证,以接受-拒绝机制保证输出分布与直接采样等价,从而加速自回归推理。其加速效果取决于接受率、草稿模型成本及批大小,批增大或模型变大时收益下降。Medusa、EAGLE、MTP是三种草稿来源方案,各有优劣。

🔎

延伸解读

投机解码的收益边界:何时该关掉它

投机解码并非总是加速。文章引用的实测显示,随着批大小增大,系统从内存受限转向算力受限,验证阶段的额外计算不再免费,加速比会下降。例如,Llama-3.1-8B在batch=1时加速1.73倍,batch=128时降至1.21倍;宽树验证在batch=64时甚至比不开还慢。因此,工程上需要根据负载动态决定是否启用,vLLM的按批大小阈值关闭参数只是粗略近似。

无损保证的代价:高温采样下的取舍

严格拒绝采样保证输出分布与目标模型完全一致,但高温或高top-p时,目标分布更平,接受率下降,收益变薄。Medusa提出的typical acceptance方案牺牲严格等价性,换取高温下更高的接受率和更好的创意表现。生产环境若需bit-exact复现,必须确认引擎使用精确拒绝采样而非typical acceptance,两者在API层面看似相同,但严格性不同。

草稿模型的选择:三种路线各有短板

Medusa、EAGLE、MTP代表三种草稿来源:Medusa用额外头独立预测,训练简单但忽略依赖;EAGLE在特征层自回归,更贴近生成但需与目标模型严格匹配;MTP在预训练时内嵌,接受率高但无法事后添加。选择时需权衡训练成本、部署灵活性和接受率,且目标模型微调后可能需要重训草稿头,长期维护成本尚无公开核算。

Q&A

什么是推测解码(Speculative Decoding)?它如何加速大模型推理?

推测解码是一种加速自回归推理的技术。它使用一个较小的草稿模型快速生成多个候选token,然后由目标模型并行验证这些候选。通过接受-拒绝机制,最终输出的token分布与直接使用目标模型采样完全一致,从而在不改变输出质量的前提下减少串行解码步骤,提升推理速度。

推测解码为什么能保证输出分布与直接采样等价?

推测解码通过接受-拒绝机制保证等价性。对于每个草稿token,以概率min(1, p(x)/q(x))接受,其中p是目标分布,q是草稿分布。如果拒绝,则从残差分布norm(max(0, p-q))中重新采样。数学证明表明,最终输出token的概率恰好等于p(y),因此无论草稿模型如何,输出分布都与直接采样完全一致。

推测解码的加速效果受哪些因素影响?

加速效果主要受三个因素影响:接受率α(草稿分布与目标分布的匹配程度)、草稿模型的成本系数c(草稿模型单步耗时与目标模型的比值)、以及草稿长度K。加速比公式为E[speedup] = (1-α^(K+1))/((1-α)(Kc+1))。α越高、c越小、K适中时加速效果越好;K过大或α过低可能导致收益下降甚至负加速。

推测解码在什么情况下会失效或收益下降?

当batch size增大时,系统从memory-bound转向compute-bound,验证阶段的算力成本不再免费,加速比会下降。模型规模越大,下降越明显。此外,宽树形验证(如k=21)在batch较大时可能比不开启推测解码更慢。显存约束也会影响,独立草稿模型会占用额外显存,挤占KV Cache空间。

Medusa、EAGLE和MTP三种草稿模型方案有什么区别?

Medusa在目标模型最后一层隐藏状态上添加多个额外的LM头,各头独立预测未来token,不建模token间依赖,训练简单但接受率有限。EAGLE使用一个小型自回归模块在特征层进行链式预测,更贴近真实生成过程,但需要与目标模型checkpoint严格匹配。MTP在预训练阶段内嵌多token预测模块,模块间串联保持因果链,接受率高但只能从零训练获得。

推测解码是否总能加速?为什么有时比不开启更慢?

不一定。当batch size增大到系统进入compute-bound时,验证阶段的算力成本不再免费,加速比下降。宽树形验证(如k=21)在batch=64时可能跌破1倍,即比不开启推测解码更慢。此外,如果接受率过低,草稿模型的开销可能抵消收益。因此,推测解码并非总是有益,需要根据具体场景评估。

推测解码的接受率α是如何定义的?它受哪些因素影响?

接受率α定义为α = Σ_x min(p(x), q(x)),衡量草稿分布与目标分布的重合程度。它受三个因素影响:草稿模型与目标模型的分布对齐程度(同家族、同tokenizer的小模型对齐更好)、任务的分布形状(代码补全等尖锐分布接受率高,创意写作等平坦分布接受率低)、采样温度(温度越高,分布越平,接受率下降)。

推测解码与直接用小模型生成有何本质区别?

推测解码中,草稿模型只负责提出候选token,最终输出分布由目标模型的接受-拒绝规则严格决定,因此输出分布与直接使用目标模型采样完全一致。而直接用小模型生成会改变输出分布,因为小模型无法完全模拟目标模型的行为。推测解码保证了无损加速,而小模型替代会牺牲质量。

🏷️

标签

➡️

继续阅读