Loading...

文章背景图

DeepSpec:投机采样 draft 模型训练与评估全栈代码库指南

2026-10-27
0
- 字
- 分钟
|

DeepSpec:投机采样 draft 模型训练与评估全栈代码库指南

DeepSpec 是 DeepSeek 开源的投机采样(speculative decoding)draft 模型训练与评估全栈代码库,包含数据准备工具、draft 模型实现(DSpark、DFlash、Eagle3)、训练代码与评估脚本,用于降低大模型推理延迟。

一、项目官方信息

项目 信息
GitHub 仓库 https://github.com/deepseek-ai/DeepSpec
论文 DSpark(arXiv:2607.05147)
开源协议 MIT
主要语言 Python(98.0%)
Star 数 7.3k+
支持算法 DSpark、DFlash、Eagle3

二、官方图片

DeepSpec 仓库社交预览图:

DeepSpec

三、环境要求

  • Linux + 多 GPU 节点(默认配置假设单节点 8 卡);
  • Python 及 requirements.txt 中列出的依赖;
  • 数据准备阶段还需要一个推理引擎来服务目标模型以重新生成答案;
  • 目标模型如 Qwen/Qwen3-4B、google/gemma-4-12B-it。

四、部署步骤

1. 安装依赖

python -m pip install -r requirements.txt

2. 数据准备

按 scripts/data/README.md 的流程:

  1. 下载并切分训练数据;
  2. 重新生成答案;
  3. 准备目标模型缓存(注意:默认 Qwen/Qwen3-4B 设置下目标缓存可能非常大,约 38 TB)。

3. 训练

bash scripts/train/train.sh

train.sh 启动 train.py,每张可见 GPU 起一个 worker。通过 config_path 指定 config/ 下的配置(如 config/dspark/dspark_qwen3_4b.py),用 --opts 覆盖个别字段。检查点写到 ~/checkpoints/<project_name>/<exp_name>/step_*。

4. 评估

bash scripts/eval/eval.sh

eval.sh 在 eval_datasets/(gsm8k、math500、aime25、humaneval、mbpp、livecodebench、mt-bench、alpaca、arena-hard-v2)上评估投机采样接受率。需设置 target_name_or_path(目标模型)与 draft_name_or_path(draft 检查点)。

五、使用方法

工作流三阶段

  1. 数据准备:下载 prompt、重新生成目标答案、构建目标缓存;
  2. 训练:基于缓存的目标输出训练 draft 模型;
  3. 评估:在基准任务上衡量投机采样接受率。

已发布检查点

仓库提供了 Eagle3 / DFlash / DSpark 在 Qwen3-4B/8B/14B、gemma-4-12B-it 上的检查点(见 README 表格,发布在 Hugging Face deepseek-ai 账号下),可直接用于评估或二次微调。

支持的算法

  • DSpark:置信度调度的半自回归投机采样;
  • DFlash:DFlash draft 模型设计;
  • Eagle3:Eagle3 draft 模型(整体训练框架与 Eagle3 实现部分改编自 SpecForge)。

六、常见问题 FAQ

Q1:DeepSpec 是什么? 投机采样 draft 模型的全栈代码库,覆盖数据准备、训练、评估,支持 DSpark/DFlash/Eagle3。

Q2:默认需要多少 GPU? 默认配置假设单节点 8 GPU;卡少就减小 CUDA_VISIBLE_DEVICES。

Q3:目标缓存有多大? 默认 Qwen/Qwen3-4B 设置下目标缓存约 38 TB,需预留大量磁盘。

Q4:怎么训练? bash scripts/train/train.sh,用 config_path 指定配置。

Q5:怎么评估? bash scripts/eval/eval.sh,指定 target 与 draft 路径即可在多个基准上测接受率。

Q6:有现成检查点吗? 有,Eagle3/DFlash/DSpark 在 Qwen3 与 gemma-4 上的检查点发布在 Hugging Face deepseek-ai 账号下。

七、跳转链接

评论交流

文章目录