DeepSpec:DeepSeek 开源投机解码全栈训练框架,两天狂揽 1300 星
DeepSeek 又双叒叕开源了。这次不是模型本身,而是一套完整的投机解码(Speculative Decoding)训练和评估框架——DeepSpec。上线两天 GitHub 星标突破 1300,社区已经有人提交 PR 增加新的解码算法。如果你正在为 LLM 推理成本发愁,这个项目值得认真看看。
一、它是什么

在聊 DeepSpec 之前,先搞清楚投机解码到底在解决什么问题。
传统自回归推理(Autoregressive Decoding)的痛点很简单:每生成一个 token,都要把完整模型跑一遍。一个 34 层的模型生成 100 个 token,就是 100 次完整前向传播。GPU 算力大量浪费在串行等待上。
投机解码的核心思路是:用一个小而快的「草稿模型」(Draft Model)先猜好几个 token,再让大模型一次性验证。如果猜对了(概率很高),就直接接受;猜错了,从错误点截断重新生成。
这个思路并不新鲜,但 DeepSpec 的价值在于:它把整个训练流程做成了开箱即用的全栈工具链——从数据准备、模型训练到基准评估,一条命令搞定。
二、DeepSpec 是什么
DeepSpec 是 DeepSeek 官方开源的投机解码全栈代码库(MIT 协议),包含三个核心组件:

