系列:推测解码手记

EAGLE-3 深度解析:扔掉 feature 约束,让草稿模型第一次"吃数据"变快

1. 为什么要单独看 EAGLE-3

前面 Ep1–Ep5 把推测采样(SD)的轮廓、自回归草稿的天花板、以及 DFlash / DSpark 两条新路线都讲过了。但有一个名字反复出现——EAGLE——它其实是整个”特征层草稿”流派的开山祖,DFlash/DSpark 在对比时都以它为基线(“比 EAGLE-3 快约 2.5×”)。

EAGLE 系列三代:

EAGLE-3 最了不起的地方不是”又快了一点”,而是它证明了草稿模型也能像大模型一样从更多数据里持续受益——这是投机采样领域此前从没有过的现象。

2. 复习:EAGLE 是怎么猜得更准的

标准 SD 用一个小 LLM 当草稿,小模型和大模型分布差距大,接受率 α 低(约 1.6–1.9×)。

EAGLE-1 的洞察是:与其用独立小模型去猜 token,不如直接复用目标模型的中间特征。它在 feature 层做自回归——把目标模型顶层 feature 和”前移一步的 token”拼起来,喂给一个只有 1 层的草稿 Decoder,预测下一个 feature,再用目标模型的 LM head 转成 token。这样做到了约 3–4×。

EAGLE-2 发现草稿模型的置信度与实际接受率高度校准,于是动态决定草稿树形状(简单位置少分叉、难位置多分叉),把加速比推到约 4.2×。

3. feature 预测约束:为什么是 scaling 枷锁

EAGLE-1/2 的草稿模型训练时受两个 loss 约束:

作者尝试把训练数据翻 8 倍时,发现加速比几乎不涨。原因在 feature loss:

草稿模型只有 1 层 Decoder,容量极小。feature loss 逼着它把大量容量花在”几何拟合”上——把输出向量在空间里摆得接近目标模型的 feature——而不是花在”怎么把 token 预测最准”这个最终目标上。

换句话说,feature 预测是个过强的正则:数据少时帮它泛化,数据多时反而成了枷锁。更糟的是,feature 约束还把输入端也锁死成”只能用顶层特征”(因为顶层 feature 和 next-token logits 一一对应),信息高度特化。

图 1:草稿模型训练数据量 vs 加速比(LLaMA-Instruct 3.1 8B, MT-bench,示意) 3.5 4.5 5.5 6.5 1× 2× 4× 8× 训练数据量(相对 ShareGPT 的倍数) EAGLE / EAGLE-2(持平) EAGLE-3(随数据上升) 去掉 feature 预测约束后,草稿模型第一次出现 scaling law:数据越多加速比越高,最高 6.5×。

4. EAGLE-3 的两个改动

两个设计互相配合,缺一不可。

4.1 扔掉 feature 预测,用 Training-Time Test 直接预测 token

核心洞察:feature 预测是手段不是目的——它的作用只是让单步训练能泛化到多步推理,代价是过度约束了输出。EAGLE-3 直接让草稿模型预测 token,并在训练时就模拟多步生成过程(把目标模型的 LM head、采样动作都接进草稿模型的训练回路)。这一步被称为 Training-Time Test:草稿模型在训练阶段就把”测试时会怎么一步步生成”练熟,从而消掉了 EAGLE 系列一直存在的”训练–推理分布不一致”。

图 2:EAGLE-2(带 feature 约束) vs EAGLE-3(Training-Time Test) EAGLE-2 EAGLE-3 输入:feature f_t + 前移 token t₍ₜ₊₁₎ 草稿模型(1 层 Decoder) 预测 f₍ₜ₊₁₎ (SmoothL1 拟合目标 feature) LM head → token 单步训练→泛化多步;feature 约束锁死容量与输入 输入:多层融合 feature + prev token 草稿模型(容量可放大) 直接预测 token (CrossEntropy loss) 训练时模拟多步生成: 把 LM head + 采样接进训练回路 训练即"演练"测试时多步生成,消掉分布差

4.2 多层特征融合(multi-layer feature fusion)

既然 feature 约束没了,输入端也获得自由——不再只能用顶层 feature,而是融合目标模型的低 / 中 / 高层特征,拿到更丰富的语义上下文喂给草稿模型。这一点和”直接预测 token”互为前提:没有 feature 约束,才敢换输入。

5. 三代对比表

维度EAGLE-1EAGLE-2EAGLE-3
草稿方式feature 层自回归动态草稿树直接 token + 多层融合
是否受 feature 约束是是否
输入端顶层 feature顶层 feature低/中/高层融合
是否出现 scaling law否否是
典型加速比~3–4×~4.2×最高 6.5×

6. 效果数据

指标数值
最高加速比6.5×(Vicuna 13B, HumanEval, T=0)
相对 EAGLE-2延迟再降约 1.4×
SGLang 吞吐(batch=64, H100)+1.38×
兼容完全兼容 EAGLE-2 的草稿树

7. 小结

EAGLE 三代的演进一句话概括:

EAGLE-1 解决”怎么借大模型信息猜得更准” → EAGLE-2 解决”怎么把计算预算分配得更聪明” → EAGLE-3 解决”怎么让草稿模型从更多数据持续受益”。

它给整个投机采样领域一个重要启示:草稿模型不是只能是个小玩具,只要去掉错误的约束、给它更丰富的输入和更大的容量,它也能 scaling。这也是为什么 DFlash / DSpark 在对比时都以 EAGLE-3 为基线——它定义了”特征层草稿”这条路线的天花板。

本篇属于「推测解码手记」系列 Ep6。前情:DFlash 深度解析、DSpark 深度解析、DFlash vs DSpark;回到系列首页见推测解码手记。

觉得有用?欢迎点赞、收藏,或请作者喝咖啡 ☕️

支付宝收款码

支付宝

微信收款码

微信

💬 留言

评论由 Giscus 驱动(基于 GitHub Discussions)。 当前仓库 NaphJohn/LLM-blog 尚未启用 Discussions:请在 GitHub 仓库 Settings → General → Features 勾选 Discussions 后刷新本页,评论区即自动显示。