自 DeepSeek-R1 发布以来,迅速风靡全球,如今已晋升为国民级产品。此后,全球范围内掀起了一股复现 DeepSeek-R1 的热潮,其中不乏一些亮点纷呈的优秀项目。本文将对这些开源项目中的亮点复现工作进行汇总。
一、DeepSeek-R1 复现汇总
下面是最新的 DeepSeek-R1 复现汇总:
接下来我们介绍下复现细节。
二、Open R1: HuggingFace 复现 DeepSeek-R1 全流程
Open R1 项目由 HuggingFace 发起,联合创始人兼 CEO Clem Delangue 是这么说的:
这个项目的目的是构建 R1 pipeline 中缺失的部分,以便所有人都能在此之上复制和构建 R1。
HuggingFace 表示,将以 DeepSeek-R1 的技术报告为指导,分 3 个步骤完成这个项目:
-
• step 1:从 DeepSeek-R1 中蒸馏高质量数据,复现 R1-Distill 模型。
-
• step 2:复现通过纯强化学习训练 R1-Zero 的过程,包括如何生成推理数据集
-
• step 3:复现训练 R1 的完整 pipeline,包括两阶段 SFT、两阶段 RL。
图1: Open R1复现DeepSeek-R1流程
2.1 step1:复现 DeepSeek-R1-Distill
利用 DeepSeek-R1 的蒸馏数据创建了
Bespoke-Stratos-17k
[1]
。
Bespoke-Stratos-17k 的数据构成为:
-
-
• NuminaMATH 数据集中的 AIME、MATH 以及 Olympiads 子集:10k
-
数据的构建方法为:
-
• 借助 Bespoke Curator (用于生成合成数据的项目) 创建了 Bespoke-Stratos-17k,利用 DeepSeek-R1 生成推理数据集,仅用了 1.5 小时和 800 美元的成本。
-
• 拒绝采样过程中,过滤掉了具有错误解决方案的推理轨迹。这对于代码验证来说是一大挑战,使用了 Ray 集群来加速验证过程。目前,HuggingFace 正致力于将代码执行验证器直接集成到 Curator。
-
• 数据过滤:使用 GPT-4o-mini 过滤错误的数学解决方案,将保留的正确解决方案的比例从 25% 提高到了 73%。
基于 Bespoke-Stratos-17k 数据训练出了
Bespoke-Stratos-32B
[2]
和
Bespoke-Stratos-7B
[3]
模型。
其中,Bespoke-Stratos-32B 的效果已经和 DeepSeek-R1-Distill-Qwen-32B 非常接近,如下图所示。
图2: 复现DeepSeek-R1-Distill-Qwen-32B
全新数据集:OpenR1-Math-220k
2 月 11 日,Open R1 发布了
OpenR1-Math-220k
,这是一个大规模的数学推理数据集。该数据集在本地利用 512 个 H100 生成,每个问题均对应多个答案。为打造这一数据集,HuggingFace 与 Numina 合作,共同开发了备受欢迎的 NuminaMath-CoT 数据集的全新升级版。
相较于现有数据集,OpenR1-Math-220k 独具以下新特性:包含
80万
条 R1 推理轨迹,利用 DeepSeek R1 为
40万
道问题生成了两个答案,并经过筛选,最终保留了
22万
道带有正确推理轨迹的问题。
-
• 本地生成:未依赖API,而是借助 vLLM 和 SGLang 在科学集群上本地运行,每日生成 18万 条推理过程。
-
• 基于 NuminaMath 1.5:为 NuminaMath 1.5 中的问题提供答案,NuminaMath 1.5 是 NuminaMath-CoT 数据集的改进版。
-
• 自动过滤机制:运用 Math Verify 仅保留至少含有一个正确答案的问题,并利用 Llama3.3-70B-Instruct 作为判断器,以检索更多正确示例(如答案格式错误、无法使用基于规则的解析器验证的情况)。
-
• 在 OpenR1-Math-220k 上微调 Qwen-7B-Math-Instruct,
其性能与 DeepSeek-Distill-Qwen-7B 相媲美
。
通过结合基于规则的验证工具(Math Verify)与大语言模型(LLM)的评估方法,在保持数据集规模的同时,显著提升了其质量。最终,数据集 OpenR1-Math-220k 涵盖了 22万 个带有经过验证的推理过程的问题,每个问题可能有多个解决方案,下面是具体的分布:
图3: OpenR1-Math-220k回答个数分布
其中,仅有一个回答的样本有 36759 条,而有两个回答的样本则有 184467 条,超过两个回答的样本数量极少。
该数据集分为两个划分:
-
•
default(包含9.4万个问题)
,在 SFT 后取得了最佳性能。
-
•
extended(包含13.1万个问题)
,额外融入了 NuminaMath 1.5 的来源,如 cn_k12,提供了更丰富的推理过程。然而,在此子集上进行 SFT 后的性能低于 default,这可能是由于 cn_k12 包含的问题相对其他来源更为简单。
多选一没有效果
:对于具有多个正确答案的数据,使用奖励模型 (RM) 作为最终过滤器来挑选最佳响应。对于 R1 生成的每个具有多个正确答案的推理路径,去掉 和 之前的内容,只保留最终结果,使用 Qwen/Qwen2.5-Math-RM-72B 进行评分,选择得分最高的回答。但是消融实验显示,这种方法相较于随机选择一个正确生成结果,并未能显著提升模型性能。一个潜在的改进方向是在使用 RM 进行评分时,考虑使用全部长思维链过程,而不仅仅是只使用最终答案。
与 DeepSeek-Distill-Qwen-7B 的性能比较
设置学习率为 5e-5,使用 default 部分,在 Qwen2.5-Math-Instruct 上训练 3 个 epoch。为了将上下文长度从 4k 扩展到 32k,将 RoPE 频率提高到了 300k。下图展示了使用 lighteval 评估的结果。
在 AIME25 上,效果和 DeepSeek-Distill-Qwen-7B 持平。
2.2 step2:复现 DeepSeek-R1-Zero
下图展示了直接在 Qwen2.5-0.5B 上进行 GRPO 强化,在 GSM8k 基准测试中取得了约 51% 的准确率,相比 Qwen2.5-0.5B-Instruct 模型提高了 10 个百分点。
图4:在Qwen2.5-0.5B上直接进行强化
目前 Open R1 刚开始复现 DeepSeek-R1-Zero,还没有一个好的版本出来。
三、Open-Thoughts: UC 伯克利复现 DeepSeek-Distill-Qwen-32B
近日,斯坦福、UC伯克利等多机构联手发布了开源模型:
OpenThinker-32B
,性能直逼 DeepSeek-Distill-Qwen-32B。
仅使用了
114k(OpenThoughts-114k) 数据
(DeepSeek-Distill-Qwen-32B 的1/8),就与同尺寸 DeepSeek-Distill-Qwen-32B 打成平手。
团队发现,通过采用经 DeepSeek-R1 验证过的大规模优质数据集,就能够成功训练出达到 SOTA 水平的推理模型。具体实现方法包括
扩大数据量、严格验证推理过程以及扩大模型规模
。由此研发的 OpenThinker-32B 模型,在数学、代码和科学等多个基准测试中,性能表现卓越,逼近 DeepSeek-Distill-Qwen-32B 水平,而且只用了 DeepSeek-Distill-Qwen-32B 的 1/8 数据量。
图5: OpenThinker-32B评测结果
下面介绍下数据构建的具体流程。
数据生成:OpenThoughts-114k
OpenThoughts-114k 包含 114k 高质量数据,涵盖数学、科学、代码和谜题。
除了开源数据集,还开源了模型、数据生成代码、模型评估代码。如下图所示:
图6: OpenThoughts开源了模型、数据和代码
数据由以下几个部分构成:
Code
-
-
-
•
deepmind/code_contests
[6]
-
•
MatrixStudio/Codeforces-Python-Submissions
[7]
Math
-
•
AI-MO/NuminaMath-CoT
[8]
Science
Puzzle
-
•
INK-USC/riddle_sense
[12]
使用上述数据集,从 DeepSeek-R1 生成推理轨迹并验证正确性以构建最终数据集。
图7: 使用DeepSeek-R1生成结果并对结果进行校验
四、LIMO:少即是多
图8: 只用817条数据大幅提升模型效果
在之前很长的时间里,大家的共识是“海量数据”才能训练出强大的模型。尤其在数学领域,业界普遍坚信,唯有依托海量数据与复杂的强化学习,才能取得突破性进展。
然而,上交大的最新研究成果却给出了一个另外答案:仅需 817 条精心策划的样本,便能让模型在数学竞赛级别的难题上超越众多现有的顶尖模型。这一发现不仅颠覆了传统认知,更揭示了一个我们可能一直忽视的事实:
大模型的数学潜能或许始终存在,关键在于如何有效激发它。
LIMO(Less Is More for Reasoning)仅用 817 条精心设计的训练样本,通过简单的 SFT,就全面超越了那些使用几十万数据训练的主流模型,如 o1-preview 和 QwQ。
在 AIME24 评测中,LIMO 的准确率从传统方法(以 Numina-Math 为例)的 6.5% 飙升至
57.1%
。而在 10 个不同的基准测试上,它实现了 40.5% 的绝对性能提升,超越了那些使用 100 倍数据训练的模型。这一突破证明了高质量、小规模的数据集,远比低效的海量数据训练更能激发大模型的推理潜能。
4.1 LIMO vs. RL Scaling
强化学习扩展(RL Scaling)
: 以 OpenAI 的 o1 系列和 DeepSeek-R1 为代表,RL Scaling 方法通常通过大规模的强化学习训练来增强模型的推理能力。这种方法依赖于海量数据和复杂算法,虽然在特定任务上取得了显著成果,但其局限性也在于:它将推理能力的提升视为一个需要巨额计算资源的“探索”过程。
LIMO 的新视角
:相比之下,LIMO(Less Is More for Reasoning)提出了一种截然不同的理论框架。它认为,推理能力其实潜藏于预训练模型之中,关键在于如何通过精准的唤醒这些潜在能力。这一转变将研究的重心从“训练新技能”转向了“激活潜在能力”,凸显了方法方向的重要性。
LIMO 的核心假设是,在知识基础已经相当完善的前提下,仅需少量高质量的示例,就能激活模型的潜在推理能力。这一理论不仅重新界定了 RL Scaling 的角色,将其视为寻找最优推理路径的一种途径,更为整个研究领域提供了新的思考维度和框架。
4.2 LIMO 数据集构建
将“少即是多”(LIMO)假设形式化表述为:在预训练基座模型中,通过最小却精确协调的认知过程展示,可以激发出复杂的推理能力。这一假设建立在两个基本前提之上:
-
-
• 将复杂问题精确拆解为详尽、逻辑清晰的推理链,能够使认知过程变得明确且可追溯。
为了验证这一假设,LIMO 提出了一种系统化的方法来构建高质量、最小化的数据集,以有效唤醒模型的内在推理潜能。
问题选择
高质量的问题应该能自然地引发扩展的推理过程。选择标准包括以下几点:
-
•
难度等级
优先考虑具有复杂推理链、多样化的思维过程和知识整合的问题,这些问题能够使大语言模型有效利用预训练知识进行高质量的推理。
-
•
泛化性
那些偏离模型训练分布的问题可以更好地挑战其固定的思维模式,鼓励探索新的推理方法,从而扩展其推断搜索空间。
-
•
知识多样性
选择的问题应涵盖各种数学领域和概念,要求模型在解决问题时整合和连接遥远的知识。
为了有效实施这些标准,LIMO 首先汇总了一个全面的候选问题池:NuminaMath-CoT。这个问题池从多个已建立的数据集中精选而出,涵盖了从高中到竞赛级别的精心标注数学问题,包括 AIME,MATH 以及其他几个数学问题来源。
然后对问题集进行筛选:
-
•
弱模型初筛
:首先利用 Qwen2.5-Math-7B-Instruct 过滤掉 N 次回答全对的问题。
-
•
强模型再筛
:接着,使用更强大的模型,如 DeeSeek-R1、DeepSeek-R1-Distill-Qwen32B,仅保留多次采样成功率低于指定阀值的问题。
-
•
多样性选择
:最后,为确保题库的多样性,采用策略性采样技术,在数学领域和问题复杂性之间寻求平衡,同时避免概念重复。
经过这一精细的筛选过程,最终从数以千万计的候选问题中精选出了 817 道精心设计的问题。这些问题不仅符合严格质量标准,还涵盖了丰富多样的数学推理挑战。
回答构建(思维链构建)
首先,收集现有问题的官方解决方案,并补充了来自人类专家和 AI 专家的解决方案。
此外,利用 DeepSeek-R1、DeepSeek-R1-Distill-Qwen-32B 和 Qwen2.5-32b-Instruct 在内的推理模型,来生成多种解决方案。
建立区分高质量思维链的评判标准:
-
•
最优结构组织
,即解决方案具有清晰、有序的结构,步骤分解具有自适应粒度,在关键推理环节分配更多 token 和详细说明,同时保持直接步骤的简洁;
-
•
有效认知
,即高质量的解决方案通过逐步构建理解,提供渐进的概念介绍、清晰阐述关键见解以及整合概念差距;
-
•
严格验证
,即在推理过程中穿插频繁的验证步骤,包括验证中间结果、交叉检查假设以及确认每一步推论的逻辑一致性。
4.3 LIMO 回答对比
图 9 对 Qwen2.5-32B-Instruct、DeepSeek-R1 和 LIMO 生成的回答进行了比较。尽管 LIMO 使用的数据最少(仅 817 个训练样本),但其功能却与 DeepSeek-R1 相当。
图9: Qwen2.5-32B-Instruct、DeepSeek-R1和LIMO生成回复的比较
值得一提的是,LIMO 展现出了出色的自我反思和长链思维生成能力。它能够验证自己的陈述(如“等等,24分钟是0.4小时吗?不对,60分钟是1小时,所以24分钟是24/60,即0.4小时”)并核对计算过程(如“但让我再检查一次,也许我在计算中出错了”)。此外,LIMO 还学会了在解决复杂方程时分配额外的 token(进行计算),如“现在让我们计算左侧,……,两边乘以2”,以防止出现错误。相比之下,模型 Qwen2.5-32B-Instruct 在推理过程中存在局限性,无法纠正不准确的陈述,且在解决方案中未能对方程进行交叉验证。这些结果有力地支持了 LIMO 假说:即通过少量但高质量的后训练示例,可以赋予模型强大的推理能力。
五、DeepScaleR:完美复现 DeepSeek-R1 强化学习效果
近期,UC 伯克利团队宣布,他们仅以4500美元的成本,通过简单的强化学习(RL),就成功复现并训练出了 DeepScaleR-1.5B-Preview 模型,直接超越了 o1-preview。
UC伯克利的研究团队以 Deepseek-R1-Distilled-Qwen-1.5B 为基础,通过强化学习(RL),在 40,000 个高质量数学问题上进行训练,使用了 3800 A100 小时(4500美元),训练出了 DeepScaleR-1.5B-Preview 模型。在多个竞赛级数学基准测试中优于 OpenAI 的 o1-preview。
图10: 评测结果超过 o1-preview
5.1 秘诀:先短后长(8K->16K->24K)
RL 扩展最大的挑战之一是高昂的计算成本。如果要直接复制 DeepSeek-R1 的实验(32K输出,8000 steps),至少需要 70,000 A100 GPU 小时——即使是 1.5B 的小模型。
为了解决这个问题,团队采用了先短后长的训练策略。
先在 8K 上训练,然后再逐渐扩展到 16K 和 32K
。最总将训练成本降低到了 3800 A100 小时(4500美元)。
图11: AIME 2024测试集Pass@1准确率随训练进度而变:训练至第1040步,上下文长度扩至16K;到第1520步,上下文长度增至24K
接下来,我们介绍下具体细节。
5.2 数据集构建
在训练数据集方面,研究人员精心收集了 1984 至 2023 年的美国国际数学邀请赛(AIME)题目、2023年之前的美国数学竞赛(AMC)题目,以及来自 Omni-MATH 和 Still 数据集的各国及国际数学竞赛题目。数据构成如下:
数据处理流程涵盖了三个核心步骤:
-
•
答案提取
:对于 AMC 和 AIME 等数据集,研究人员利用 gemini-1.5-pro-002 模型从 AoPS 官方解答中准确提取答案
-
•
问题去重
:基于 RAG 技术,并结合 sentence-transformers/all-MiniLM-L6-v2 的 embedding,消除重复问题
-
•
不可评分题目过滤
:由于数据集(如 Omni-MATH)中存在部分问题无法通过 sympy 数学符号计算库进行自动评估(需依赖LLM判断),这些问题会降低训练速度并引入不稳定的奖励信号,因此研究人员增加了额外的过滤步骤,剔除了这些无法自动评分的问题。
经过这一系列的去重和过滤处理,最终得到了约4万个问题-答案对,作为训练数据集。
5.3 奖励函数设计
正如 Deepseek-R1 所倡导的,团队采用结果奖励模型(ORM),而非过程奖励模型(PRM)。奖励函数返回值如下:
-
• 返回 1:如果 LLM 的答案,既能通过 LaTeX 语法检查,又能通过 Sympy 数学验证,就给它奖励。
-
• 返回 0:要是 LLM 的答案是错的,或者格式不对,比如少了
和
标记,那就不给奖励。
5.4 迭代增加训练长度:先短后长
图12: 随着训练的进行,DeepScaleR的平均响应长度和训练奖励