推测解码
EAGLE-3
Yuhui Li et al., EAGLE-3: Scaling up Inference Acceleration of Large Language Models via Training-Time Test, NeurIPS 2025.
这一篇的定位明显和 PagedAttention、DistServe、Mooncake 不太一样。它们关注的是 serving system,而这一篇在优化 decode 阶段自回归生成的算法。
speculative decoding
首先介绍下 speculative decoding 的基本原理。大模型在 decode 阶段一个一个地生成 token,每次都要执行一遍 forward pass。虽然读取了大量的模型权重,但真正执行的计算相当有限。speculative decoding 把慢但准确的大模型称为 target model,另训一个快但不一定准确的小模型 draft model。在 target model 进行 decode 时,draft model 先快速预测接下来的几个 tokens(drafting),然后 target model 可以在一次 forward pass 中验证这些 tokens(verification),接受匹配的前缀,从分歧处继续生成。
如果 target model 连续接受了多个 tokens,就相当于减少了多次昂贵的串行大模型调用。如果验证机制正确 + draft model 的准确率高,speculative decoding 可以实现 lossless acceleration:即,在完全不改变 target model 的输出分布的情况下实现加速。
EAGLEs
EAGLE 系列都是在做 speculative decoding 的。EAGLE-1 用 target model 的 hidden features 训 draft model;draft model 预测下一步的 feature,再通过 target model 的 LM head 转成 token probs。EAGLE-2 设计了一个 dynamic draft tree,动态选择待验证的分支;对于比较确定的预测,可以延伸得更深,否则探索更多分支。
EAGLE-3 采取了 EAGLE-2 的机制,它优化的主要是 EAGLE-1 的训练。所以我们先来看看 EAGLE-1 有什么问题。
EAGLE-1 在训练的时候采用的是 teacher forcing。目标函数是
EAGLE-3 觉得这实际上是一种多此一举。既然我们最终关注的是 token,那为什么要把 feature 也 include 进来呢?draft model 完全可以有与 target model 不同的 features,但通过 LM head 得到相近的 token distribution。强行让小模型拟合大模型的 feature 分布很可能会削减它的表达能力。
所以 EAGLE-3 把目标函数设置成
论文发现比起 EAGLE-1,EAGLE-3 展示出了明显的 scaling up。