← 中文导读 · ← 仓库首页(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 / 基础设施线 只保留链接,细节以本文为准。
- 投机解码把 k 次搬大模型权重压成 1 次 target 前向 + 便宜 draft。
- V3 MTP 链可做 draft;V4 生产侧 DSpark 为半自回归 draft + 置信度调度验证。
- 与 HiSparse 正交,可叠加提升 decode 吞吐。
- 开源参考:DeepSpec。
场景:单流(batch=1)、自回归 decode。下文以 gpt2-small draft + gpt2-xl target 为例说明通用机制;DeepSeek 路线见 §2,自测数据见 §3。
自回归生成严格串行:第
在 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 流)。
| 出 4 个 token 时($k{=}4$) | |
|---|---|
| 传统 | xl |
| 投机 | small 猜 |
① Draft(便宜)猜
- 例:gpt2-small 权重约为 gpt2-xl 的
$\sim 1/12$ ,搬一次快得多。 - 小模型自回归猜出
$k$ 个候选,总代价远低于 xl 跑一步。 - 生产里 draft 也可来自 MTP 头、DSpark 草稿模块等(§2、§5),循环相同。
② Target(贵,但每轮只一次)并行验证这
- 把
$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 成本 | 猜 |
| 验证占用(高并发) | target 算力是否花在「高存活概率」前缀上(DSpark §6) |
设单次 target 前向耗时
| 传统($k$ 步) | 投机($k$ 候选,全接受) | |
|---|---|---|
| target 前向 |
|
1 次 |
| 产出 token | ||
| 单次 target 耗时 |
-
猜得准:1 次 target 吐出多个 token → 理论
$\approx k\times$ ,实际约 2–3×(§3 Qwen 自测 2.4–2.9×),需扣除 draft 开销。
lossless:rejection sampling 保证与「逐 token 采样 target」同分布;draft 只改
答疑:接受路径、拒绝路径与 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{小常数})$ ,略慢但不翻车。
-
gpt2-small(124M)+ gpt2-xl(1.5B):同 GPT-2 BPE、同词表,draft 权重约 target 的
$1/12$ ,无需训练即可验证约 2× 延迟收益;机理见 §1.1–§1.2。 - Qwen3-4B + 0.6B draft:本仓库 vLLM 自测见 §3。
V3 技术报告 引入 Multi-Token Prediction(MTP):在 主 next-token 目标 之外,用
中间 token 融合读图:MTP 融合 scheme · MTP 融合 scheme 图
训练目标:
- 主目标:提升主模型性能、数据效率。
- 推理:可 丢弃 MTP 模块、主模型独立 decode;也可 复用 MTP 模块做 speculative decoding 进一步降延迟。
V4 保留 MTP 模块与训练目标(与 V3 同族实现)。
| 维度 | 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 从哪来。
V4 Flash / Pro 预览引擎在 DSpark 上线前,生产环境采用 MTP-1:基于 MTP 的 单 token 推测解码基线(每轮 propose/verify 粒度为 1)。DSpark 相对 MTP-1 报告线上增益(§8),不是相对「无投机纯自回归」。
性质:本仓库 2026-06 自测(vLLM 0.8.5,1000 条样本,单卡 L20)。非 DeepSeek MTP 官方数据,非 DSpark。
| 项 | 值 |
|---|---|
| 基线 | Qwen3-4B-Instruct nospec |
| 投机 | 4B target + 0.6B draft |
| 基线 RT | 459 ms / 条 |
| 方法 | mean RT | 加速比 |
|---|---|---|
| 4B nospec(基线) | 459 ms | 1.00× |
| vLLM ngram / PLD(无 draft) | 369 ms | 1.99× |
| Prefix cache + nospec | 454 ms | 1.61× |
| Draft 投机(4B + 0.6B) | 303 ms | 2.41× |
| Prefix cache + draft | 298 ms | 2.46× |
| Draft + target FP8 | 256 ms | 2.86× |
| Draft + target INT8 离线 | 272 ms | 2.69× |
| 手写 vanilla draft PoC | 1432 ms | 0.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 投机链路上 每轮平均接受长度 的量级,可与下文各草稿范式的块长、接受率对照阅读。
每轮投机:草稿模型
设计目标:要把
$S_{\uparrow}$ 做大,需 同时抬高$\mathbb{E}[N_{\mathrm{acc}}]$ (draft 猜得准、接受得长)并 压低$K\tau_q$ (draft 生成别太慢)。两项目标往往拉扯——下文各范式正是在这对矛盾上的不同取舍。
在 DSpark(及同期工业界的半自回归路线)成熟之前,外挂草稿
自回归 vs 半自回归:自回归(Eagle3)按 token 串行猜 draft,$\mathbb{E}[N_{\mathrm{acc}}]$ 高但
$K\tau_q$ 随块长 线性涨;半自回归(DSpark)先 并行出整块(压低$\tau_q$ 侧),再用轻量 顺序头逐位补依赖(抬$\mathbb{E}[N_{\mathrm{acc}}]$ 后缀)——并行拿速度,顺序补准确率。
| 路径 | 代表 | Draft 生成 | 对 |
|---|---|---|---|
| MTP 原生 | V3/V4 MTP 头 | 同模型辅助头,可 MTP-1 单步 |
|
| 自回归外挂 | Eagle3 | 逐 token 串行 | 抬 |
| 并行外挂 | DFlash | 一次前向整块 | 压 |
| 半自回归外挂 | DSpark | 并行主干 + 顺序头 | 两者折中;V4 线上相对 MTP-1 |
| 独立小模型 | Qwen 0.6B draft | 另一套权重 | §3 自测量级参照 |
| 范式 | 优势 | 瓶颈 |
|---|---|---|
| Eagle3 | 块内依赖强、接受率稳 | draft 延迟 |
| DFlash | draft 延迟几乎与 |
第 2 位起 |
| DSpark | 一次并行出整块 + 后缀顺序补依赖 | 并行主干仍须生成完整 |
DSpark:面向 V4-Flash / V4-Pro 预览引擎 高并发 decode。用 半自回归草稿 + 置信度调度验证,相对生产基线 MTP-1,在 同等吞吐量 下单用户生成速度 +57%–85%(报道区间 60%–85%)。论文、训练代码、检查点:DeepSpec。
| 阶段 | 做什么 |
|---|---|
| 并行主干(DFlash 改进) | 一次前向 → 整块 hidden + 基础 logits |
| 轻量顺序模块 | 逐 token 注入前缀依赖:马尔可夫头(仅 |
2 层 Transformer 深度的 DSpark 在测试领域 平均每轮接受长度 超过 5 层 DFlash。
| 位置 | DFlash | Eagle3 | DSpark |
|---|---|---|---|
| 第 1 位 | 高(深并行网) | 受浅网限制 | 第 1 位 接近深并行网 |
| 第 2 位起 | 快速衰减 | 稳定/上升 | 顺序模块 缓解衰减 |
投机解码的瓶颈在 块内逐位条件分布 是否与 target 对齐:第
外挂 draft(Eagle / DFlash / DSpark)的常见做法是:target 先给出(或缓存)某层 hidden
易混:MTP 原生 draft 不走「外挂
$f_{\mathrm{spec}}$ 」,而在 同一 checkpoint 内用 MTP 块接主模型 hidden 链出 logits(§2)。独立小模型 draft 甚至不读 target hidden,靠蒸馏/SFT 让整网$q$ 逼近$p$ (§3)。
关键不在「层数越多越好」,而在 堆的是什么依赖:
| 堆法 | 补齐的依赖 | 对 |
|---|---|---|
| 加深并行 Transformer(DFlash) | 各位 共享 target 前缀,互不见 块内已猜 |
第 1 位随深度变强;第 2 位起缺 块内因果 → 接受率 快速衰减;加到 5 层也难救后缀 |
| 串行再算(Eagle3) | 每步 draft 显式看见 上一位已猜 token | 后缀稳定/上升;代价是 |
| 并行主干 + 顺序模块(DSpark) |
单轮 draft 一次前向并行猜 |
2 层 总深度即可超过 5 层 纯并行 DFlash(上表实证句) |
因此 DSpark 的「堆叠」是 两阶段叠在同一轮 draft:先用并行主干 一次前向出整块
文献与对照:DSpark_paper.pdf(Semi-Autoregressive Draft;深度 vs 接受长度消融)· §2 MTP 因果链 · MTP 投机解码总览图 · 加速比读法 §4 · 酱紫君解读:半自回归 draft
- 每候选位置输出 置信度(此前缀全接受条件下该 token 存活概率);
- 验证集 温度缩放 校准置信度
$\approx$ 经验接受率; - 硬件感知前缀调度器:结合并发请求置信度 + 实测吞吐量曲线,为每请求动态选验证长度,最大化全局吞吐。
负载自适应:低并发验证 4–6 token;高并发 平滑缩短,避免争用。
Target:Qwen3(4B/8B/14B)、Gemma4-12B · 对比:Eagle3、DFlash 任务:数学 / 代码 / 对话(GSM8K、MATH500、AIME25、MBPP、HumanEval、LiveCodeBench、MT-Bench 等)
| 指标 | 结果 |
|---|---|
| 平均每轮接受长度 | DSpark 全面优于 两基线 |
| Qwen3-4B | vs Eagle3 +30.9%,vs DFlash +16.3% |
| 项 | 配置 |
|---|---|
| 绑定模型 | V4-Flash / V4-Pro 预览引擎 |
| 并行主干 | 3 MoE 层 + 滑动窗口注意力 |
| 最大候选块 | 5(DSpark-5) |
| 顺序模块 | 马尔可夫头 |
| 对比基线 | MTP-1 |
范畴:DSpark 线上推理(§8、§10)不改 V4 基座权重,是纯 decode 加速栈。**本节「训练」指 DeepSpec 里 外挂 draft 模块(DSpark / DFlash / Eagle3)的 训练与蒸馏管线;「在线引擎」**指该 draft 接入 V4 预览引擎后的调度与 kernel 集成。二者都不是 V3/V4 主模型预训练。
| 优化 | 说明 |
|---|---|
| 隐状态通信 | 只传 target hidden state,不传词表 logits:$O(V) \to O(d)$ |
| 锚点定长打包 | 多预测块压成密集 batch,减 padding 浪费 |
| 约束 | 对策 |
|---|---|
| CUDA Graph 需提前定 batch 大小 | 异步调度:截断长度用 两轮前 历史置信度预测 |
| 动态变长验证 → kernel padding 浪费 | token 展平 + 稀疏 attention 标记张量 传依赖;改索引 attention / 压缩 kernel |
真实用户流量(2026-06 报道口径):
| SLA(单用户 |
聚合吞吐量 vs MTP-1 |
|---|---|
| 80 | +51% |
| 120(MTP-1 近边界) | +661% |
| SLA | 聚合吞吐量 |
|---|---|
| 35 token/s | +52% |
| 50 token/s | +406% |
同等吞吐量下单用户速度 +57%–85%。
局限:调度器截断后缀后,并行主干仍生成完整候选块;低接受率复杂查询的草稿算力 不可回收。
| 项 | 说明 |
|---|---|
| 不是新基座 | 与 V4 同 checkpoint;DeepSeek-V4-*-DSpark = target + 投机模块 |
| 不是 KV / offload | 与 ESS、Index Share 正交 |
| 不是 V3 MTP 论文本身 | MTP 是训练结构;DSpark 是 V4 线上 独立 draft/verify 栈,基线 MTP-1 |
| 内容 | 说明 |
|---|---|
| DSpark | config/dspark/、评测、检查点 |
| DFlash / Eagle3 | 对照草稿训练评测 |
| 推理 | inference/ 最小 demo |
| 论文 | DSpark_paper.pdf |
| HF | DeepSeek-V4-Pro-DSpark |
| 材料 | 说明 |
|---|---|
| 酱紫君(GalAster):DSpark 与投机解码 | 投机背景、半自回归 draft、验证截断、MTP 融合、draft 训练 vs fine-tune;知乎原文 |
| 批量验证机制笔记 | 目标模型单次前向并行验 K 个 draft token |
| 层级 | 投机解码 / DSpark |
|---|---|
| 模型结构 | MTP 属 架构-train |
| Decode infra | DSpark、MTP 投机调度 → 100% 架构-infer |
| KV / 长上下文 | 否 → 基础设施线 |
- DeepSeek-AI & Peking University. DSpark — DeepSpec
- DeepSeek-AI. DeepSeek-V3 Technical Report. arXiv:2412.19437 — MTP 训练与推理复用
- DeepSeek-AI. DeepSeek-V4. arXiv:2606.19348
- Leviathan, Y., Kalman, M., & Matias, Y. Fast inference from transformers via speculative decoding. 2022.
- IT之家. DeepSeek 联合北大发布 DSpark. 2026-06-27