投机解码与 DSpark

← 中文导读 · ← 仓库首页(EN) · ← 演进总览 §2 时间线 · §3.3 V3 MTP · §3.7 V4 + DSpark · §6 推理栈 · V3 梗概 · V4 梗概 DSpark 开源DeepSpec · DSpark_paper.pdf · DeepSeek-V4-Pro-DSpark 外部材料版本演进总览 · V3 论文 MTP 原文摘录

本文档聚合 DeepSeek 系列 投机解码(speculative decoding)DSpark 全部材料:通用循环、V3/V4 MTP、外挂 draft 自测、生产 MTP-1 基线、DSpark 机制与线上数据。演进总览 / V3 / V4 / 基础设施线 只保留链接,细节以本文为准


1. 投机解码:为何能加速推理

场景:单流(batch=1)、自回归 decode。下文以 gpt2-small draft + gpt2-xl target 为例说明通用机制;DeepSeek 路线见 §2,自测数据见 §3。

1.1 瓶颈:每 token 搬一遍大模型权重

自回归生成严格串行:第 $N$ 个 token 必须等第 $N{-}1$ 个算完。每步都要把 target 全部权重从 HBM 搬进 SM(计算单元)名词:SM;大矩阵 × 单向量,GEMV 算术强度极低)。

在 batch=1 decode 下,时间主要花在搬权重而非 FLOPS。因此:

  • target 生成 1 个 token;
  • target 一次并行验证 $k$ 个候选 token;

在带宽瓶颈下耗时 几乎相同(同样搬一遍权重,多算几位几乎不增时延)。

突破口:把「$k$ 次搬大模型权重」压成「1 次」,用便宜的 draft 换少跑几次 target。

答疑Compute-Bound vs Memory-Bound — DFlash / Eagle 如何对应? — §1.1 的 Memory-Bound 串行读;§4 Eagle(draft 串行、$\tau_q \propto K$)vs DFlash(draft 并行、一次 HBM 流)。

1.2 一轮怎么走:draft → verify → accept

出 4 个 token 时($k{=}4$)
传统xl $\to t_1 \to$ xl $\to t_2 \to$ xl $\to t_3 \to$ xl $\to t_4$ → 4 次 target 前向
投机small 猜 $t_1 t_2 t_3 t_4$ → xl 并行验证 1 次 → 接受最长前缀(最多 4 个)

① Draft(便宜)猜 $k$ 个 token

  • 例:gpt2-small 权重约为 gpt2-xl 的 $\sim 1/12$,搬一次快得多。
  • 小模型自回归猜出 $k$ 个候选,总代价远低于 xl 跑一步。
  • 生产里 draft 也可来自 MTP 头、DSpark 草稿模块等(§2、§5),循环相同。

② Target(贵,但每轮只一次)并行验证这 $k$ 个

  • 把 $k$ 个候选拼成长度 $k$ 的序列,一次前向喂给 xl。
  • Attention 并行处理多个位置 → 1 次前向同时得到这 $k$ 个位置的概率分布
  • 耗时 $\approx$ 原来生成 1 个 token(同样只搬一遍 xl 权重)。

③ Accept / reject(保证 lossless)

用 xl 的真实分布逐位校验 draft(Leviathan et al. / Xia et al. 的 rejection sampling):猜中的连续前缀直接采纳;第一个猜错处用 xl 分布重采 1 个,其后丢弃,进入下一轮。单步「提议 → 校验」的概率含义见 §1.3。

端到端加速取决于

杠杆含义
每轮接受长度平均每次 target 前向收下几个 token(头号因素)
draft 成本猜 $k$ 个要花多少小模型前向;过大或命中率太低会吃掉收益
验证占用(高并发)target 算力是否花在「高存活概率」前缀上(DSpark §6)

1.3 净收益、lossless 与最坏情况

设单次 target 前向耗时 $\approx T$(与 $k$ 弱相关):

传统($k$ 步)投机($k$ 候选,全接受)
target 前向$k$ 次1
产出 token$k$$k$
单次 target 耗时$T$$\approx T$
  • 猜得准:1 次 target 吐出多个 token → 理论 $\approx k\times$,实际约 2–3×(§3 Qwen 自测 2.4–2.9×),需扣除 draft 开销。

