首页 / 开源热榜 / DeepSpec / 使用教程

DeepSpec 中文教程:小规模跑通数据、训练与评估

更新于 2026-09-23 · NGJOO AI 实验室 · 约 11 分钟

DeepSpec 是 DeepSeek 发布的推测解码草稿模型训练与评估代码库。它支持 DSpark、DFlash 和 Eagle3,把数据准备、目标缓存、训练和接受率评估放在同一条流水线里。

不要直接运行默认全量脚本:官方数据文档写明,默认 Qwen3-4B 目标缓存约 38 TB;默认脚本还假设单机 8 张 GPU。第一次应该只验证少量样本。

1. 先看清楚它会生成什么

  1. 下载并切分提示数据。
  2. 调用目标模型重新生成答案。
  3. 为每个 token 预计算目标模型隐藏状态,写入 target cache。
  4. 用缓存训练草稿模型。
  5. 把草稿模型与同一个目标模型组合,评估接受情况。

这几个阶段有严格的上下游关系。换目标模型、采样参数或 thinking 设置后,旧答案和旧缓存不一定还能代表新的实验条件。

2. 建立隔离环境

git clone https://github.com/deepseek-ai/DeepSpec.git
cd DeepSpec
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

官方 requirements 固定了 PyTorch 2.9.1、Transformers 5.10.2、Triton 3.5.1 等版本。安装前先根据驱动和 CUDA 选择合适的 PyTorch wheel;不能只看 pip 成功就认定 GPU 环境可用。

3. 用少量数据验证前两步

官方完整命令在 Data Preparation。第一次运行时先把数据量缩到很小,并只启动一个目标服务。目标服务必须提供 OpenAI 兼容的 /v1 接口;示例使用 SGLang,但它不在 requirements.txt 中,需要单独安装。

# 先阅读参数,不直接跑默认 8-worker 脚本
python scripts/data/download_and_split.py --help
python scripts/data/generate_train_data.py --help
python scripts/data/prepare_target_cache.py --help

验证生成的 JSONL 是否含预期轮次,失败样本是否进入错误文件。停止目标服务后再构建缓存,避免训练前就把同一批 GPU 和显存占满。

4. 控制缓存规模

目标缓存会随样本数、序列长度、隐藏维度和捕获层数增长。先使用小训练集,并在算法配置中减少 model.target_layer_ids。把输出目录放在有配额监控的专用磁盘,运行前后记录:

只有小样本比例符合预期,才可以估算更大任务;不要只根据“约 38 TB”反推所有模型的空间。

5. 训练和评估必须使用匹配配置

# 打开脚本,先修改 config_path、target_cache_dir 和 CUDA_VISIBLE_DEVICES
sed -n '1,220p' scripts/train/train.sh
bash scripts/train/train.sh

# 设置相同的 target 与训练后的 draft checkpoint
sed -n '1,220p' scripts/eval/eval.sh
bash scripts/eval/eval.sh

官方发布的检查点覆盖 Qwen3 4B/8B/14B 和 Gemma 4 12B。论文表格的检查点使用 open-perfectblend 数据,并由对应目标模型在 non-thinking 模式下生成答案。模型、数据或 thinking 模式不一致时,不能把接受率直接并列。

6. DeepSpec 与 SpecForge 的区别

维度DeepSpecSpecForge
重点DeepSeek 的 DSpark、DFlash、Eagle3 训练与论文复现面向 SGLang 的较广训练和部署生态
公开流程数据重生成、目标缓存、训练、接受率评估online/offline、分离式拓扑、FSDP 与导出
合适场景对齐 DeepSpec 论文设置和发布检查点持续维护多种训练拓扑并接入 SGLang serving

DeepSpec 的 README 明确说明它有一部分框架和 Eagle3 代码来自 SpecForge。选择时应看实验目标,而不是按 star 数决定。

7. 本次验证边界

验证状态:本次只核对官方 README、requirements、数据准备文档、LICENSE、NOTICE 和 GitHub API;没有下载模型,也没有运行 GPU 任务。

已经确认:三阶段数据流程、三种算法、默认 8 GPU 假设、约 38 TB 缓存警告、评测集合和无正式 Release 均有官方依据。

没有验证:依赖安装、目标推理服务、缓存实际体积、GPU 显存、训练收敛、检查点质量、接受率和端到端加速。本文不把仓库脚本说明写成本站实测结果。

这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。

先判断这个项目是否适合你

适合谁用

适合研究 DSpark、DFlash 或 Eagle3 的算法复现、消融实验、跨目标模型接受率比较,以及在自有领域数据上重新训练草稿模型。它不是下载后即可替代现有推理服务的终端应用。

采用建议

DeepSpec 适合有多 GPU 和大容量存储、需要复现或改进推测解码草稿模型的研究团队。首次尝试应从小样本和小缓存开始,把数据、目标服务、缓存、训练、评估逐段验通;没有相应硬件或只想部署现成推理服务时,不适合直接照搬默认流水线。

原教程未展开的系统信息

核心功能

  • 三阶段数据流水线

    下载并切分提示数据,通过 OpenAI 兼容推理服务重生成答案,再预计算训练所需的目标模型隐藏状态缓存。

常见问题

DeepSpec 第一次运行真的需要准备约 38 TB 吗?

默认 Qwen3-4B 全量目标缓存约 38 TB,但首次验证不应照跑全量。可以缩小训练集,并减少配置中的目标层数量,让缓存随样本、序列长度和隐藏维度下降。

DeepSpec 自带目标模型推理服务吗?

不自带完整推理引擎。重生成答案需要另行启动 OpenAI 兼容服务;官方示例使用 SGLang,也允许替换为 vLLM、TGI 等兼容实现。

少于 8 张 GPU 能运行 DeepSpec 吗?

可以调整示例脚本中的 CUDA_VISIBLE_DEVICES 和 worker 数,但速度、显存和配置是否合适要自行验证。README 只说明默认脚本按单机 8 GPU 设置。

DeepSpec 有可直接安装的稳定 Release 吗?

截至 2026-09-23,官方 GitHub Releases 页面为空。当前只能以主分支代码和官方发布的 Hugging Face 检查点作为明确基线。