简介:本文围绕大模型推理加速中的推测解码技术,系统评测并行草稿方案的两代演进,并与“混合草稿+动态验证调度”路线对比。文章从草稿有效性、单轮开销、并发吞吐、工程复杂度等维度给出可复用的测试方法、结果解读与选型建议,帮助推理工程师与技术负责人判断不同方案在低并发长输出与高并发在线服务下的适配边界。
大模型解码阶段通常逐token自回归生成,延迟随输出长度线性增长,是在线服务的主要瓶颈之一。推测解码通过“草稿器先猜一块、目标模型一次前向验证”的方式,把部分串行解码转化为并行验证,在不改变输出分布的前提下提升效率。围绕草稿如何生成,目前存在两条主要技术路线:
本文以某团队第二版并行草稿方案(下称“方案B”)为主线,与一条“混合草稿+动态验证调度”路线(下称“方案A”)进行对比评测,并把第一代纯并行草稿方案(下称“基线方案”)作为参照。适合推理框架工程师、算法工程师、架构师与技术负责人阅读。需要强调:评测的目的不是给出“谁更好”的绝对结论,而是回答不同方案在什么条件下、哪些指标上、以多大代价取得优势,以及这些结论的适用边界在哪里。
本次评测重点回答五个问题:
推测解码有一个硬约束:验证阶段只接受连续正确前缀,草稿中间错一个token,后面即使碰巧猜对也不会被采纳。基线方案并行预测整块token后,每个位置独立取top-1。单看每个位置似乎都合理,拼起来却未必连贯;且块越长,尾部质量衰减越明显,因为尾部token的正确性越来越依赖前面的选择,而独立top-1切断了这种依赖。
方案B把问题拆成两类分别处理:
第一类:正确token已在候选里,只是top-1选错了。 方案B不再让每个位置只保留一个答案,而是保留top-16,再用候选路径选择器对相邻token组合打分,从中挑出一条更连贯的路径。其依据是位置级命中率统计(见第七节):正确token落在top-16中的概率远高于top-1命中率,说明“选路”比“逐位置硬选”更划算。
第二类:块尾位置正确token连候选集都进不去。 此时再聪明的路径选择也无用。方案B引入动态深度卷积,让每个位置混合自身与前一个位置的表示,用廉价的局部信息传递修补块尾依赖。相对把五层草稿器直接加深到十五层,这一改法只增加约3%参数量和约0.7%的单轮草稿延迟,而块尾首命中率已接近十五层模型水平。
方案A同样承认纯并行的块内依赖问题,但选择了另一条路径:在并行骨干后加马尔可夫型或RNN型顺序头,逐位置修正完整词表分布;同时预测不同前缀的接受置信度,结合硬件负载动态决定本轮值得验证多少个token。因此方案A更像一套从草稿器延伸到服务调度的完整方案,方案B则更聚焦草稿器本身的优化,尽量避免任何顺序计算。
| 评测维度 | 关注指标 | 为什么重要 |
|---|---|---|
| 草稿有效性 | 平均接受长度、逐位置命中率、top-k覆盖率 | 决定单轮验证能“白拿”多少token |
| 草稿开销 | 单轮草稿延迟、参数量增量、显存占用 | 接受长度收益必须扣除草稿成本 |
| 块内一致性 | 连贯性、块尾衰减曲线 | 决定块长上限与加速稳定性 |
| 并发吞吐 | 端到端tokens/s、验证token对batch容量的挤占 | 高并发下的真实收益 |
| 工程复杂度 | 接入改造量、调度逻辑、调试便利性 | 决定长期维护成本 |
| 可观测性 | 接受率、逐位置统计、退化告警 | 线上质量下滑的预警能力 |
| 成本结构 | 显存、算力、人力投入 | 不同部署规模下的经济性 |
通用测试流程建议如下:
示意性伪代码(通用逻辑,不绑定任何具体工具):
# 评测主循环:统计接受长度与端到端加速比for prompt in eval_set:t0 = now()draft = drafter.block_generate(hidden=prompt_state, k=BLOCK, topk=16)path = path_selector.choose(draft) # 方案B:候选路径打分t_draft = now() - t0out, n_accept = target.verify(prefix, path) # 只接受连续正确前缀record(n_accept, t_draft, t_verify, tokens_per_sec)report(mean_accept_len, p50_latency, p99_latency, speedup)
以下引用数据均来自单一报告的实验设置,具体数值会随模型、数据与配置变化,仅作解读示范。
| 场景特征 | 建议侧重 | 理由 |
|---|---|---|
| 低并发、长输出、显存有余量 | 方案B | 并行草稿快、接受长度高,长输出可摊薄固定开销 |
| 高并发在线服务 | 方案A | 每多验证一个token都会挤占batch容量,动态验证长度更划算 |
| 离线批量生成 | 方案B或基线+块长调优 | 吞吐优先,接受长度收益可直接兑现 |
| 实时对话、代码补全 | 视并发档位压测决定 | 首token与尾延迟敏感,需实测确认 |
本文以两代并行草稿方案与一条混合调度路线为对象,建立了覆盖草稿有效性、单轮开销、并发吞吐、工程复杂度与可观测性的评测框架。核心结论是条件化的:在低并发、长输出、显存有余量的负载下,方案B以极小的参数与延迟代价换取更高的接受长度,性价比突出;在高并发在线服务中,验证token对batch容量的挤占成为主要矛盾,方案A的动态验证调度更具价值。任何选型结论都应回到自身负载与环境中复测验证,评测的价值在于提供一套可复用的验证方法与解读视角,而非替代业务侧的实测判断。