lossless:rejection sampling 保证与「逐 token 采样 target」同分布;draft 只改 $q$ 与接受有多快,不改输出分布。

答疑接受路径、拒绝路径与 lossless 证明 — 单步 $X \sim q$、$U \le \alpha(X)$ 校验;$E_{\mathrm{acc}}(x)$ 上 $P=q\alpha$;$\alpha=\min(1,p/q)$ 与 $p_{\mathrm{resample}}\propto\max(0,p-q)$ 合并得 $\pi(x)=p(x)$。

  • 全猜错:target 仍 1 次前向,保底 1 个正确 token(与逐 token 相同);额外多花 $k$ 次 draft 小前向 → 最坏 $\approx$ 原速 $\times (1 + \text{小常数})$,略慢但不翻车。

1.4 PoC 参照

  • gpt2-small(124M)+ gpt2-xl(1.5B):同 GPT-2 BPE、同词表,draft 权重约 target 的 $1/12$,无需训练即可验证约 延迟收益;机理见 §1.1–§1.2。
  • Qwen3-4B + 0.6B draft:本仓库 vLLM 自测见 §3。

2. DeepSeek 路线:MTP

V3 技术报告 引入 Multi-Token Prediction(MTP):在 主 next-token 目标 之外,用 $D$ 个串联 MTP 模块 预测 $t{+}2, t{+}3, \ldots$ 额外 token。训练时共享 Embedding / Output Head;每层 MTP 通过 Integration Layer上一层 hidden中间 token 的 Emb 融合后再过 1 个 Transformer Block。

中间 token 融合读图MTP 融合 scheme · MTP 融合 scheme 图

训练目标

$$ \mathcal{L} = \mathcal{L}{\mathrm{main}} + \lambda \sum{k=1}^{D} \mathcal{L}_{\mathrm{MTP}}^{(k)} $$

  • 主目标:提升主模型性能、数据效率。
  • 推理:可 丢弃 MTP 模块、主模型独立 decode;也可 复用 MTP 模块做 speculative decoding 进一步降延迟。

V4 保留 MTP 模块与训练目标(与 V3 同族实现)。

V3 MTP 训练结构;MTP 原生投机 vs 外挂 draft vs DSpark 对照

图示详情 · V3 §三 MTP

2.1 MTP 原生 vs 外挂 draft

维度MTP 原生(V3/V4)外挂 draft 小模型
Draft 来源同 checkpoint 的 MTP 辅助头独立小模型(如 0.6B)
额外显存无第二套权重需同时加载 target + draft
接受率MTP 与主模型 联合训练 对齐依赖 draft 与 target 分布匹配
训练目标$\mathcal{L}{\mathrm{main}} + \lambda \mathcal{L}{\mathrm{MTP}}$draft 常单独 SFT / 蒸馏

推理侧循环相同;差异只在 draft 从哪来

答疑酱紫君解读:MTP 一次前向与中间 token 融合 · 融合 scheme 专文

2.2 生产基线 MTP-1

V4 Flash / Pro 预览引擎在 DSpark 上线前,生产环境采用 MTP-1:基于 MTP 的 单 token 推测解码基线(每轮 propose/verify 粒度为 1)。DSpark 相对 MTP-1 报告线上增益(§8),不是相对「无投机纯自回归」。


3. 外挂 draft 自测

性质:本仓库 2026-06 自测(vLLM 0.8.5,1000 条样本,单卡 L20)。 DeepSeek MTP 官方数据, DSpark。

基线Qwen3-4B-Instruct nospec
投机4B target + 0.6B draft
基线 RT459 ms / 条
方法mean RT加速比
4B nospec(基线)459 ms1.00×
vLLM ngram / PLD(无 draft)369 ms1.99×
Prefix cache + nospec454 ms1.61×
Draft 投机(4B + 0.6B)303 ms2.41×
Prefix cache + draft298 ms2.46×
Draft + target FP8256 ms2.86×
Draft + target INT8 离线272 ms2.69×
手写 vanilla draft PoC1432 ms0.51×