数据准备:下载训练数据集(mlabonne/open-perfectblend),用目标模型重新生成答案,预计算 Target Cache。注意:默认配置下的 Target Cache 约 38 TB——是的,你没看错。
模型训练:支持三种 Draft Model 算法,8 GPU 单节点即可开训。
基准评估:内置 9 个评估数据集,覆盖数学推理、代码生成、通用对话三大维度。
三、三种算法,各有所长
DeepSpec 内置了三种投机解码算法,覆盖从前沿研究到成熟基线的全谱系:
3.1 DSpark:DeepSeek 的新王牌
DSpark 是 DeepSeek 自研的算法,随 DeepSpec 一同发布(论文 DSpark_paper.pdf 已包含在仓库中)。它的核心设计有两个创新点:
Markov Head:用一个低秩线性映射(rank=256)从目标模型的中间层特征预测下一个 token。不需要完整的 Transformer 前向传播,只需要一次矩阵乘法。
Confidence Head:额外训练一个置信度分类器,判断 Draft Model 的预测是否可靠。不可靠的位置直接截断,避免浪费 Target Model 的验证算力。
从配置文件可以看到 DSpark 的具体参数:
- block_size = 7(每个 anchor 预测 7 个 token)
- num_draft_layers = 5(Draft Model 只有 5 层,目标模型 34 层)
- target_layer_ids = [1, 9, 17, 25, 33](从目标模型的 5 个均匀分布层提取特征)
- num_anchors = 512(每序列最多 512 个锚点)
训练超参:学习率 6e-4,全局 batch size 512,bf16 精度,10 个 epoch。
3.2 DFlash:轻量级选手
DFlash 来自 z-lab 团队(arxiv 2602.06036),核心思路是用线性映射 + FlashAttention 构建 Draft Model。相比 DSpark 的多头设计,DFlash 更简洁,训练速度更快,适合资源有限的场景。
3.3 Eagle3:社区成熟方案
Eagle3 来自 SpecForge 项目(arxiv 2503.01840),是目前社区使用最广泛的投机解码算法之一。DeepSpec 对 SpecForge 的代码进行了适配和整合,保留了原版的 Eagle3 建模、损失函数和优化器实现。
四、支持的目标模型
DeepSpec 目前支持四个目标模型的配置:
| 模型 | 参数量 | 配置文件 |
|---|---|---|
| Qwen3-4B | 4B | dspark_qwen3_4b.py |
| Qwen3-8B | 8B | dspark_qwen3_8b.py |
| Qwen3-14B | 14B | dspark_qwen3_14b.py |
| Gemma4-12B | 12B | dspark_gemma4_12b.py |
每个模型都有 DSpark、DFlash、Eagle3 三种算法的配置。扩展到其他模型也很方便——改 config 里的 target_model_name_or_path 和 target_layer_ids 即可。
五、评估体系:9 大基准全覆盖
DeepSpec 内置了 9 个评估数据集,按任务类型分为三组:
数学推理:GSM8K、MATH500、AIME24、AIME25
代码生成:HumanEval、MBPP、LiveCodeBench
通用对话:MT-Bench、Alpaca、Arena-Hard-v2
评估脚本会计算投机解码的「接受率」(acceptance rate)——即 Draft Model 猜对的 token 比例。接受率越高,推理加速越明显。一般经验是:数学推理场景接受率较高(因为答案相对确定),开放对话场景接受率偏低(因为表达方式多样)。
六、38 TB 的 Target Cache 是怎么回事
DeepSpec 的训练流程有一个让人惊讶的数字:默认 Qwen3-4B 配置的 Target Cache 约 38 TB。
这不是 DeepSpec 的 bug,而是投机解码训练的固有需求。训练 Draft Model 需要目标模型每一层的 hidden states 作为监督信号。对于一个 34 层、hidden_dim=2560 的模型,每个 token 的 hidden states 就是 34 × 2560 × 2(bf16)≈ 170 KB。乘以训练集的 token 总量,很容易达到 TB 级别。
好消息是,你可以通过减少训练数据量或减少捕获层数(target_layer_ids)来压缩 Cache 大小。
七、与 RTK 的互补关系
如果你读过之前介绍的 RTK,可能会问:这俩有什么区别?
RTK 是 prompt 层面的优化——它通过 CLI 代理压缩输入 context,减少 token 消耗。相当于「省油驾驶」。
DeepSpec 是 inference 层面的优化——它通过 Draft Model 减少推理计算量。相当于「换一台更高效的发动机」。
两者完全可以叠加使用:RTK 减少输入 token,DeepSpec 加速输出 token,双管齐下。
八、局限性
DeepSpec 很强,但也有明显的边界:
硬件门槛高:默认配置需要 8 GPU 单节点(A100/H100 级别),Target Cache 需要 38 TB 存储。个人开发者基本跑不起来完整的训练流程。
目标模型有限:目前只有 Qwen3 和 Gemma4 的配置,不支持 DeepSeek 自家的 V3/R1 模型(这可能是策略性选择——自家模型有更好的推理优化方案)。
不包含推理引擎集成:DeepSpec 只负责训练 Draft Model,不包含推理引擎(如 SGLang、vLLM)的集成代码。你需要自己把训练好的 Draft Model 接入推理引擎。
学术导向:仓库附带了 DSpark 论文(700+ KB 的 PDF),评估体系覆盖 9 个 benchmark——这些都说明它更偏向研究和复现,而非生产部署。
九、社区反响
DeepSpec 上线两天就获得了 1300+ 星标,Hacker News 上线当天就有讨论帖。社区已经开始活跃:
- 用户请求发布预训练的 Draft Model 权重(Issue #3,2 个 👍)
- 社区贡献者 catnanami 提交了 PR,增加 D2SD(Dual Diffusion Speculative Decoding)训练支持(PR #2,引用了 arxiv 2606.04446 论文)
- 多个 AI 新闻聚合器和中文技术社区在 24 小时内收录
十、快速上手
1 | # 克隆仓库 |
完整文档见仓库 README 和 scripts/data/README.md。
相关链接
- 标题: DeepSpec:DeepSeek 开源投机解码全栈训练框架,两天狂揽 1300 星
- 作者: Seven
- 创建于 : 2026-06-28 16:00:00
- 更新于 : 2026-07-14 00:18:14
- 链接: https://blog.oneiseven.top/2026/06/28/DeepSpec-DeepSeek开源投机解码全栈训练框架/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。