【DeepSeek系列】04 DeepSeek-R1:带有冷启动的强化学习
文章目录
- 1、简介
- 2、主要改进点
- 3、两个重要观点
- 4、四阶段后训练详细步骤
- 4.1 冷启动
- 4.2 推理导向的强化学习
- 4.3 拒绝采样和有监督微调
- 4.4 针对所有场景的强化学习
- 5、蒸馏与强化学习对比
- 6、评估
- 6.1 DeepSeek-R1 评估
- 6.2 蒸馏模型评估
- 7、结论
- 8、局限性与未来方向
1、简介
DeepSeek-R1-Zero的提出,展现了其强大的推理能力,但是它也有一些缺点,例如可读性差和语言混用。为了解决这些问题并进一步提升推理性能,进一步推出了 DeepSeek-R1,它在 RL 之前引入了多阶段训练和冷启动数据。DeepSeek-R1 在推理任务上的表现与 OpenAI-o1-1217 相当。为了支持研究社区,团队开源了 DeepSeek-R1-Zero、DeepSeek-R1 以及基于 Qwen 和 Llama 从 DeepSeek-R1 蒸馏出的六个密集模型(1.5B、7B、8B、14B、32B、70B)。
2、主要改进点
DeepSeek-R1结合了少量冷启动数据和多阶段训练流程。具体而言:
- 首先收集数千条冷启动数据(长链式思考CoT示例)以微调 DeepSeek-V3-Base 模型。
- 随后,像 DeepSeek-R1-Zero 一样进行推理导向的 RL 训练。
- 在 RL 训练接近收敛时,通过拒绝采样在 RL 权重文件上生成新的 SFT 数据,并结合 DeepSeek-V3 在写作、事实问答和自我认知等领域的监督数据,然后重新训练 DeepSeek-V3-Base 模型。
- 经过新数据的微调后,模型权重会经历一个额外的 RL 过程,涵盖所有场景的提示。经过这些步骤,得到了一个称为 DeepSeek-R1 的模型,其表现与 OpenAI-o1-1217 相当。
团队进一步探索了从 DeepSeek-R1 到更小密集模型的知识蒸馏。使用 Qwen2.532B(Qwen, 2024b)作为基础模型,直接从 DeepSeek-R1 进行蒸馏的表现优于在其上应用 RL。这表明,大型基础模型发现的推理模式对于提升推理能力至关重要。团队开源了基于 Qwen 和 Llama(Dubey et al., 2024)系列的蒸馏模型。值得注意的是,蒸馏出的 14B 模型大幅超越了当前最先进的开源模型 QwQ-32B-Preview(Qwen, 2024a),而蒸馏出的 32B 和 70B 模型在密集模型的推理基准测试中创下了新的记录。
3、两个重要观点
后训练:在基础模型上进行大规模强化学习
- 直接在基础模型上应用 RL,而不依赖于有监督的微调(SFT)作为初步步骤。这种方法允许模型探索解决复杂问题的链式思考(CoT),从而开发出 DeepSeek-R1-Zero。DeepSeek-R1-Zero 展示了自我验证、反思和生成长链式思考的能力,这标志着研究社区的一个重要里程碑。值得注意的是,这是首次公开研究验证 LLMs 的推理能力可以通过纯 RL 激励,而无需 SFT。这一突破为该领域的未来发展铺平了道路。
- 介绍了开发 DeepSeek-R1 的流程。该流程包含两个 RL 阶段,旨在发现改进的推理模式并与人类偏好对齐,以及两个 SFT 阶段,作为模型推理和非推理能力的种子。我们相信这一流程将有助于行业开发更好的模型。
蒸馏:小模型也可以很强大
- 证明了大型模型的推理模式可以被蒸馏到小模型中,其表现优于通过在小模型上应用 RL 发现的推理模式。开源的 DeepSeek-R1 及其 API 将有助于研究社区在未来蒸馏出更好的小模型。
- 使用 DeepSeek-R1 生成的推理数据,我们微调了研究社区广泛使用的几种密集模型。评估结果表明,蒸馏后的小型密集模型在基准测试中表现出色。例如,DeepSeek-R1-Distill-Qwen-7B 在 AIME 2024 上达到了 55.5%,超过了 QwQ-32B-Preview。此外,DeepSeek-R1-Distill-Qwen-32B 在 AIME 2024 上达到了 72.6%,在 MATH-500 上达到了 94.3%,在 LiveCodeBench 上达到了 57.2%。这些结果显著优于之前的开源模型,并且与 o1-mini 相当。我们开源了基于 Qwen2.5 和 Llama3 系列的 1.5B、7B、8B、14B、32B 和 70B 检查点,供社区使用。
4、四阶段后训练详细步骤
受 DeepSeek-R1-Zero 令人鼓舞的结果启发,自然会提出两个问题:
- 1)通过引入少量高质量数据作为冷启动,是否可以进一步提升推理性能或加速收敛?
- 2)如何训练一个用户友好的模型,使其不仅能够生成清晰连贯的推理过程(Chain-of-Thought, CoT),还能展现出强大的通用能力?
为了解决这些问题,我们设计了训练 DeepSeek-R1 的流程。该流程包含四个阶段,具体如下。
4.1 冷启动
与 DeepSeek-R1-Zero 不同,为了避免从基础模型开始的 RL 训练在早期不稳定,DeepSeek-R1构建并收集了少量长链式思考(CoT)数据,用于微调模型作为初始的 RL 。为了收集这些数据,我们探索了多种方法:
- 使用长 CoT 示例作为少样本提示,直接提示模型生成带有反思和验证的详细答案,收集 DeepSeek-R1-Zero 输出并将其格式化为可读格式;
- 以及通过人类标注者对结果进行后处理以优化结果。
在本工作中,我们收集了数千条冷启动数据,用于微调 DeepSeek-V3-Base 作为 RL 的起点。与 DeepSeek-R1-Zero 相比,冷启动数据的优势包括:
- 可读性:DeepSeek-R1-Zero 的一个关键限制是其内容往往不适合阅读。回答可能会混用多种语言,或者缺乏用于突出显示答案的 Markdown 格式。相比之下,在为 DeepSeek-R1 创建冷启动数据时,我们设计了一种可读的模式,包括在每条回答的末尾添加总结,并过滤掉对读者不友好的回答。在这里,我们定义输出格式为 |特殊标记|<推理过程>|特殊标记|<总结>,其中推理过程是查询的 CoT,总结用于概括推理结果。
- 潜力:通过精心设计冷启动数据的模式并引入人类先验知识,我们观察到与 DeepSeek-R1-Zero 相比,模型表现更好。我们相信迭代训练是推理模型的更好方式。
4.2 推理导向的强化学习
在使用冷启动数据对 DeepSeek-V3-Base 进行微调后,我们应用了与 DeepSeek-R1-Zero 中相同的强化学习训练过程。这一阶段专注于提升模型在推理密集型任务(如编程、数学、科学和逻辑推理)中的推理能力,这些任务涉及定义明确且有明确答案的问题。
在训练过程中,我们观察到 CoT 经常出现语言混用,尤其是在涉及多种语言的 RL 提示时。为了缓解 CoT 中的语言混用问题,我们在 RL 训练中引入了语言一致性奖励,该奖励计算为 CoT 中目标语言单词的比例。尽管消融实验表明,这种对齐会导致模型性能略有下降,但这种奖励与人类偏好一致,使输出更具可读性。
最后,我们将推理任务的准确性奖励和语言一致性奖励直接相加,形成最终的奖励。然后我们在推理任务上对微调后的模型进行强化学习训练,直到模型收敛。
4.3 拒绝采样和有监督微调
当推理导向的强化学习收敛时,我们利用上述训练阶段得到的模型来收集下一轮的有监督微调(SFT)数据。与初始的冷启动数据(主要关注推理)不同,这一阶段结合了其他领域的数据,以增强模型在写作、角色扮演和其他通用任务中的能力。具体来说,我们按照以下方式生成数据并微调模型:
推理数据
- 我们策划了推理提示,并通过拒绝采样从上述强化学习训练阶段得到的模型生成推理轨迹。在前一阶段,我们仅包含可以使用基于规则的奖励进行评估的数据。然而,在这一阶段,我们通过扩展数据集,引入了一些额外的数据,其中一些使用生成式奖励模型,通过将真实答案和模型预测输入 DeepSeek-V3 进行判断。此外,由于模型输出有时会显得混乱且难以阅读,我们过滤掉了混用语言、长段落和代码块的 CoT。对于每个提示,我们采样多个回答,并仅保留正确的回答。总共收集了约 60 万条与推理相关的训练样本。
非推理数据
- 对于非推理数据(如写作、事实问答、自我认知和翻译),我们采用了 DeepSeek-V3 的流程,并重用了 DeepSeek-V3 SFT 数据集的部分内容。对于某些非推理任务,我们通过提示 DeepSeek-V3 生成潜在的 CoT,然后回答问题。然而,对于更简单的问题(如“你好”),我们不会提供 CoT 回答。最终,我们总共收集了约 20 万条与推理无关的训练样本。
我们使用上述策划的约 80 万样本数据集对 DeepSeek-V3-Base 进行了两个周期的微调。
4.4 针对所有场景的强化学习
为了进一步使模型与人类偏好对齐,我们实施了第二个强化学习阶段,旨在提升模型的有用性和无害性,同时优化其推理能力。具体来说,我们使用组合的奖励信号和多样化的提示分布来训练模型。
- 对于推理数据,我们遵循 DeepSeek-R1-Zero 中描述的方法,使用基于规则的奖励来指导数学、编程和逻辑推理领域的学习过程。
- 对于通用数据,我们则依赖于奖励模型来捕捉复杂且微妙场景中的人类偏好。我们基于 DeepSeek-V3 流程,采用了类似的偏好对和训练提示分布。
- 在有用性方面,我们仅关注最终总结,确保评估侧重于回答对用户的实用性和相关性,同时尽量减少对底层推理过程的干扰。
- 在无害性方面,我们评估模型的整个回答,包括推理过程和总结,以识别和减轻在生成过程中可能出现的任何潜在风险、偏见或有害内容。
最终,通过整合奖励信号和多样化的数据分布,我们训练出的模型不仅在推理方面表现出色,还优先考虑了有用性和无害性。
5、蒸馏与强化学习对比
作者在 Qwen-32B-Base 模型上进行了大规模强化学习训练,使用数学、编程和 STEM 相关数据,训练了超过 10,000 步,最终得到了 DeepSeek-R1-Zero-Qwen-32B。实验结果如表 6 所示,经过大规模强化学习训练的 32B 基础模型,其性能与 QwQ-32B-Preview 相当。然而,通过 DeepSeek-R1 蒸馏得到的 DeepSeek-R1-Distill-Qwen-32B 在所有基准测试中均显著优于 DeepSeek-R1-Zero-Qwen-32B。
因此,我们可以得出以下两个结论:
- 蒸馏的优势:将更强大的模型能力蒸馏到小型模型中能够取得优异的结果,而小型模型仅依靠本文提到的大规模强化学习,需要巨大的计算资源,并且可能无法达到蒸馏的效果。
- 超越的挑战:尽管蒸馏策略既经济又高效,但要突破智能的边界,可能仍需要更强大的基础模型和更大规模的强化学习
简而言之:小模型+蒸馏(使用DeepSeek-R1生成的数据)> 小模型 + 大规模强化学习训练的效果
6、评估
6.1 DeepSeek-R1 评估
表 4 展示了 DeepSeek-R1 与其他代表性模型在多个基准测试上的对比结果。在教育导向的知识基准测试(如 MMLU、MMLU-Pro 和 GPQA Diamond)中,DeepSeek-R1 相较于 DeepSeek-V3 展现出更优的性能。这一改进主要归因于在 STEM 相关问题上的准确率提升,而这些提升得益于大规模强化学习的应用。此外,DeepSeek-R1 在 FRAMES(一个依赖长文本上下文的问答任务)上表现出色,展现了其强大的文档分析能力。这突显了推理模型在 AI 驱动的搜索和数据分析任务中的潜力。在事实基准测试 SimpleQA 上,DeepSeek-R1 优于 DeepSeek-V3,显示出其处理基于事实查询的能力。在这一基准测试中,OpenAI-o1 同样超越了 GPT-4o。
然而,在中文 SimpleQA 基准测试中,DeepSeek-R1 的表现不如 DeepSeek-V3,主要原因在于经过安全性强化学习后,DeepSeek-R1 倾向于拒绝回答某些查询。在不进行安全性强化学习的情况下,DeepSeek-R1 的准确率可以超过 70%。
在 IF-Eval(一个用于评估模型遵循格式指令能力的基准测试)上,DeepSeek-R1 也取得了显著的成果。这些改进与在最终阶段的有监督微调(SFT)和强化学习训练中引入的指令遵循数据密切相关。此外,在 AlpacaEval 2.0 和 ArenaHard 上,DeepSeek-R1 的表现尤为突出,表明其在写作任务和开放域问答中的优势。其显著优于 DeepSeek-V3 的表现进一步证明了大规模强化学习的泛化优势,这不仅提升了推理能力,还改善了模型在多样化领域的表现。此外,DeepSeek-R1 生成的总结长度较为简洁,在 ArenaHard 上平均为 689 个标记,在 AlpacaEval 2.0 上为 2218 个字符。这表明 DeepSeek-R1 在基于 GPT 的评估中避免了引入长度偏差,进一步巩固了其在多任务中的稳健性。
在数学任务上,DeepSeek-R1 的表现与 OpenAI-o1-1217 相当,在多数基准测试中大幅领先于其他模型。在编程算法任务(如 LiveCodeBench 和 Codeforces)上,以推理为导向的模型主导了这些基准测试。在工程导向的编程任务上,OpenAI-o1-1217 在 Aider 上的表现优于 DeepSeek-R1,但在 SWE Verified 上表现相当。我们相信,随着相关强化学习训练数据量的增加,DeepSeek-R1 在工程任务上的表现将在下一个版本中得到提升,因为目前这一领域的数据量仍然非常有限。
6.2 蒸馏模型评估
如 表 5 所示,仅通过对 DeepSeek-R1 的输出进行蒸馏,高效的小型模型 DeepSeek-R1-7B(即 DeepSeek-R1-Distill-Qwen-7B,以下简写为类似形式)在各项指标上均优于不具推理能力的模型,例如 GPT-4o-0513。DeepSeek-R1-14B 在所有评估指标上均超越了 QwQ-32B-Preview,而 DeepSeek-R1-32B 和 DeepSeek-R1-70B 在大多数基准测试中显著优于 o1-mini。这些结果表明了蒸馏方法的强大潜力。此外,我们发现对这些蒸馏模型应用强化学习(RL)可以带来显著的进一步提升。我们相信这一方向值得进一步探索,因此在此仅展示了简单通过有监督微调(SFT)蒸馏的模型结果。
7、结论
在本研究中,我们分享了通过强化学习提升模型推理能力的探索过程。DeepSeek-R1-Zero 代表了一种纯粹的强化学习方法,不依赖于冷启动数据,却在各项任务中展现出强大的性能。而 DeepSeek-R1 更为强大,它借助冷启动数据以及迭代式的强化学习微调,最终在一系列任务上的表现与 OpenAI-o1-1217 相当。
我们进一步探索了将推理能力蒸馏到小型密集模型的可能性。我们以 DeepSeek-R1 作为教师模型,生成了 800K 条训练样本,并用于微调多个小型密集模型。结果令人鼓舞:例如,DeepSeek-R1-Distill-Qwen-1.5B 在数学基准测试 AIME 上达到了 28.9% 的准确率,在 MATH-500 上达到了 83.9% 的准确率,显著优于基于相同底层模型微调的其他指令模型。其他密集模型也在各项基准测试中取得了令人印象深刻的成绩,大幅超越了其他指令微调模型。
8、局限性与未来方向
在未来的研究中,计划在以下方向上投入更多精力:
- 通用能力提升:目前,DeepSeek-R1 在某些任务上的表现仍不如 DeepSeek-V3,例如函数调用、多轮对话、复杂角色扮演和 JSON 输出。未来,我们将探索如何利用长链式思考(CoT)来增强这些领域的表现。
- 语言混用问题:DeepSeek-R1 当前主要针对中文和英文进行了优化,这可能导致在处理其他语言的查询时出现语言混用问题。例如,即使查询语言不是中文或英文,DeepSeek-R1 也可能使用英文进行推理和回答。我们计划在未来版本中解决这一局限性。
- 提示工程:在评估 DeepSeek-R1 时,我们发现模型对提示非常敏感,少样本提示往往会降低其性能。因此,我们建议用户直接描述问题,并在零样本设置中指定输出格式,以获得最佳结果。
- 软件工程任务:由于长时评估会影响强化学习的效率,大规模强化学习尚未广泛应用于软件工程任务。因此,DeepSeek-R1 在软件工程基准测试上的表现尚未显著优于 DeepSeek-V3。未来版本将通过在软件工程数据上实施拒绝采样,或在强化学习过程中引入异步评估来提高效率,从而解决这一问题。
因本人水平有限,欢迎大家评论区批评指正!一起交流学习!