草稿-验证 · 接受率决定加速
投机解码不是让两个模型同时生成,而是让小模型先猜、大模型批量验证——大模型一次前向本来就要算所有位置,验证几乎免费。
流程:小模型(draft)自回归猜 k 个 token(如 4 个)。把这 k 个候选连同前文一起喂给大模型(target),大模型一次前向算出每个位置的真实分布,逐个比对:候选和大模型分布一致就接受,不一致就拒绝并从该位置用大模型分布采样。猜对 k 个就一次产出 k+1 个 token;猜错第 1 个就退化成普通生成。
关键:大模型验证这 k 个 token 的成本和生成 1 个 token 几乎一样(因为注意力本就是并行的)。所以接受率越高、草稿越长,加速越大。EAGLE 的创新是让草稿模型复用大模型上一层的隐藏特征,而不是只看 token——草稿更准,接受率更高。
调草稿长度和接受率,看投机解码相对普通解码的加速比。
一个常见坑:用太小的草稿模型省成本,结果接受率只有 40%,加速不到 1.3×,还多了开销——不如不开。草稿模型要"小而准",EAGLE 用大模型自己的特征蒸馏草稿头,是当前最优解。