Open-R1:对 DeepSeek-R1 的完全开源再现(翻译)
原文链接:https://huggingface.co/blog/open-r1
什么是 DeepSeek-R1?
如果你曾经为一道艰难的数学题苦思冥想,那么你就知道花更多时间、仔细推理是多么有用。OpenAI 的 o1 模型展示了这样一个事实:当大语言模型在推理时使用更多的计算资源,花更多时间思考,它们在数学、编程和逻辑等推理任务上的表现会显著提升。
然而,OpenAI 推理模型背后的秘诀一直是个不为人知的秘密。直到上周,DeepSeek 发布了他们的 DeepSeek-R1 模型,并迅速引爆了互联网(甚至连股市也受到了冲击!)。
除了在表现上与甚至超越 o1 模型之外,DeepSeek-R1 的发布还附带了一份详细的技术报告,概述了他们训练秘方的关键步骤。这个秘方涉及了几项创新,最显著的是使用纯强化学习来教导一个基础语言模型如何推理,而无需任何人类监督。正如下图所示,只要你拥有一个强大的基础模型和高质量的数据混合,打造一个强大的推理模型就变得非常简单:
DeepSeek-R1 训练流程图
然而,DeepSeek-R1 的发布也留下了几个疑问:
- 数据收集:那些专门用于推理的数据集是如何策划的?
- 模型训练:DeepSeek 并没有公开训练代码,因此目前还不清楚哪些超参数最有效,以及它们在不同模型家族和规模中有何差异。
- 扩展定律:在训练推理模型时,计算资源和数据之间的权衡关系如何?
这些问题促使我们启动了 Open-R1 项目——一个系统地重构 DeepSeek-R1 数据与训练流程、验证其声称效果,并推动开放推理模型边界的计划。通过构建 Open-R1,我们旨在提供关于如何利用强化学习增强推理能力的透明解释,与开源社区分享可重复的见解,并为未来模型利用这些技术奠定基础。
在这篇博客文章中,我们将探讨 DeepSeek-R1 的关键成分、我们计划复现的部分,以及如何为 Open-R1 项目做出贡献。
让我们开始吧 🚀!
他们是如何做到的?
DeepSeek-R1 是在 DeepSeek-V3 的基础上构建的推理模型。就像任何优秀的推理模型一样,它以一个强大的基础模型开始,而 DeepSeek-V3 正是这样的模型。这个拥有 671B 参数的专家混合(MoE)模型在性能上可与 Sonnet 3.5 和 GPT-4o 等重量级模型媲美。尤其令人印象深刻的是,它的训练成本非常低廉——仅花费 550 万美元——这要归功于诸如多令牌预测(MTP)、多头潜在注意力(MLA)以及大量(真的是非常多)的硬件优化等架构改进。
DeepSeek 还推出了两个模型:DeepSeek-R1-Zero 和 DeepSeek-R1,它们各自采用了不同的训练方法。DeepSeek-R1-Zero 完全跳过了监督式微调,完全依赖强化学习(RL),并使用组相对策略优化(GRPO)来提高效率。一个简单的奖励机制用于引导模型,根据答案的准确性和结构提供反馈。这种方法帮助模型培养了诸如将问题拆分成步骤和验证自己输出的有用推理能力。然而,其生成的回答往往缺乏清晰性,难以阅读。
这正是 DeepSeek-R1 的作用所在。它先经历了一个“冷启动”阶段,在一小组精心设计的示例上进行微调,以提高回答的清晰度和可读性。之后,它又经过了更多的强化学习和细化步骤,包括通过基于人类偏好和可验证奖励的方法拒绝低质量输出,从而打造出一个不仅推理能力出色,而且能够生成精炼一致回答的模型。
DeepSeek-V3 架构
这一切听起来都非常出色,但究竟还缺少什么呢?让我们来看看这个谜题中遗漏的部分。
Open-R1:缺失的拼图
DeepSeek-R1 的发布对整个社区来说无疑是一大福音,但他们并没有公开所有内容——虽然模型权重是开放的,但训练模型所用的数据集和代码却没有开放 😢。
Open-R1 的目标是构建这些最后缺失的部分,这样整个科研和工业界都可以利用这些秘方和数据集来构建类似或更优秀的模型。而且,通过以开放的方式进行,社区中的每个人都可以贡献力量!
正如下图所示,我们的计划如下:
- 步骤 1: 通过从 DeepSeek-R1 中提取高质量的推理数据集,复制 R1-Distill 模型。
- 步骤 2: 复制 DeepSeek 用于创建 R1-Zero 的纯强化学习流水线。这将涉及策划针对数学、推理和编程的大规模新数据集。
- 步骤 3: 展示我们如何通过多阶段训练,从基础模型 → 监督式微调(SFT) → 强化学习(RL)。
Open-R1 各步骤
这些合成数据集将使每个人都能通过简单微调现有或新大语言模型,将其转化为推理模型。涉及 RL 的训练秘方将为任何人从头构建类似模型提供一个起点,并允许研究者在此基础上构建出更高级的方法。
请注意,我们并不打算仅仅停留在数学数据集上。探索其他领域也大有潜力,显而易见的例子是编程,但还有诸如医学等科学领域,在这些领域中推理模型可能会产生重大影响。
这一倡议不仅仅是为了复制成果——更重要的是与社区分享见解。通过记录什么有效、什么无效以及原因,我们希望能帮助他人避免在低效的路径上浪费时间和计算资源。
如果你觉得这很有趣,我们非常欢迎你的参与!无论是贡献代码、参与 Hugging Face 上的讨论,还是以其他方式加入,都有许多机会让你参与进来。让我们一起构建这一切吧! 🚀
Github代码库:
https://github.com/huggingface/open-r1
HuggingFace OpenR1资源库:
https://huggingface.co/open-r1
DeepSeek-R1模型:
https://huggingface.co/deepseek-ai/DeepSeek-R1
DeepSeek-R1技术报告:
https://github.com/deepseek-ai/DeepSeek-R1/tree/main