读法

  • 接受率与引擎成熟时,speculative decoding 相对单路 decode 可达 约 2.4–2.9× 延迟收益 → 可作为 MTP 原生投机 的工程量级参照,不替代官方 MTP 吞吐数据。
  • draft 质量差时(PoC 0.51×),同属 speculative decoding 也会 慢于基线;MTP 的价值之一是把 draft 与主模型 绑在同一训练目标

接受率参照ESS 论文梗概MTP-Accept-Ratio(如 1.7)描述 MTP 投机链路上 每轮平均接受长度 的量级,可与下文各草稿范式的块长、接受率对照阅读。

4. 草稿范式总览

每轮投机:草稿模型 $M_q$ 一次提出 $K$ 个候选,目标模型 $M_p$ 用时间 $\tau_p$ 做 1 次验证;草稿侧总耗时约为 $K \times \tau_q$($\tau_q$ 为与块长相关的单步 draft 代价,自回归路线下 $\tau_q$ 随 $K$ 线性累积)。设本轮 平均接受长度为 $\mathbb{E}[N_{\mathrm{acc}}]$($0 \le \mathbb{E}[N_{\mathrm{acc}}] \le K$),相对「每 token 各跑 1 次 $\tau_p$」的粗算加速比为:

$$ S_{\uparrow} = \frac{\bigl(\mathbb{E}[N_{\mathrm{acc}}] + 1\bigr),\tau_p}{K,\tau_q + \tau_p} $$

设计目标:要把 $S_{\uparrow}$ 做大,需 同时抬高 $\mathbb{E}[N_{\mathrm{acc}}]$(draft 猜得准、接受得长)并 压低 $K\tau_q$(draft 生成别太慢)。两项目标往往拉扯——下文各范式正是在这对矛盾上的不同取舍。

DSpark(及同期工业界的半自回归路线)成熟之前,外挂草稿 $M_q$ 长期分两派:Eagle 系(最新 Eagle3,自回归、高接受率)与 DFlash 系(并行整块、低 draft 延迟)。DeepSeek 另备 MTP 原生头(§2);DSpark 则在两派之间取 半自回归折中。

自回归 vs 半自回归自回归(Eagle3)按 token 串行猜 draft,$\mathbb{E}[N_{\mathrm{acc}}]$ 高但 $K\tau_q$ 随块长 线性涨半自回归(DSpark)先 并行出整块(压低 $\tau_q$ 侧),再用轻量 顺序头逐位补依赖(抬 $\mathbb{E}[N_{\mathrm{acc}}]$ 后缀)——并行拿速度,顺序补准确率。

