一句话定义:EAGLE 是一种投机解码(speculative decoding)方案,它让"起草者"不再逐个 token 地猜下一句,而是在大模型的特征层做自回归预测,因此草稿更准、被接受的比例更高。
先说清楚投机解码本身
大模型生成文字是"一个 token 一个 token"串行吐出来的,每吐一个都要把整个模型跑一遍,慢就慢在这里。投机解码的思路是:先让一个便宜的小模型一口气猜出 5 个 token(叫草稿),再让大模型并行验证这 5 个。猜对的直接采纳,猜错的那一步退回重来。一次大模型前向就产出好几个 token,速度自然上去了。
关键指标是接受率(acceptance rate):草稿里平均有几个能过验证。小模型越像大模型,接受率越高。
EAGLE 的不同:草稿写在"特征"上
普通的投机解码用一个小模型(draft model),它只看到"已经生成的文字",然后猜下一个 token。问题是:文字是压缩过的信息,小模型很难从这几个字里读出大模型接下来会怎么想,所以经常猜偏。
EAGLE 换了个地方下手。它发现大模型内部倒数第二层的隐藏状态(hidden state)里,已经含有"我接下来大概要说什么"的信息,比输出来的 token 丰富得多。于是它训练一个很轻量的草稿头(draft head):
1. 输入大模型的中间层特征 + 当前 token 的 embedding;
2. 预测下一个位置的特征(不是 token);
3. 复用大模型自己的输出层,把这个预测特征翻译成词表上的概率分布,选出候选 token;
4. 把这个候选 token 的特征再喂回去,继续预测下一个——依然是自回归,只是在特征空间里跑。
打个比方:普通投机解码像让实习生看已经打印出来的稿子猜下一句;EAGLE 相当于让实习生直接瞟一眼主编脑中刚成形的想法,猜中率当然更高。后续的 EAGLE-2、EAGLE-3 还引入了动态草稿树、多特征层融合等改进,具体细节以官方论文和仓库为准。
和相邻方案的区别
| 方案 | 起草依据 | 起草方式 | 特点 |
|---|---|---|---|
| 普通投机解码 | 已生成的 token | 独立小模型,token 级自回归 | 需要单独训练/对齐一个小模型,接受率受限于两者分布差距 |
| EAGLE | 目标模型的中间层特征 | 轻量草稿头,特征级自回归 | 草稿更贴近目标模型,接受率通常更高 |
| Medusa | 目标模型的顶层表示 | 多个解码头,一次前向预测多个未来位置 | 并行、头与头之间近似独立,越往后越不准 |
| Lookahead decoding | 已生成的 token 片段 | n-gram 加迭代求解 | 免训练,但收益高度依赖文本重复度 |
对从业者的意义
投机解码属于无损加速:验证环节保证输出分布和原模型一致,所以答案是"白捡的速度",不是"换了个差模型"。EAGLE 是目前工程上比较主流的路线之一,尤其适合单请求、小批量、显存带宽吃紧的推理场景——这类场景 GPU 算力用不满,正好用并行验证把空闲算力榨出来。
它的代价是:草稿头需要针对具体目标模型训练,多占一点显存;批量很大、算力已经打满时收益会缩小。要不要上,建议先在自己的真实流量上量一下接受率和端到端延迟再决定。
