原文标题:DSpark: Confidence-Scheduled Speculative Decoding with Semi-Autoregressive Generation 作者:Xin Cheng, Xingkai Yu, Chenze Shao, Jiashi Li, Yunfan Xiong 等(北京大学 & DeepSeek-AI) 发布时间:2026年7月 原文链接:待补充
版权声明:本文为学术论文的中文翻译,仅供学习研究使用。原文版权归属原作者及所属机构所有。如有疑问请联系译者。
摘要
推测解码(Speculative Decoding)通过将草稿生成与目标验证解耦来加速大语言模型推理。虽然近期的并行草稿模型能在单次前向传播中高效生成长序列候选 token,但由于缺乏 token 间依赖关系,其接受率随位置快速衰减。此外,不加区分地验证这些长草稿块会浪费宝贵的批处理容量,在高并发服务系统中严重降低吞吐量。
我们提出 DSpark——一个统一高吞吐并行生成与自适应负载感知验证的推测解码框架。为保持草稿质量,DSpark 采用半自回归架构:将并行骨干网络与轻量级序列模块耦合,引入块内依赖建模以缓解尾部衰减。为优化系统效率,DSpark 使用置信度调度验证:根据估计的前缀存活概率和引擎吞吐量曲线,动态调整每个请求的验证长度。
在离线基准测试中,DSpark 在多个领域大幅超越最先进的自回归和并行草稿模型。在 DeepSeek-V4 服务系统中部署后,DSpark 成功缓解了验证浪费。与生产基线 MTP-1 相比,DSpark 在匹配的吞吐量水平下将每用户生成速度提升 60%–85%。更重要的是,通过在严格交互性约束下防止吞吐量严重退化,DSpark 解锁了此前无法达到的性能层级,推动了服务系统帕累托前沿的外移。我们开源了 DSpark 检查点及 DeepSpec 训练仓库。
1. 引言
大语言模型(LLM)以自回归方式生成文本:每个新 token 需要一次完整的前向传播,推理延迟与输出长度成正比。由此导致的低 GPU 利用率和用户感知的高等待时间,成为生产环境中 LLM 服务的主要瓶颈。
推测解码提供了原则性的解决方案:一个轻量级草稿模型提出候选 token 块,全尺寸目标模型通过拒绝采样在单次前向传播中验证整个块,接受与目标分布一致的最长前缀并附加一个奖励 token。由于验证是并行的且接受规则精确保持目标分布,推测解码在无质量损失的情况下加速生成。
草稿模型的设计决定了草稿延迟与接受率之间的权衡。早期草稿模型是自回归的,但草稿延迟随块大小线性增长。为突破这一瓶颈,并行草稿模型出现——所有草稿位置在单次前向传播中生成,草稿延迟几乎与块大小无关。
然而,充分发挥大并行草稿块的潜力面临两个关键瓶颈:
- 生成质量:并行草稿模型独立预测每个位置,无法建模块内 token 间依赖,导致多模态冲突和后期位置接受率快速衰减。
- 系统效率:并行生成容易产生长草稿块,但不加区分地验证所有 token 会降低系统吞吐量,尤其在高并发下。
为应对这些瓶颈,DSpark 通过两个互补机制设计:
- 半自回归架构:保持计算密集的草稿骨干完全并行,仅附加轻量级串行输出头注入局部转移信息,保留并行速度的同时显著缓解尾部衰减。
- 置信度调度验证:通过置信度头估计每位置前缀存活概率,配合硬件感知调度器,根据实时引擎吞吐量曲线将验证预算分配给预期回报最高的 token。
2. 背景
2.1 推测解码
自回归语言模型每次前向传播生成一个 token,推理延迟与输出长度成正比。推测解码使用轻量级草稿模型 \(M_d\) 加速目标模型 \(M_t\) 的推理。每个解码周期,草稿模型提出 \(\gamma\) 个候选 token \(x_1, \ldots, x_\gamma\),目标模型在单次前向传播中验证所有候选,接受与自身分布一致的最长前缀。
具体地,在每个草稿位置 \(k\),目标模型计算自身分布 \(p_t^k\) 并与草稿分布 \(p_d^k\) 比较。token \(x_k\) 以概率 \(\min(1, p_t^k(x_k)/p_d^k(x_k))\) 被接受。验证从左到右进行:位置 \(k\) 的首次拒绝会丢弃所有后续 token。
令 \(\tau\) 表示每周期接受的 token 数,\(T_\text{draft}\) 和 \(T_\text{verify}\) 分别为草稿和验证的墙钟时间。每生成 token 的平均延迟为:
\[L = \frac{T_\text{draft} + T_\text{verify}}{\tau}\]
加速因此归结为三个杠杆:降低 \(T_\text{draft}\)(更快草稿)、提高 \(\tau\)(更好草稿)、或减少有效 \(T_\text{verify}\)(更智能验证)。
2.2 草稿模型架构
自回归草稿模型按顺序生成草稿 token,每个位置以前序采样 token 为条件。这种显式依赖提供强建模能力,但草稿成本随块大小线性增长(\(T_\text{draft} \propto \gamma\)),迫使其使用小块和浅架构。
并行草稿模型在单次前向传播中生成所有 \(\gamma\) 个草稿 token,\(T_\text{draft}\) 几乎与块大小无关,允许更大的块(如 \(\gamma = 16\))。
其中 DFlash 是最先进的并行草稿模型,通过从目标模型提取的丰富上下文特征(KV 注入)来条件化草稿模型。预填充期间,目标模型一组层的隐藏状态被拼接并投影到草稿隐藏空间:
\[H_\text{ctx} = \text{RMSNorm}\left(W_c[H^{(l_1)}; \ldots; H^{(l_m)}]\right)\]
其中 \(W_c \in \mathbb{R}^{d \times md}\) 是共享投影。这些上下文特征被注入每个草稿层:
\[K_i = [W_i^K H_\text{ctx}; W_i^K H_d], \quad V_i = [W_i^V H_\text{ctx}; W_i^V H_d]\]
块内所有位置双向互相关注,并与注入的目标上下文交互。草稿模型共享目标模型的嵌入层和语言建模头(均冻结)。
3. 架构
DSpark 的概述如图 1 所示。自回归草稿模型实现高 \(\tau\) 但付出 \(T_\text{draft} \propto \gamma\) 的代价;并行草稿模型将 \(T_\text{draft}\) 压缩为单次传递但牺牲 \(\tau\)。同时,固定长度验证在低置信度尾部 token 上浪费 \(T_\text{verify}\)。DSpark 通过两个互补组件解决这些限制:
- 半自回归生成(§3.1):并行骨干处理草稿计算主体,保持 \(T_\text{draft}\) 几乎独立于 \(\gamma\);轻量级序列块注入 token 间依赖,以最小额外延迟提高 \(\tau\)。
- 置信度调度验证(§3.2):置信度头估计每位置接受概率,硬件感知调度器利用这些估计剪枝低置信度尾部 token,削减不必要的验证计算。
3.1 半自回归生成
并行草稿模型在单次前向传播中产生所有 \(\gamma\) 个草稿 logits,每个预测无法以块内其他位置的采样 token 为条件。当上下文允许多种合理续写时(如 "of course" 和 "no problem"),并行草稿模型可能产生不连贯组合(如 "of problem" 或 "no course")。接受率因此沿块快速衰减。
我们采用半自回归结构,将草稿生成分为两个阶段:
并行阶段:并行骨干(我们实例化为 DFlash)在整块上运行单次前向传播,产生隐藏状态 \(h_1, \ldots, h_\gamma\) 和基础 logits \(U_1, \ldots, U_\gamma\)。
序列阶段:序列阶段用前缀依赖的转移偏置 \(B_k(x_0, x_{<k}, x_k)\) 补充基础 logits,允许每个草稿位置以块内前序采样 token 为条件。通过自回归分解引入因果块分布:
\[P(X | x_0) = \prod_{k=1}^\gamma p_k(x_k | x_0, x_{<k})\]
\[p_k(v | x_0, x_{<k}) = \frac{\exp(U_k(v) + B_k(x_0, x_{<k}, v))}{\sum_{u \in \mathcal{V}} \exp(U_k(u) + B_k(x_0, x_{<k}, u))}\]
我们描述了序列块的两种实例化:
Markov 头:最简单的实例化将 \(B_k\) 限制为仅依赖前一个 token,简化为 \(B(x_{k-1}, x_k)\)。用低秩分解 \(B = W_1 W_2\) 近似(\(W_1 \in \mathbb{R}^{V \times r}\),\(W_2 \in \mathbb{R}^{r \times V}\),默认 \(r=256\)),保持存储和每步计算量很小。
RNN 头:Markov 头无记忆超过一步。RNN 头维护循环状态 \(s_k\) 累积块内完整前缀历史。每步拼接当前状态 \(s_{k-1}\)、前 token 嵌入 \(W_1[x_{k-1}]\) 和骨干隐藏 \(h_k\),应用门控更新:
\[s_k = \sigma(W_g z_k) \odot s_{k-1} + (1 - \sigma(W_g z_k)) \odot \tanh(W_c z_k)\] \[B_k(x_{<k}, \cdot) = W_2^\top \tanh(W_o z_k)\]
3.2 置信度调度验证
半自回归架构使 DSpark 能高效生成大草稿块,但验证所有草稿 token 可能降低系统吞吐量,尤其在高并发场景。性能瓶颈来自两个交互因素:
- 数据侧:草稿接受率因领域而异(代码天然高接受,开放聊天显著更低)。
- 系统侧:验证额外 token 的实际成本严格依赖引擎负载。
因此,释放大草稿块潜力需要统一机制,将目标模型计算仅分配给有正期望回报的 token。DSpark 通过置信度头(§3.2.1)和硬件感知前缀调度器(§3.2.2)实现。
3.2.1 置信度头
置信度头为每个草稿位置 \(k\) 输出标量估计 \(c_k \in (0, 1)\),建模草稿 token 在位置 \(k\) 通过目标验证的条件概率(给定块内所有前序 token 已被接受)。架构使用轻量级线性投影后接 sigmoid:
\[c_k = \sigma\left(w^\top [h_k; W_1[x_{k-1}]]\right)\]
其中 \(h_k\) 是骨干隐藏状态,\(W_1[x_{k-1}]\) 是 Markov 嵌入。用每步解析接受率 \(c_k^*\) 监督:
\[c_k^* = 1 - \frac{1}{2} \|p_k^d - p_t^k\|_1\]
后校准:由于神经置信度估计常过度自信,直接使用原始分数会扭曲吞吐量估计。我们引入序列温度缩放(STS)——在保留验证集上从左到右校准联合概率 \(\prod_{i \le k} c_i\),通过 1D 网格搜索找到最小化期望校准误差(ECE)的最优温度标量。温度缩放是保序变换,纠正预测概率以匹配经验接受率,不破坏置信度头学到的相对排序。
3.2.2 硬件感知前缀调度器
我们将验证长度选择形式化为全局吞吐量最大化问题(算法 1)。考虑 \(R\) 个活跃请求的批次。对请求 \(r\),令 \(c_{r,1}, \ldots, c_{r,\gamma}\) 为每位置置信度估计,\(\ell_r\) 为调度验证长度。token 在位置 \(j\) 的存活概率为累积乘积 \(a_{r,j} = \prod_{i \le j} c_{r,i}\)。
单次验证中,发送给目标模型的总批次大小 \(B = \sum_{r=1}^R (1 + \ell_r)\),期望接受 token 数 \(\tau = \sum_{r=1}^R (1 + \sum_{j=1}^{\ell_r} a_{r,j})\)。令 \(\text{SPS}(B)\) 表示引擎吞吐量(steps/second),调度器目标为最大化系统级 token 吞吐量 \(\Theta = \tau \cdot \text{SPS}(B)\)。
由于 \(a_{r,j}\) 关于 \(j\) 单调非增,扩展请求 \(r\) 验证长度从 \(j-1\) 到 \(j\) 的边际收益恰好是 \(a_{r,j}\)。这保证了全局按 \(a_{r,j}\) 排序候选 token 自然尊重块内前缀依赖。我们全局排序所有有效前缀扩展,按存活概率降序,逐步接纳 token 并更新期望吞吐量 \(\Theta\)。
调度器采用早停机制(当 \(\Theta \le \Theta_\text{best}\) 时立即中断)强制执行严格因果性,确保无损推测解码的非预期性质。
3.3 训练
训练时从每个目标序列随机采样多个锚点位置形成 \(\gamma\)-token 块作为训练数据。目标模型全程冻结;草稿模型共享其嵌入层和 LM 头并保持冻结,仅更新骨干草稿模型、序列块和置信度头。
训练目标包含三项损失,均按位置加权 \(w_k = \exp(-(k-1)/\gamma)\):
- 交叉熵损失 \(\mathcal{L}_\text{ce} = -\sum_{k=1}^\gamma w_k \log p_k^d(x_k^*)\)
- 分布匹配损失 \(\mathcal{L}_\text{tv} = \sum_{k=1}^\gamma w_k \|p_k^d - p_t^k\|_1\)
- 置信度损失 \(\mathcal{L}_\text{conf} = -\sum_{k=1}^\gamma w_k [c_k^* \log c_k + (1 - c_k^*) \log(1 - c_k)]\)
总目标:\(\mathcal{L} = \alpha_\text{ce} \mathcal{L}_\text{ce} + \alpha_\text{tv} \mathcal{L}_\text{tv} + \alpha_\text{conf} \mathcal{L}_\text{conf}\)(默认权重 0.1, 0.9, 1.0)。
4. 实验
我们在离线基准上验证 DSpark 的草稿质量,在第 5 节报告在线生产流量下的置信度调度器效果。
4.1 实验设置
目标与草稿模型:在四个不同规模的目标模型上评估——Qwen3-{4B, 8B, 14B} 和 Gemma4-12B。对比两个代表性草稿模型:DFlash(并行)和 Eagle3(自回归,基于 TTT)。为公平比较,所有草稿模型在同一框架和相同数据上重新训练。DSpark 默认使用 Markov 头变体。
训练数据:使用 Open-PerfectBlend(130 万样本),包含聊天(17.6%)、数学(39.4%)、代码(38.9%)和指令遵循(4.1%)。每个草稿模型训练 10 个 epoch。
评估协议:在三个领域评估——数学推理(GSM8K、MATH500、AIME25)、代码生成(MBPP、HumanEval、Live-CodeBench)、日常聊天(MT-Bench、Alpaca、Arena-Hard)。使用标准推测解码,温度 1.0,报告每轮接受长度 \(\tau\)。
4.2 主要结果
DSpark 在所有目标模型和基准领域上持续超越自回归基线(Eagle3)和并行基线(DFlash):
| 目标模型 | vs Eagle3 提升 | vs DFlash 提升 |
|---|---|---|
| Qwen3-4B | +30.9% | +16.3% |
| Qwen3-8B | +26.7% | +18.4% |
| Qwen3-14B | +30.0% | +18.3% |
关键发现:接受长度在结构化任务上天然更高(数学 5.57、代码 5.12),而开放聊天显著更低(3.49)。这种数据可预测性的内在差异意味着静态验证长度常在尾部低质量 token 上浪费计算,直接驱动了置信度调度验证的设计。
4.3 实验分析
4.3.1 为什么并行生成能超越自回归?
表 1 揭示了一个反直觉现象:并行草稿模型(DFlash)和半自回归草稿模型(DSpark)常产生比全自回归草稿模型(Eagle3)更长的接受长度。
细粒度逐位置条件接受分析揭示了不同草稿模型的独特生成特征:自回归模型在首 token 上接受率高,但后续位置的优势急剧衰减;并行模型在早期位置就表现出更强的接受率。DSpark 成功结合了两者优势——继承了并行模型的高初始 token 容量,同时通过序列头维持尾部连贯性。
4.3.2 序列头消融
Markov 头和 RNN 头均持续改善 DFlash 基线。Markov 头以最小计算开销提供大部分增益,RNN 头在数学推理任务上提供额外改进,因为数学推理需要更深的前缀依赖。
4.3.3 置信度头分析
置信度头表现出强大的预测区分能力(ROC-AUC 0.81-0.90),但原始模型过度自信(ECE 3%-8%)。应用 STS 后将平均 ECE 降至约 1%,产生可靠的存活概率估计。
5. 真实部署
在 DeepSeek-V4 旁部署 DSpark 引入了训练和推理两方面的额外系统级挑战。本节呈现端到端生产流水线。
5.1 可扩展灵活训练
DSpark 草稿模型与 DeepSeek-V4-Flash 和 DeepSeek-V4-Pro 预览版协同部署。并行骨干由三层 MoE 与 mHC 和 128 滑动窗口注意力组成。最大块大小 \(\gamma = 5\),使用 Markov 头。置信度头与草稿模型端到端训练,后经 STS 校准。
两项系统级优化:
隐藏状态通信:传输目标模型全词汇 logits(\(V \approx 10^5\))跨并行 worker 产生显著带宽瓶颈。改为临时缓存目标模型前向激活,仅通信 LM 头之前的隐藏状态,LM 头投影在草稿模型 worker 本地执行。将每 token 通信复杂度降至 \(O(d)\)。
锚点边界序列打包:采样固定数量的草稿锚点,将隔离的预测块打包为密集训练批次。通过 token 级注意力索引管理打包,保持精确因果掩码,避免标准填充的计算和内存开销。
5.2 硬件感知前缀调度器的实践适配
算法 1 提供理论上正确的无损调度机制,但直接部署面临两个冲突:
- 真实硬件容量 \(\text{SPS}(B)\) 本质上是离散的,呈现锯齿状阶梯退化。
- 动态每步调度与连续 CUDA Graph 回放和零开销调度(ZOS)冲突。
异步适配:调度器异步运行,用两步前的置信度头输出来近似即将到来的验证容量。候选 token 严格按实际最新累积置信度分数排序;两步前的历史预测仅用于确定动态截断长度(批次容量限制 \(K\))。这有效地将接纳过程转化为动态 top-\(K\) 选择。
通过移除早停 break 实现无约束全局搜索,异步设计自然形成因果屏障——截断决策仅依赖两步前的信息,与当前 token 的实现隔离,在最大化物理吞吐量的同时保持精确目标分布。
5.3 高吞吐低延迟推理
生产服务系统需同时优化两个竞争目标:每请求延迟和聚合吞吐量。由于推测解码不可避免地产生浪费的验证计算,它在额外系统计算与更快每请求生成之间进行权衡。
在部署场景中,每步处理的请求数常受资源限制(如固定 KV 缓存容量)和可用用户流量池约束。有效批次大小持续远低于 GPU 计算饱和阈值。在此体制下,给定固定并发限制,最大化每 GPU token 总吞吐量与最大化每用户生成速度(tok/s/user)成为高度相关的目标。
为实现最大吞吐量,异步调度器主动将空闲计算路由到最有前景的草稿 token。我们通过将物理执行与逻辑序列跟踪解耦来解决可变长度查询挑战——所有 token 被展平并作为独立元素处理,复杂的序列内依赖通过稀疏注意力实现中的标记张量严格传达。
5.4 在线流量下的性能
我们在 DeepSeek-V4-Flash 和 V4-Pro 的生产服务引擎中评估 DSpark-5(最大草稿长度 \(\gamma = 5\))对比 MTP-1 基线。MTP-1 代表此前的生产设置(DSpark 在 V4-preview 发布两周后取代了它)。
服务帕累托前沿:图 7 展示了聚合系统吞吐量与每用户生成速度之间的权衡。
V4-Flash 引擎:在中等 80 tok/s/user SLA 下,DSpark 将聚合吞吐量提升 51%。在更严格的 120 tok/s/user SLA 下,DSpark 在匹配实用吞吐量水平下将每用户生成速度提升 60%–85%。
V4-Pro 引擎:在 50 tok/s/user SLA 下,DSpark 将吞吐量提升 52%,每用户生成速度提升 57%–78%。
调度器行为分析: - 轻负载下,调度器动态扩展验证预算,从 MTP-1 的静态 2 token 扩展到约 4-6 token。 - 随并发扩展和目标容量饱和,调度器动态限制预算,平均验证长度随负载平滑下降,确保低置信度草稿 token 在消耗关键批次容量前被剪枝。
局限性
尽管前缀调度器最小化了浪费的目标模型验证,DSpark 仍需为通过并行骨干生成初始 \(\gamma\)-token 块付出固定草稿端成本。对于接受率天然低的复杂查询,前期草稿计算不可回收。未来优化可引入难度感知的草稿模型提前退出。
6. 相关工作
推测解码研究广泛覆盖了草稿模型架构优化和系统感知调度两个方向。
草稿架构:从独立小语言模型到多 token 头、特征外推器、自推测、动态词汇压缩、提示查找、后缀自动机和检索增强等。为消除草稿本身的序列瓶颈,P-EAGLE、PARD、DART、DFlash 等方法提出并行或块级生成,DDTree 将其扩展为可验证草稿树。Domino 引入与本文 RNN 头概念相似的 CausalEncoder,DFlare 通过逐层融合解决条件化瓶颈。
系统感知调度:自适应调整草稿长度的方法包括置信度启发式、学习型接受预测器、bandit 策略,以及根据实时系统负载和请求优先级优化总体吞吐量和延迟的调度。
并行生成:非自回归 Transformer(NAT)开创了并行生成方向,但独立预测导致多模态混合输出。解决方案包括引入潜变量条件化、放松训练目标、迭代重新预测、块级自回归和结构化输出层(CRF、CTC、HMM、PCFG)。DSpark 通过将序列修正保持为局部的,使每 token 概率保持精确 softmax 评估,绕过了这些方法在推测解码中的限制。
7. 结论
本文提出 DSpark——一个为解决高并发生产环境中大语言模型推理的结构性和系统性瓶颈而设计的推测解码框架。
算法层面,DSpark 引入半自回归生成范式——将计算密集的并行骨干与轻量级序列头耦合——缓解独立并行草稿模型的快速尾部衰减。
系统层面,将验证长度选择形式化为全局吞吐量最大化问题,使用硬件感知前缀调度器基于校准存活概率和实时引擎负载动态调整验证预算。
大量离线评估证明 DSpark 在多个领域大幅超越最先进的自回归和并行基线。在 DeepSeek-V4 中的真实部署验证了其生产实用价值:通过智能管理验证开销,DSpark 在重负载下维持稳健并发,持续加速每用户生成速度,有效推动 LLM 服务帕累托前沿外移。
参考文献
(共 40+ 篇引用,包括 Chen et al. 2023, Leviathan et al. 2023, DFlash, Eagle3, Medusa, DeepSeek-V3/V4 等关键工作。完整列表见原文。)
翻译说明:本文由 AI 辅助翻译,力求准确传达原文技术内容。公式和关键术语保留原始形式以确保精确性。如有翻译不当之处,欢迎指正。
版权声明:原文版权归属原作者(Xin Cheng, Xingkai Yu, Chenze Shao, Jiashi Li, Yunfan Xiong 等)及所属机构(北京大学、DeepSeek-AI)所有。本翻译仅供学术研究和学习交流使用,未经原作者许可不得用于商业用途。