路径代表Draft 生成对 $S_{\uparrow}$ 的侧重
MTP 原生V3/V4 MTP 头同模型辅助头,可 MTP-1 单步$\mathbb{E}[N_{\mathrm{acc}}]$ 与 target 对齐;无第二套 $M_q$
自回归外挂Eagle3逐 token 串行抬 $\mathbb{E}[N_{\mathrm{acc}}]$;$K\tau_q$ 大
并行外挂DFlash一次前向整块压 $K\tau_q$;后缀 $\mathbb{E}[N_{\mathrm{acc}}]$ 易掉
半自回归外挂DSpark并行主干 + 顺序头两者折中;V4 线上相对 MTP-1
独立小模型Qwen 0.6B draft另一套权重§3 自测量级参照
范式优势瓶颈
Eagle3块内依赖强、接受率稳draft 延迟 $\propto K$(Memory-Bound 串行,见 答疑
DFlashdraft 延迟几乎与 $K$ 弱相关(Compute-Bound 并行,见 答疑第 2 位起 $\mathbb{E}[N_{\mathrm{acc}}]$ 骤降
DSpark一次并行出整块 + 后缀顺序补依赖并行主干仍须生成完整 $K$ 块(§9)

5. DSpark 概述

DSpark:面向 V4-Flash / V4-Pro 预览引擎 高并发 decode。用 半自回归草稿 + 置信度调度验证,相对生产基线 MTP-1,在 同等吞吐量 下单用户生成速度 +57%–85%(报道区间 60%–85%)。论文、训练代码、检查点:DeepSpec

DSpark:半自回归 draft + 置信度调度验证;与 Eagle3、DFlash、MTP-1 对照

图示详情


6. DSpark 机制

6.1 半自回归候选生成

阶段做什么
并行主干(DFlash 改进)一次前向 → 整块 hidden + 基础 logits
轻量顺序模块逐 token 注入前缀依赖:马尔可夫头(仅 $t{-}1$)或 RNN 头(完整前缀状态)

2 层 Transformer 深度的 DSpark 在测试领域 平均每轮接受长度 超过 5 层 DFlash

位置DFlashEagle3DSpark
第 1 位高(深并行网)受浅网限制第 1 位 接近深并行网
第 2 位起快速衰减稳定/上升顺序模块 缓解衰减

为何 draft 上能「堆叠多层」来抬接受率

投机解码的瓶颈在 块内逐位条件分布 是否与 target 对齐:第 $i$ 位 token 能否被接受,取决于 draft 提议分布 $q_i(\cdot)$ 能否逼近 target 在 同一条前缀 下的 $p_i(\cdot)=p(\cdot\mid\text{context}, x_{<i})$(校验时由 target 整段前向 得到,是 ground truth)。对齐的对象是分布 $q_i \approx p_i$,不是单说 hidden 相等。

外挂 draft(Eagle / DFlash / DSpark)的常见做法是:target 先给出(或缓存)某层 hidden $h$,再由投机模块 $f_{\mathrm{spec}}$ 叠若干层,必要时注入块内已猜 $x_{<i}$,输出 draft logits $\ell_i=f_{\mathrm{spec}}(h, x_{<i})$ → $q_i=\mathrm{softmax}(\ell_i)$。多一层 Transformer(或等价模块)就多一轮 $h \to \ell$ 的非线性修正,让 $q_i$ 更贴近校验时的 $p_i$,单点接受概率 $\uparrow$ → 前缀连乘后存活更长 → §4 的 $\mathbb{E}[N_{\mathrm{acc}}]$ $\uparrow$。

易混MTP 原生 draft 不走「外挂 $f_{\mathrm{spec}}$」,而在 同一 checkpoint 内用 MTP 块接主模型 hidden 链出 logits(§2)。独立小模型 draft 甚至不读 target hidden,靠蒸馏/SFT 让整网 $q$ 逼近 $p$(§3)。

关键不在「层数越多越好」,而在 堆的是什么依赖

堆法补齐的依赖对 $\mathbb{E}[N_{\mathrm{acc}}]$ 的典型效果
加深并行 Transformer(DFlash)各位 共享 target 前缀,互不见 块内已猜 $x_{<i}$第 1 位随深度变强;第 2 位起缺 块内因果 → 接受率 快速衰减;加到 5 层也难救后缀
串行再算(Eagle3)每步 draft 显式看见 上一位已猜 token后缀稳定/上升;代价是 $K\tau_q$ 随块长 线性涨(§4)
并行主干 + 顺序模块(DSpark)单轮 draft 一次前向并行猜 $K$ 位(尤其保第 1 位);马尔可夫/RNN 头 逐位注入 $x_{i-1}$2 层 总深度即可超过 5 层 纯并行 DFlash(上表实证句)
DSpark 半自回归候选生成:并行主干一次猜 K 位,顺序头逐位补因果,q 对齐 target 校验 p

图示详情

因此 DSpark 的「堆叠」是 两阶段叠在同一轮 draft:先用并行主干 一次前向出整块 $K$ 位(低 $\tau_q$、第 1 位接近 DFlash),再用极轻的顺序头做 因果方向的层叠(等价于在后缀位上补 Eagle 式依赖,而不付满额 $K$ 次串行大前向)。V3 MTP 因果链(Main → MTP-1 → MTP-2)则是 target 权重内的另一种「按步数堆模块」:每多一块 MTP 模块,多预测更远 $t{+}k$,推理可作原生 draft(§2)。

答疑酱紫君解读:并行主干 vs 顺序头为何 $\tau_q$ 主次分明

文献与对照DSpark_paper.pdf(Semi-Autoregressive Draft;深度 vs 接受长度消融)· §2 MTP 因果链 · MTP 投机解码总览图 · 加速比读法 §4 · 酱紫君解读:半自回归 draft

6.2 置信度调度验证

  1. 每候选位置输出 置信度(此前缀全接受条件下该 token 存活概率);
  2. 验证集 温度缩放 校准置信度 $\approx$ 经验接受率;
  3. 硬件感知前缀调度器:结合并发请求置信度 + 实测吞吐量曲线,为每请求动态选验证长度,最大化全局吞吐

负载自适应:低并发验证 4–6 token;高并发 平滑缩短,避免争用。

答疑酱紫君解读:验证截断对效率与准确率的影响

DSpark 置信度调度验证:逐位置信度、温度缩放校准、硬件感知前缀调度与负载自适应

图示详情


7. DSpark 离线基准

Target:Qwen3(4B/8B/14B)、Gemma4-12B · 对比:Eagle3、DFlash 任务:数学 / 代码 / 对话(GSM8K、MATH500、AIME25、MBPP、HumanEval、LiveCodeBench、MT-Bench 等)

指标结果
平均每轮接受长度DSpark 全面优于 两基线
Qwen3-4Bvs Eagle3 +30.9%,vs DFlash +16.3%

8. V4 生产部署

配置
绑定模型V4-Flash / V4-Pro 预览引擎
并行主干3 MoE 层 + 滑动窗口注意力
最大候选块5(DSpark-5)
顺序模块马尔可夫头
对比基线MTP-1

9. 训练与在线引擎

范畴DSpark 线上推理(§8、§10)不改 V4 基座权重,是纯 decode 加速栈。**本节「训练」DeepSpec外挂 draft 模块(DSpark / DFlash / Eagle3)的 训练与蒸馏管线「在线引擎」**指该 draft 接入 V4 预览引擎后的调度与 kernel 集成。二者都不是 V3/V4 主模型预训练

答疑酱紫君解读:draft 训练 vs 主模型 fine-tune

9.1 训练优化

优化说明
隐状态通信只传 target hidden state,不传词表 logits:$O(V) \to O(d)$
锚点定长打包多预测块压成密集 batch,减 padding 浪费

9.2 引擎集成

约束对策
CUDA Graph 需提前定 batch 大小异步调度:截断长度用 两轮前 历史置信度预测
动态变长验证 → kernel padding 浪费token 展平 + 稀疏 attention 标记张量 传依赖;改索引 attention / 压缩 kernel

10. 在线生产实测

真实用户流量(2026-06 报道口径):

V4-Flash

SLA(单用户 $\ge$ … token/s)聚合吞吐量 vs MTP-1
80+51%
120(MTP-1 近边界)+661%

V4-Pro

SLA聚合吞吐量
35 token/s+52%
50 token/s+406%

同等吞吐量下单用户速度 +57%–85%


11. 局限与边界

局限:调度器截断后缀后,并行主干仍生成完整候选块;低接受率复杂查询的草稿算力 不可回收

说明
不是新基座V4 同 checkpoint;DeepSeek-V4-*-DSpark = target + 投机模块
不是 KV / offloadESSIndex Share 正交
不是 V3 MTP 论文本身MTP 是训练结构;DSpark 是 V4 线上 独立 draft/verify 栈,基线 MTP-1

12. 开源与外部材料

DeepSpec

内容说明
DSparkconfig/dspark/、评测、检查点
DFlash / Eagle3对照草稿训练评测
推理inference/ 最小 demo
论文DSpark_paper.pdf
HFDeepSeek-V4-Pro-DSpark

第三方解读

材料说明
酱紫君(GalAster):DSpark 与投机解码投机背景、半自回归 draft、验证截断、MTP 融合、draft 训练 vs fine-tune;知乎原文
批量验证机制笔记目标模型单次前向并行验 K 个 draft token

13. 在全景中的位置

层级投机解码 / DSpark
模型结构MTP 属 架构-train
Decode infraDSpark、MTP 投机调度 → 100% 架构-infer
KV / 长上下文否 → 基础设施线

14. 参考

  1. DeepSeek-AI & Peking University. DSparkDeepSpec
  2. DeepSeek-AI. DeepSeek-V3 Technical Report. arXiv:2412.19437 — MTP 训练与推理复用
  3. DeepSeek-AI. DeepSeek-V4. arXiv:2606.19348
  4. Leviathan, Y., Kalman, M., & Matias, Y. Fast inference from transformers via speculative decoding. 2022.
  5. IT之家. DeepSeek 联合北大发布 DSpark. 2026-06-27