Skip to main content

投机解码深度解析:小模型如何给大模型"代打"

· 4 min read
Industry Research Team

之前我们讲过投机解码的概念:小模型起草稿、大模型来验证。但概念到生产之间隔着几个关键问题——接受率怎么算、草稿从哪来、为什么大 batch 场景收益会缩水。这篇往下挖一层。

草稿-验证框架:一次前向,验 K 个 token​

标准流程是:草稿模型根据当前上下文连续猜 K 个 token,目标模型把"原文加 K 个草稿 token"拼成一次前向——注意自回归模型天然支持一次并行计算多个位置的输出,所以验证 K 个 token 的耗时约等于生成一个 token。逐位比对:草稿猜对的保留,遇到第一个分歧位丢弃其后全部草稿,并采用目标模型在该位的输出。

对随机采样场景,接受与否用拒绝采样规则决定,可以严格证明最终输出分布与目标模型直接解码完全一致——这是投机解码最漂亮的性质:加速不以任何质量损失为代价。

收益取决于接受率 α:若每个草稿位被接受的概率都是 α,则每步目标模型前向平均产出约 1 加 α 加 α 的平方一直加到 α 的 K 次方个 token,随 K 增长趋于 1 除以 1 减 α。α 等于 0.7、K 等于 4 时约两倍加速;α 跌到 0.3,收益就趋近于零,草稿计算反而白费。

草稿从哪来:三条路线​

方案草稿来源公开接受率典型加速额外开销
独立草稿模型同词表的小模型六至八成约 1.5 至 2.5 倍需维护小模型
Medusa目标模型上加多个预测头六至七成约 1.8 至 2.5 倍需训练预测头
EAGLE-3复用目标模型深层特征七至八成约两至四倍,部分报告更高训练轻量草稿头
MTP训练期原生多 token 预测八成以上据公开技术报告约 1.8 倍解码加速需重训模型

独立草稿模型最直观,但要求草稿与目标共享分词器且风格对齐,体积以小为宜——太大则草稿自身耗时吃掉收益。Medusa 不引入独立模型,在目标模型上挂若干预测头并行猜测未来多个位置,部署简单。EAGLE 系列更进一步:直接把目标模型的中间层特征喂给一个轻量草稿头,配合树形注意力(每步验证多条候选分支)把接受率推高,2025 年发布的 EAGLE-3 据公开评测已成为通用模型上的标杆方案。

MTP 则把投机解码内化进训练目标:DeepSeek-V3 在预训练时就加入多 token 预测模块,推理时该模块天然充当草稿头。据其公开技术报告,MTP 带来约 1.8 倍的解码加速,接受率达八成以上——原生对齐是接受率最高的路线,代价是必须从训练侧介入。

什么场景反而变慢​

三类场景要谨慎:一是高温采样等高随机性输出,草稿与目标分歧大,接受率暴跌;二是超大 batch 服务,此时解码已接近算力受限,验证的并行红利被摊薄,甚至挤占正常请求的算力;三是草稿模型选得太大,草稿成本占比过高。经验法则是草稿比目标小一到两个数量级,且务必用自家流量实测接受率——公开基准的七成接受率在你的领域数据上可能只有三成多,收益随之天差地别。

小结​

投机解码是"用访存冗余换时延"的典型架构:单流解码卡在权重搬运上,验证多 token 几乎不额外耗时,这正是它能免费加速的物理原因。落地时先明确业务是延迟敏感还是吞吐敏感——前者优先开,后者要先压测 batch 干扰,再选对草稿路线,最后盯住接受率这个唯一的核心指标。