DeepSeek-R1是AI发展进程中的最新重要成果。对机器学习研发社区而言,这一版本具有重要意义,原因包括:
- 该模型采用开放权重策略,并提供了经过蒸馏的较小版本
- 它公开分享了复现类似OpenAI O1推理模型的训练方法,并进行了深入分析
在本文中,我们将深入探讨其构建过程。
其他语言版本 : 中文, 韩文, 土耳其语 (欢迎翻译本文并提交翻译链接以供收录)
目录:
- 回顾:大语言模型的训练方式
- DeepSeek-R1训练方法
- 1- 长链推理SFT数据
- 2- 中间优质推理大语言模型(非推理任务表现较差)
-
3- 使用大规模强化学习创建推理模型
-
3.1- 大规模面向推理的强化学习(R1-Zero)
-
3.2- 使用中间推理模型创建SFT推理数据
- 3.3- 通用RL训练阶段
- 架构
与大多数现有的大语言模型类似,DeepSeek-R1采用逐词元生成方式,但其在解决数学和推理问题方面表现卓越,因为它能够通过生成解释思维链的思考词元(thinking tokens)来花费更多时间处理问题。
下图展示了创建高质量大语言模型的通用三阶段流程:
1) 语言建模阶段:使用海量网络数据训练模型预测下一个词元,得到基础模型
2) 监督微调阶段:使模型更好地遵循指令和回答问题,得到指令微调模型或SFT模型
3) 偏好对齐阶段:进一步优化模型行为并与人类偏好对齐,得到最终可在应用中使用的大语言模型
DeepSeek-R1训练方法DeepSeek-R1遵循这一通用流程。第一阶段的具体细节基于DeepSeek-V3模型的前期研究。R1使用该研究中的基础模型(非最终版DeepSeek-V3),同样经过SFT和偏好对齐阶段,但其具体实现方式有所不同。
R1创建过程中有三个关键特点值得关注:
1- 长链推理SFT数据
该阶段使用了大量长链思维推理示例(达60万个)。此类数据获取难度大,且在此规模下进行人工标注成本极高,因此其创建过程成为第二个关键特点。
2- 中间优质推理大语言模型(非推理任务表现较差)
这些数据由R1的一个前身模型生成,这是一个未命名的、专门擅长推理的兄弟模型。该模型的灵感来源于名为R1-Zero的第三个模型。其重要性在于仅需极少标注数据,结合大规模强化学习,就能产生擅长解决推理问题的模型。
该专业推理模型的输出可用于训练更通用的模型,使其在非推理任务上也达到用户期望的水平。
3- 使用大规模强化学习创建推理模型
该过程分为两个步骤:
3.1 大规模面向推理的强化学习(R1-Zero)
在此阶段,RL用于创建中间推理模型,该模型随后用于生成SFT推理示例。实现这一目标的关键是前期创建的DeepSeek-R1-Zero模型。
R1-Zero的特殊性在于无需标注的SFT训练集就能在推理任务中表现出色。其训练直接从预训练基础模型通过RL过程进行(跳过SFT阶段),性能足以与o1竞争。
这一突破意义重大,因为数据一直是机器学习模型能力的核心驱动力。该模型的成功基于两个关键因素:
- 现代基础模型已在质量和能力上达到特定阈值(该基础模型使用14.8万亿高质量词元训练)
- 与通用任务不同,推理问题可实现自动验证和标注
示例:推理问题的自动验证
考虑以下RL训练中的提示问题:
编写Python代码,接收数字列表并返回排序结果,同时在开头添加42
此类问题支持多种自动验证方式。模型生成的补全可进行以下验证:
- 代码语法检查器验证Python语法正确性
- 实际执行测试代码运行情况
- 其他编码大语言模型生成单元测试验证功能
- 进一步比较不同正确解决方案的执行性能
通过生成多个候选解决方案,系统可自动评估各方案质量:
自动评估结果显示:第一个补全非代码,第二个非Python代码,第三个功能不正确,第四个为正确解决方案。
这些评估信号直接用于模型改进,通过小批量处理和连续训练步骤实现持续优化。
奖励信号和模型更新的持续迭代使模型在RL训练过程中不断改进,如论文图2所示。
模型能力的提升伴随生成长度的增加,表现为生成更多思考词元来处理复杂问题。
尽管R1-Zero在推理任务上表现出色,但其在实际应用中存在局限性:
DeepSeek-R1-Zero虽然展现出强大的推理能力和自主发展的创新行为,但仍面临可读性差、语言混杂等挑战
R1旨在成为更实用的模型,因此在两个关键环节使用RL技术:
- 创建中间推理模型生成SFT数据点
- 训练R1模型改进推理和非推理任务性能
3.2 使用中间推理模型创建SFT推理数据
为提高中间推理模型的实用性,需对其进行监督微调训练,使用数千个推理问题示例(部分来自R1-Zero生成和筛选)。论文将此称为"冷启动数据":
2.3.1. 冷启动
与DeepSeek-R1-Zero不同,为避免从基础模型开始RL训练时的不稳定阶段,我们为DeepSeek-R1构建并收集了少量长链思维数据用于模型微调,作为初始RL行动者。数据收集方法包括:使用长链思维示例的少样本提示、直接提示模型生成带反思和验证的详细答案、收集R1-Zero的可读格式输出,以及人工标注后处理。
RL过程的必要性在于数据规模需求:虽然可获得数千个示例,但训练R1需要60万个示例,中间模型有效解决了这一数据缺口。
监督微调过程向模型提供提示和正确补全组成的训练示例:
3.3 通用RL训练阶段
此阶段使R1在推理和非推理任务上均表现出色。训练过程与前述RL流程类似,但针对非推理应用引入了帮助性和安全性奖励模型。
架构DeepSeek-R1采用Transformer解码器块堆叠架构,包含61个块体。前三个为稠密层,其余采用混合专家层设计。
模型维度和其他超参数配置如下:
详细架构信息参考以下技术文献:
结论
通过以上分析,读者应对DeepSeek-R1模型的核心原理建立清晰认知。
扩展阅读- 推理大语言模型可视化指南 - Maarten Grootendorst
- DeepSeek R1复现o1的方法与推理模型未来展望 - Nathan Lambert
- 混合专家模型可视化指南 - Maarten Grootendorst
- 测试时扩展推测分析 - Sasha Rush
- DeepSeekMath:开放语言模型数学推理极限突破 - Yannis Kilcher
- Open R1开源复现项目 - HuggingFace
- RL在RLHF中的重新定位
- Galactica论文(2022) - 包含专用思考词元等创新理念