数据截至 (上游 commit 1416fa0cf215)
01 · 复现路线全景:从 R1 数据到蒸馏模型
这一章讲什么: DeepSeek-R1 论文的训练管线被拆成了哪三步、各自验收标准是什么;然后沿着唯一已完成的「蒸馏路线」走一遍——R1 推理轨迹怎么批量生成、数据怎么混配、OpenR1-Distill-7B 那份 SFT 配方里每个关键参数在解决什么问题。
1. 它要解决的小问题
DeepSeek-R1 论文给了结果和路线,没给代码、没给数据、没给超参数。「复现 R1」因此不是一个任务,而是一串任务:先得造出训练数据,再谈训练。
Open R1 的应对是把大目标切成三步可独立验收的子目标(README.md:33-36):
| 步骤 | 目标 | 验收物 | 状态(as-of 本 commit) |
|---|---|---|---|
| Step 1 | 复现 R1-Distill:蒸馏 R1 的高质量语料训小模型 | Mixture-of-Thoughts 数据集 + OpenR1-Distill-7B | 已完成(README.md:44) |
| Step 2 | 复现 R1-Zero:纯 RL 从基座练起 | 数学/推理/代码的大规模可验证数据集 + GRPO 管线 | 进行中(管线已就绪) |
| Step 3 | 基座模型 → 多阶段训练 → RL 调优的全链路 | 端到端配方 | 进行中 |
这个拆法本身就值得学:每一步都产出一个独立可用的东西(数据集、管线、配方),而不是憋一个大 release。
2. 直觉:为什么「蒸馏」先行
三步里先做的是蒸馏,原因很务实——它是唯一不需要解决开放问题的一步:
- 教师模型现成的(DeepSeek-R1 开放权重);
- SFT 训练是成熟技术,trl 的
SFTTrainer直接用; - 验收标准明确:分数对齐 DeepSeek 官方的 R1-Distill-Qwen-7B。
所以 Step 1 的全部难点压缩成一个问题:怎么造出几十万条「对的」长推理轨迹。这也正是本仓库数据侧代码(生成、去污染、过滤)比训练侧厚得多的原因。