deepseek-ai/DeepSpec

GitHub: deepseek-ai/DeepSpec

DeepSpec 是一个用于训练和评估推测解码 draft model 的全栈代码库,覆盖数据准备、模型训练和基准评估的完整流程。

Stars: 1110 | Forks: 85

# DeepSpec DeepSpec 是一个全栈代码库,用于训练和评估 speculative decoding 的 draft model。它包含数据准备工具、draft model 实现、训练代码和评估脚本。 ## 环境 安装 Python 依赖项: ``` python -m pip install -r requirements.txt ``` 数据准备在重新生成回答时还需要一个推理引擎来提供 target model 服务;详情请参阅 [scripts/data/README.md](./scripts/data/README.md)。 ## 工作流 按顺序执行各个阶段——每个阶段的输出将作为下一阶段的输入: 1. **数据准备** —— 下载 prompt,重新生成 target 回答,并构建 target cache。 2. **训练** —— 根据缓存好的 target 输出训练 draft model。 3. **评估** —— 在基准任务上衡量 speculative-decoding 的接受率。 ## 数据准备 有关逐步的数据 pipeline,请参阅 [scripts/data/README.md](./scripts/data/README.md): 1. 下载并拆分训练数据, 2. 重新生成回答, 3. 准备 target cache(存储警告:这可能会非常大——在默认的 `Qwen/Qwen3-4B` 设置下大约需要 38 TB)。 ## 训练 ``` bash scripts/train/train.sh ``` `train.sh` 会启动 `train.py`,后者会为每个可见的 GPU 生成一个 worker。通过将 `config_path` 指向 [config/](./config/) 下的某个配置(例如 `config/dspark/dspark_qwen3_4b.py`)来选择算法和 target model;请参阅脚本头部以获取完整的配置列表、了解如何覆盖 `config_path` / `target_cache_dir`,以及如何使用 `--opts` 来覆盖单个配置字段。检查点会被写入 `~/checkpoints///step_*`。 硬件:默认配置和脚本假设使用具有 8 个 GPU 的单个节点。如果 GPU 数量较少,请减少 `CUDA_VISIBLE_DEVICES`。 ## 评估 ``` bash scripts/eval/eval.sh ``` `eval.sh` 会运行 `eval.py`,针对训练好的 draft checkpoint 在 [eval_datasets/](./eval_datasets/) 中的 speculative-decoding 基准(gsm8k、math500、aime25、humaneval、mbpp、livecodebench、mt-bench、alpaca、arena-hard-v2)上进行评估。设置: - `target_name_or_path` —— 训练该 draft model 时所使用的 target model(例如 `Qwen/Qwen3-4B`), - `draft_name_or_path` —— draft checkpoint,例如 `~/checkpoints/deepspec/dspark_block8_qwen3_4b/step_latest`。 ## 支持的算法 目前,DeepSpec 包含三个 draft model:[DSpark](./DSpark_paper.pdf)、[DFlash](https://arxiv.org/abs/2602.06036) 和 [Eagle3](https://arxiv.org/abs/2503.01840)。 ## 许可证 DeepSpec 采用 [MIT 许可证](./LICENSE) 发布。它包含了改编自第三方项目的 代码,这些项目受其各自的许可证约束;完整的版权归属请参阅 [NOTICE](./NOTICE)。 ## 致谢 DeepSpec 建立在几个优秀的开源项目的思想和代码之上: - [SpecForge](https://github.com/sgl-project/SpecForge) (Apache-2.0) —— 整体训练框架和 Eagle3 实现;Eagle3 的部分建模、loss、optimizer、attention 和评估代码均改编自此。改编后的文件在文件内带有版权归属注释,完整的声明记录在 [NOTICE](./NOTICE) 中。 - [DFlash](https://github.com/z-lab/dflash) (MIT) —— DFlash 的 draft-model 设计和训练方案。 - [Qwen3](https://github.com/QwenLM/Qwen3) 和 [Gemma](https://github.com/google-deepmind/gemma) —— 本仓库支持的 target model 系列。 我们感谢这些项目的作者和维护者。欢迎贡献新的算法。
标签:DLL 劫持, PyTorch, 人工智能, 凭据扫描, 大语言模型, 推测解码, 推理加速, 模型训练, 深度学习, 用户模式Hook绕过, 逆向工具