Github: https://github.com/hkust-nlp/simpleRL-reason
引言
从Qwen2.5-Math-7B基础模型开始的Qwen2.5-SimpleRL-Zero训练的动态变化,没有进行SFT或使用奖励模型。平均基准准确率和长度基于8个复杂的数学推理基准。我们观察到在初始阶段长度减少,因为我们发现Qwen2.5-Math-7B基础模型倾向于在响应中同时生成语言和代码,导致输出冗长。这种默认模式在RL过程中很快被抑制,模型学会了以更合适的格式输出,然后长度开始定期增加。在仅经过几次训练步骤后,我们也经历了DeepSeek-R1论文中描述的“顿悟时刻”——模型响应中出现了自我反思。
许多研究人员正在探索通往学习o型模型的可能路径,例如蒸馏、MCTS、基于过程的奖励模型和强化学习。最近,DeepSeek-R1和Kimi-k1.5在通往这一目标的道路上展示了一个极其简单的配方,使用简单的RL算法来学习出现的长时间链式思维(CoT)和自我反思模式,并取得了强大的结果,没有使用MCTS和奖励模型。然而,他们的实验是基于大规模RL设置中的巨大模型。目前尚不清楚小型模型是否能够表现出类似的行为,需要多少数据,以及与其他方法相比定量结果会如何。这篇博客复制了DeepSeek-R1-Zero和DeepSeek-R1对复杂数学推理的训练,从Qwen-2.5-Math-7B(基础模型)开始,仅使用来自原始MATH数据集的8K(查询,最终答案)示例进行基于规则的奖励建模的RL。我们惊讶地发现,仅使用8K个MATH示例就能将这个7B基础模型提升到如此程度,而没有任何其他外部信号:
所有结果均为pass@1准确率
AIME 2024 | MATH 500 | AMC | Minerva Math | OlympiadBench | Avg. | |
---|---|---|---|---|---|---|
Qwen2.5-Math-7B-Base | 16.7 | 52.4 | 52.5 | 12.9 | 16.4 | 30.2 |
Qwen2.5-Math-7B-Base + 8K MATH SFT | 3.3 | 54.6 | 22.5 | 32.7 | 19.6 | 26.5 |
Qwen-2.5-Math-7B-Instruct | 13.3 | 79.8 | 50.6 | 34.6 | 40.7 | 43.8 |
Llama-3.1-70B-Instruct | 16.7 | 64.6 | 30.1 | 35.3 | 31.9 | 35.7 |
rStar-Math-7B | 26.7 | 78.4 | 47.5 | - | 47.1 | - |
Eurus-2-7B-PRIME | 26.7 | 79.2 | 57.8 | 38.6 | 42.1 | 48.9 |
Qwen2.5-7B-SimpleRL-Zero | 33.3 | 77.2 | 62.5 | 33.5 | 37.6 | 48.8 |
Qwen2.5-7B-SimpleRL | 26.7 | 82.4 | 62.5 | 39.7 | 43.3 | 50.9 |
Qwen2.5-7B-SimpleRL-Zero是从基础模型直接进行简单的RL训练,仅使用8K个MATH示例。与基础模型相比,它在平均上实现了近20个绝对点的增长。与使用相同8K数据SFT的Qwen2.5-Math-7B-Base相比,RL享有更好的泛化能力,绝对上高出22%。此外,Qwen2.5-7B-SimpleRL-Zero在平均上超过了Qwen-2.5-Math-7B-Instruct,并且与最近发布的Eurus-2-7B-PRIME和rStar-Math-7B(它们也基于Qwen-2.5-Math-7B)大致相当。这些基线包含更复杂的组件,如奖励模型,并且使用了至少50倍的高级数据:
不同方法的比较数据
Qwen2.5-Math-7B-Instruct | rStar-Math-7B | Eurus-2-7B-PRIME | Qwen2.5-7B-SimpleRL-Zero | |
---|---|---|---|---|
Base Model | Qwen2.5-Math-7B | Qwen2.5-Math-7B | Qwen2.5-Math-7B | Qwen2.5-Math-7B |
SFT Data | 2.5M (open-source and in-house) | ~7.3 M (MATH, NuminaMath, etc.) | 230K | 0 |
RM Data | 618K (in-house) | ~7 k (in-house) | 0 | 0 |
RM | Qwen2.5-Math-RM (72B) | None | Eurus-2-7B-SFT | None |
RL Data | 66K queries × 32 samples | ~3.647 M × 16 | 150K queries × 4 samples | 8K queries × 8 samples |
我们对于仅使用8K个MATH示例所取得的显著增长感到既兴奋又惊讶。值得注意的是,**尽管MATH查询比许多具有挑战性的基准测试如AIME和AMC要容易得多,但这种简单的RL配方展示了显著的泛化能力,与基础模型相比,性能至少提高了10个绝对点。**这种从易到难的泛化效果是我们无法通过在相同数据集上进行标准SFT训练所能预见的。我们完全开源了我们的训练代码和细节,希望作为一个强大的基线设置,供社区进一步探索RL在推理方面的潜力。
接下来,我们将深入了解我们设置的细节,以及在此RL训练过程中发生的事情,例如长CoT和自我反思模式的涌现。
简单的RL配方
与DeepSeek R1类似,我们的RL配方非常简单,没有使用奖励模型或类似MCTS的技术。我们使用PPO算法,并采用基于规则的奖励函数,根据生成的响应的格式和正确性分配奖励:
- 如果响应以指定的格式提供最终答案并且正确,则获得+1的奖励。
- 如果响应提供了最终答案但不正确,则奖励设置为-0.5。
- 如果响应未能提供最终答案,则奖励设置为-1。
该实现基于OpenRLHF。我们的初步试验表明,这个奖励函数有助于策略模型快速收敛到生成所需格式的响应。
实验设置
在我们的实验中,我们从Qwen2.5-Math-7B-Base模型开始,并在具有挑战性的数学推理基准上进行评估,包括AIME2024、AMC23、GSM8K、MATH-500、Minerva Math和OlympiadBench。训练使用了大约8,000个来自MATH训练数据集难度级别3-5的查询。我们按照DeepSeek-R1-Zero和DeepSeek-R1分别进行了以下两种设置的实验:
- SimpleRL-Zero:我们直接从基础模型进行RL,不先进行SFT。我们只使用8K个MATH(查询,答案)对。
- SimpleRL:我们首先进行长链式思维SFT作为冷启动。SFT数据是8K个MATH查询,响应由QwQ-32B-Preview蒸馏而来。然后我们使用相同的8K个MATH示例进行我们的RL配方。
第一部分:SimpleRL-Zero — 从零开始强化学习
我们在引言部分已经报告了SimpleRL-Zero的主要结果,它超过了Qwen2.5-Math-7B-Instruct,并且与PRIME和rStar-Math取得了相当的结果,即使它只使用了8K个MATH示例。下面我们分享训练动态和一些有趣的涌现模式。
训练动态
训练奖励和展开响应长度
评估准确率(pass@1)和8个基准上的响应长度
如上图所示,所有基准上的准确率都在训练过程中稳步提高,而长度先减少然后逐渐增加。经过进一步调查,我们发现Qwen2.5-Math-7B基础模型在开始时倾向于生成大量代码,这可能是由于模型的原始训练数据分布。我们发现长度先减少是因为RL训练逐渐消除了这种模式,学习用普通语言进行推理。然后在此之后,生成长度又开始增加,自我反思模式开始出现,如下例所示。
自我反思的出现
在大约第40步时,我们发现模型开始生成自我反思模式,即DeepSeek-R1论文中的“顿悟时刻”。下面我们展示一个例子。
第二部分:SimpleRL — 带有模仿热身训练的强化学习
如前所述,我们在进行RL之前先进行长时间链式思维SFT热身,SFT数据集是8K个MATH示例,响应由QwQ-32B-Preview蒸馏而来。这种冷启动的潜在好处是模型从长链式思维模式开始,并且已经具有自我反思能力,然后在RL阶段它可能会学习得更快更好。
主要结果
AIME 2024 | MATH 500 | AMC | Minerva Math | OlympiadBench | Avg. | |
---|---|---|---|---|---|---|
Qwen2.5-Math-7B-Base | 16.7 | 52.4 | 52.5 | 12.9 | 16.4 | 30.2 |
Qwen2.5-Math-7B-Base + 8K QwQ distillation | 16.7 | 76.6 | 55.0 | 34.9 | 36.9 | 44.0 |
Eurus-2-7B-PRIME | 26.7 | 79.2 | 57.8 | 38.6 | 42.1 | 48.9 |
Qwen2.5-7B-SimpleRL-Zero | 36.7 | 77.4 | 62.5 | 34.2 | 37.5 | 49.7 |
Qwen2.5-7B-SimpleRL | 26.7 | 82.4 | 62.5 | 39.7 | 43.3 | 50.9 |
与Qwen2.5-Math-7B-Base + 8K QwQ distillation相比,模型在RL训练之前,Qwen2.5-7B-SimpleRL平均提高了6.9%的绝对值。此外,Qwen2.5-7B-SimpleRL在5个基准中有3个超过了Eurus-2-7B-PRIME,并且超过了Qwen2.5-7B-SimpleRL-Zero。即使结果很好,我们有点惊讶的是,QwQ蒸馏阶段并没有比零设置产生更大的收益,鉴于QwQ是一个32B强大的长链式思维教师模型。
训练动态
训练奖励和展开响应长度
训练状态
评估准确率(pass@1)和8个基准上的响应长度
Qwen2.5-SimpleRL的训练动态看起来与Qwen2.5-SimpleRL-Zero相似。有趣的是,尽管我们先进行长时间链式思维SFT,我们仍然在RL开始时观察到长度减少的现象。我们怀疑这是因为蒸馏的QwQ推理模式不被小型策略模型所偏好,或者超出了小型模型的容量。因此,它学会了放弃它,并自行发展出新的长推理。
结束语
简单是终极的复杂。
— 达芬奇
致谢和引用
我们实现的强化学习算法是基于OpenRLHF扩展而来的。我们利用vLLM进行推理,并开发了基于Qwen2.5-Math的评估脚本。特别地,我们感谢DeepSeek-R1和Kimi-k1.5的开发者对开源社区的创新和贡献。