通过隐性奖励强化过程
崔淦渠 , 袁立凡 , 王泽帆 , 王涵彬 , 李文迪 , 何炳祥 , 樊毓琛 , 于天宇 , 徐启鑫 , 陈伟泽, 袁嘉瑞, 陈华宇, 张凯燕, 吕兴泰, 王硕, 姚远, 韩旭, 彭浩, 程宇, 刘知远, 孙茂松, 周博文, 丁宁
: 项目负责人
: 核心贡献者
GitHub: https://github.com/PRIME-RL/PRIME
在这篇博客文章中,我们介绍了 PRIME (Process Reinforcement through IMplicit REwards),一种通过隐式过程奖励实现高级推理的可扩展强化学习解决方案。我们的主要贡献在于:
- 我们提出了 PRIME (Process Reinforcement through IMplicit REwards),一个使用过程奖励进行在线强化学习的开源解决方案,旨在将语言模型的推理能力提升到超越模仿或蒸馏的水平。
- 通过PRIME,从Qwen2.5-Math-7B-Base开始,我们训练的模型Eurus-2-7B-PRIME实现了 26.7% pass@1,超越了GPT-4o和Qwen2.5-Math-7B-Instruct。我们仅使用了 Qwen Math 1/10 的数据量(23万 SFT + 15万 RL)就实现了这一成果。
- 我们还探索了推理时间扩展,并训练了 EurusPRM,一个 SOTA 级别的数学 PRM,进一步突破了界限。
- 仍在进行中。所有模型和数据均已发布。代码即将上线!
告诉我,我便忘记;教导我,我便记住;让我参与,我便学会。
—— 本杰明·富兰克林
目录
引言
图:我们的 Eurus-2-7B-PRIME 在竞赛级数学基准测试中表现出色,超越了先进的数学模型和更大的模型。值得注意的是,PRIME 为 Eurus-2-7B-SFT 带来了显著的性能提升 (+16.7%)。
尽管通过数据驱动的模仿可以改进大型语言模型 (LLM) 的高级推理能力,但这会带来根本性的可扩展性障碍——因为更好的推理需要指数级增长的高质量模仿示例,使得持续改进变得越来越难以实现。我们认为克服这些挑战的关键在于将数据驱动方法转化为**基于探索**的方法,正如强化学习 (RL) 所例证的。为此,需要解决两个关键挑战以实现这种转化:(1) 如何高效且可扩展地获取精确的**奖励信号**,尤其是**密集**的奖励信号?(2) 我们如何构建有效的 RL 算法以充分**释放**这些信号的潜力?
在这篇博客中,我们寻求通过**高效的奖励建模和强化学习**实现高级推理能力的**可扩展**路径。
我们最近的研究提出了隐式过程奖励建模(PRM)目标。隐式PRM无需任何过程标签,即可作为结果奖励模型(ORM)进行训练,并随后用作PRM。受此引人入胜的特性启发,我们发现除了通过推理扩展提高模型性能外,隐式PRM的真正力量体现在在线RL训练中。具体而言,它为RL带来了三方面的好处:
- 密集奖励:隐式 PRM 直接学习 Q 函数,为**每个 token** 提供奖励,这在无需额外价值模型的情况下缓解了奖励稀疏性问题。
- 可扩展性:隐式 PRM 仅通过结果标签即可在线更新。因此,我们可以通过给定结果验证器的在线策略执行直接更新 PRM,这缓解了分布偏移和 PRM 的可扩展性问题。
- 简单性:隐式 PRM 本质上是一个语言模型。在实践中,我们发现无需预先训练 PRM,因为 SFT 模型本身就已是一个强大的起点。
随后,我们深入研究了强化学习,以找出其关键的算法设计和实现技术。为此,我们提出了 PRIME,即通过**隐式奖励的过程强化**,它有效地将 PRM 整合并更新到强化学习中。
作为中间结果,通过 PRIME,我们在关键推理基准测试上成功地对我们模型的 SFT 版本实现了显著改进,平均提升了 16.7%,在 AMC 和 AIME 竞赛中提升了超过 20%。我们的最终模型 Eurus-2-7B-PRIME,基于 Qwen-2.5-Math-7B-Base,在 5 个关键推理基准测试中超越了其指令版本。随后,我们使用隐式 PRM目标训练了一个 PRM 用于推理时间扩展,这进一步提升了模型的推理能力。
开篇图的评估结果详情如下
Eurus-2-7B-PRIME | Eurus-2-7B-SFT | Qwen-2.5-Math-7B-Instruct | Llama-3.1-70B-Instruct | GPT-4o | |
---|---|---|---|---|---|
AIME 2024 | 26.7 (+23.3) | 3.3 | 13.3 | 16.7 | 9.3 |
MATH-500 | 79.2 (+14.1) | 65.1 | 79.8 | 64.6 | 76.4 |
AMC | 57.8 (+27.7) | 30.1 | 50.6 | 30.1 | 45.8 |
Minerva Math | 38.6 (+5.9) | 32.7 | 34.6 | 35.3 | 36.8 |
OlympiadBench | 42.1 (+12.3) | 29.8 | 40.7 | 31.9 | 43.3 |
平均 | 48.9 (+ 16.7) | 32.2 | 43.8 | 35.7 | 43.3 |
与Qwen-Math相比,我们仅用其1/10的数据资源就实现了这一成果。以下是Eurus-2-7B-PRIME和Qwen2.5-Math-7B-Instruct的资源需求对比。
Eurus-2-7B-PRIME | Qwen2.5-Math-7B-Instruct | |
---|---|---|
基础模型 | Qwen2.5-Math-7B | Qwen2.5-Math-7B |
SFT 数据 | 23万(开源) | 250万(开源和内部) |
RM 数据 | 0 | 61.8万(内部) |
RM | Eurus-2-7B-SFT | Qwen2.5-Math-RM (72B) |
RL 数据 | 15万查询 4 个样本 | 6.6万次查询 32 个样本 |
本博客将介绍
- 隐式过程奖励建模目标及其在 PRM 和 RL 中的优势
- 将隐式过程奖励整合到在线RL中的PRIME算法
- 构建强大的推理模型Eurus-2-7B-PRIME的完整方法
- 我们如何通过使用EurusPRM进行推理时扩展进一步提高其性能
我们发布了本研究中使用的所有模型和数据。
准备与模仿热身
模型和评估数据集
我们选择 Qwen2.5-Math-7B-Base 作为起点,因为它具有强大的数学能力。
在评估方面,我们主要采用竞赛级别的数学和编程基准,以及几个常用的数据集,包括 AIME 2024、AMC、MATH-500、Minerva Math、OlympiadBench、LeetCode 和 LiveCodeBench(v2)。
模仿学习
我们首先对基础模型进行了监督微调,以获得用于强化学习的初始模型。
以行动为中心的思维链推理
我们首先应用模仿学习(监督微调)作为热身阶段,以教授模型学习特定的推理模式。为此,我们首先设计了一个**以行动为中心**的思维链推理框架,其中策略模型在每一步选择七个行动之一,并在执行每个行动后停止。
SFT数据集构建
为了构建SFT数据集,我们从几个开源数据集中收集了推理指令。值得注意的是,我们没有将许多带有真实答案的数据集包含在SFT中,尽管它们的质量更高,而是将它们保留用于后续的RL训练。原因是我们的目标是在SFT和RL中使用不同的数据集,以使RL中的探索多样化,并且我们认为真实答案在RL中比在SFT中更重要。为了完成任务,我们使用LLaMA-3.1-70B-Instruct来回答指令,并使用系统提示请求模型执行以行动为中心的思维链。
我们最终获得了*23万* SFT数据,详细来源和统计数据可在附录中找到。
SFT结果
微调后,我们的SFT模型性能已在开篇图中报告。
与Qwen2.5-Math-7B-Instruct相比,我们的SFT模型在所有数学基准上均落后于它。
过程奖励模型
隐式PRM:无需过程标签的免费过程奖励
我们采用隐式PRM,它**无需额外成本**即可获得免费过程奖励,只需简单地在更便宜的**响应级标签**上训练一个ORM。在推理过程中,隐式过程奖励通过前向传播和计算每一步的对数似然比来获得。
隐式PRM的关键在于奖励表示,如下所示:
命题:考虑一个ORM,其中奖励由两个因果语言模型对数似然比参数化,即 。定义 。 是 在步骤 处的指数平均。
因此, 表示结果奖励 在步骤 处的精确期望值,即 Q 值。
该命题表明,在对 进行建模以训练一个标准管道的ORM时,其中 是一个超参数, 可以隐式学习一个Q函数。因此,过程奖励 可以通过以下方式获得:
因此,**我们确实可以通过简单地收集响应级别数据并训练一个ORM来获得PRM,无需任何标注步骤标签的负担。**
该命题**与ORM的具体训练目标无关**。它可以通过不同的目标实例化为香草ORM训练,唯一的区别是用 替换 。例如,DPO 已满足我们的假设,并可作为一种强大的变体,但在这项工作中,我们由于内存效率而使用交叉熵(CE)损失实例化了隐式 PRM:
强化学习
我们的目标明确而专注:广泛利用强化学习(RL)来增强推理能力。为了以有限的资源实现这种范式的最佳实践,我们的关键见解可归纳如下:
- 从高质量的真值验证数据开始:我们进行了严格的数据收集和清理,以获得可验证的强化学习(RL)数据,并发现仅使用结果验证器就已经是非常强大的基线。
- 简单的类似REINFORCE的算法出人意料地有效:我们比较了不同的RL算法,得出结论,无值模型的类似REINFORCE的方法已经足够强大。
- 使用“中等难度”问题来稳定训练:我们提出了一种名为在线提示过滤的机制,通过过滤掉过于困难和简单的问题,极大地稳定了RL训练。
- 隐式过程奖励进一步突破了界限!我们成功地将过程奖励集成到在线RL中,并观察到训练的显著加速和性能提升。该方法对所有人来说都易于访问。
算法和数据初步研究
强化学习数据收集与预处理
我们策划了一个高质量的数学和编程问题强化学习训练数据集,其中包含结果验证器(数学问题使用 LaTeX 答案,编程问题使用测试用例)。
- 数学问题来源于 NuminaMath-CoT,该数据集包含约 86 万道数学问题。这些问题涵盖了从中国高中数学到国际数学奥林匹克竞赛的题目。
- 编程问题来源于 APPS、CodeContests、TACO 和 Codeforces。
为了进一步提高数据质量,我们进行了详细的清洗和过滤。详细的数据预处理可以在附录中找到。最终,我们保留了 45.7 万道数学问题和 2.7 万道编程问题。
在线提示过滤
在推理阶段,我们发现选择合适的提示非常重要,特别是只保留某个难度范围内的提示。受 Qwen-2.5-Math 的启发,它预先根据初始策略模型的准确性过滤提示,我们在整个训练过程中执行在线提示过滤。我们为每个提示采样多条轨迹,然后计算准确性并保留准确性分数在特定范围内的提示。这也平衡了 PRM 更新的训练数据分布。
我们进行了实验来验证这种提示过滤策略。我们为每个提示采样了 4 条轨迹,并将范围设置为 ,这意味着我们丢弃了太容易和太难的提示。我们在下图中绘制了训练奖励。
从结果中可以看出,在线提示过滤极大地降低了强化学习训练的方差。
强化学习算法
我们比较了不同的在线强化学习算法,包括 PPO、REINFORCE、RLOO、GRPO 和 ReMax。我们使用 verl 实现了它们,并使用结果验证器作为奖励进行了初步实验。具体而言,真值结果奖励定义为:
对于这些初步实验,我们从经过微调的 Llama-3.1-8B 模型开始训练,并在附录中报告了结果。我们发现,类似 REINFORCE 的算法,尽管比 PPO 简单,但足以产生稳定的结果。我们选择表现最好的 RLOO 作为我们的 RL 算法。请注意,我们只采用了 RLOO 的优势/回报估计函数,并使用带有重要性采样和值剪裁的 PPO 策略损失来确保训练稳定性。
PRIME:基于 PRM 的强化学习
将PRM整合到(在线)强化学习中并非易事,并带来了一些关键的挑战。这里我们介绍主要挑战以及我们如何通过隐式PRM解决它们。
🤔如何为强化学习提供密集奖励?
奖励稀疏性一直是强化学习中长期存在的问题,对于大型语言模型(LLM)的强化学习也是如此。到目前为止,我们仍然没有广泛接受的解决方案来在LLM的(在线)强化学习中构成密集奖励。以前的方法主要是为密集奖励设置一个额外的价值模型,但众所周知,这种模型训练困难且性能提升甚微。因此,如何将过程奖励纳入强化学习实践中仍不清楚。
💡我们无缝地将过程奖励用于优势/回报估计中的每个令牌。
在我们的奖励建模目标 的指导下,我们可以从隐式 PRM 中免费获得令牌级的过程奖励。通过这种方式,我们的 PRM 可以直接取代 PPO 中的价值模型,使其与任何优势估计函数和结果奖励结合变得极其容易。在实践中,我们通过微小的修改将过程奖励与 REINFORCE、RLOO、GRPO、ReMax 和 PPO 进行了集成。
🤔如何设置一个好的PRM来开始强化学习?
即使我们找到了在强化学习中使用过程奖励的方法,训练好的PRM作为起点也并非易事。实践者需要收集大规模的(过程)奖励数据,这既昂贵又要求模型在泛化和分布偏移之间取得良好平衡。
💡从你的策略模型作为PRM开始。
隐式PRM本质上是一个语言模型。因此理论上,你可以使用任何语言模型作为PRM。在实践中,我们发现起始策略模型本身就作为PRM的极佳(如果不是最佳)初始化。这意味着,你只需要一个模型就可以开始你的强化学习之旅!这使得使用隐式PRM的强化学习比以往任何时候都更容易实现。
🤔如何在线更新PRM以防止奖励欺骗?
在在线强化学习中,奖励模型不被过度优化或欺骗至关重要,这要求奖励模型与策略模型同步更新。然而,考虑到步骤标签的昂贵性,在强化学习训练期间更新PRM是困难的。这给强化学习中的PRM带来了相当大的可扩展性和泛化问题。
💡隐式PRM仅需要结果标签来更新。
也就是说,有了结果验证器,我们可以在训练期间轻松更新我们的PRM!在实验中,我们阐明了在线PRM的重要性。此外,我们还可以进行双向传播(double-forward),即我们首先使用在线策略的推理结果更新PRM,然后使用更新后的PRM重新计算过程奖励,从而提供更准确的奖励估计。
PRIME 算法
本节介绍我们最终的算法。首先,我们通过动画演示PRIME的完整循环。
策略模型和PRM都通过SFT模型进行初始化。对于每个RL迭代,策略模型首先生成推演。然后,隐式PRM和结果验证器对推演进行评分,并且隐式PRM根据结果奖励在推演上进行更新。最后,结果奖励 和过程奖励 结合起来,用于更新策略模型。
实现
我们在此处提供伪代码
算法流程包括
提示过滤:根据策略模型的表现进行过滤,只保留策略模型 准确率在 0.2 到 0.8 之间的提示。
计算隐式过程奖励 。
更新隐式PRM 基于预测的隐式过程奖励 和真值结果标签 。
使用RLOO进行优势估计。具体来说,我们首先分别计算结果奖励和隐式过程奖励的回报。
对于真值结果奖励,我们直接采用 RLOO,无需任何修改。
对于隐式过程奖励,我们执行三步过程来计算回报:(1) 使用平均隐式过程奖励计算留一法基线。(2) 通过减去基线来归一化步骤 处的奖励;(3) 计算每个响应的折扣回报。
最后,优势设置为两种回报的组合。
使用 PPO 损失更新策略 ,以实现合法的重要性采样。
实验
设置
默认情况下,我们使用 SFT 模型初始化隐式 PRM,并保留 SFT 模型作为参考对数概率。对于超参数,策略模型使用恒定的 5e-7 学习率和 AdamW 优化器,PRM 使用 1e-6 学习率。策略和 PRM 都使用 256 的小批量大小和 8 的微批量大小。推演阶段收集 256 个提示,每个提示采样 4 个响应。我们设置 PRM 训练的 。所有实验中的 KL 系数均设为 0。
主要结果
我们首先展示密集奖励在强化学习中的作用。在这里,我们将 PRIME 与仅使用结果验证器(OV)的 RLOO 进行比较,这意味着每个轨迹只有真值结果奖励。我们训练该模型 240 步。对于 PRIME,我们使用相同的设置,并训练模型 592 步。我们在下图中绘制了由结果验证器测量的训练奖励和测试准确率。与稀疏奖励相比,PRIME 将 RL 训练加速了 2.5 倍,并将最终奖励提高了 6.9%,同时方差更低。在下游任务中,PRIME 也始终优于仅使用 OV 的设置。
图:训练结果奖励。为了公平比较,我们将训练步数截断为 240 步。
图:测试准确性比较。
下面列出了详细结果。我们可以看到,在相同的240步训练下,PRIME训练的模型通常优于结果奖励训练的模型,导致4个百分点的性能差距。PRIME可以通过更多的训练步数进一步提升模型性能。
方法 | 步骤 | AIME 2024 | AMC | MATH-500 | Minerva Math | OlympiadBench | LeetCode | LiveCodeBench | 数学平均值 | 平均 |
---|---|---|---|---|---|---|---|---|---|---|
Eurus-2-7B-SFT | 0 | 3.3 | 30.1 | 66.2 | 32.7 | 29.8 | 21.7 | 17.8 | 32.2 | 28.8 |
仅带结果验证器(OV)的 RLOO | 240 | 20.0 | 47.0 | 73.2 | 36.4 | 35.4 | 28.3 | 26.7 | 42.2 | 36.9 |
PRIME | 80 | 20.0 | 41.0 | 68.2 | 38.2 | 37.0 | 26.7 | 26.6 | 40.9 | 36.8 |
160 | 13.3 | 42.2 | 72.0 | 37.1 | 38.7 | 26.7 | 25.6 | 40.7 | 36.5 | |
240 | 20.0 | 50.6 | 78.2 | 39.3 | 40.3 | 31.1 | 27.5 | 45.7 | 41.0 | |
320 | 16.7 | 51.8 | 77.8 | 39.7 | 41.5 | 36.1 | 28.5 | 45.5 | 41.7 | |
592 | 26.7 | 57.8 | 79.2 | 38.6 | 42.1 | 33.3 | 28.6 | 48.9 | 43.9 |
在线PRM的效果
我们引入了在线 PRM,它会随着策略模型的推演和相应的验证器结果进行更新。在这里,我们展示了在线更新对于 PRM 的重要性。我们比较了两种设置:在线 PRM 由 Eurus-2-7B-SFT 初始化,离线 PRM 是 EurusPRM-Stage1。从下图可以看出,在线 PRM 在训练集和测试集上都显著优于离线 PRM。
参考策略的效果
我们实现了两种算法变体来探索参考策略的效果,一种使用初始 SFT 模型作为参考模型,另一种使用运行策略的旧 logprob 作为参考,如下图所示。上面的一种(policy ref)简单地将策略模型的旧 logprob 作为 ,而下面的一种(SFT ref)则保留初始 SFT 模型以进行额外的 计算。本节将比较它们的性能。
图:策略参考,我们放弃了参考策略,并使用旧的对数概率作为 PRM 的
图:SFT 参考,我们重新训练初始策略以提供 PRM 和 KL 的
步骤 | SFT 参考 | 策略参考 |
---|---|---|
80 | 36.8 | 36.7 |
160 | 36.5 | 38.4 |
240 | 41.0 | 40.5 |
320 | 41.7 | 41.0 |
从训练奖励和测试准确率来看,这两种策略表现接近,并且在不同方面各有优缺点:策略参考在RL训练中只需要两个模型,而SFT参考需要额外一个参考模型。另一方面,KL散度计算仅在保留初始SFT模型时才允许。
单向传播 vs. 双向传播
由于我们的隐式 PRM 在训练中是同步更新的,对于每个推演阶段,我们可以在策略模型之前更新 PRM,并使用更新后的 PRM 重新计算过程奖励,我们称之为双向传播设置。我们研究了双向传播在训练和测试阶段的影响。我们的默认设置采用单向传播,即使用旧 PRM 的过程奖励。我们绘制了 PRM 在推演上的准确性和训练奖励图如下。
相应地,我们发现双向传播可以提高 PRM 准确性,但两种方法之间的训练奖励保持接近。
我们还比较了单向和双向传播的平均测试集准确率。它们的性能也接近。单向双向传播带来了更多的计算开销,我们建议在实践中采用单向传播设置。
步骤 | 单向传播 | 双向传播 |
---|---|---|
80 | 36.8 | 35.7 |
160 | 36.5 | 37.4 |
240 | 41.0 | 40.4 |
320 | 41.7 | 41.0 |
使用隐式 PRM 进行推理扩展
除了强化学习,隐式PRM还可以通过N选一采样进一步扩展推理时的计算。本节我们将介绍EurusPRM,一个用于N选一采样的SOTA级开源PRM。
PRM 训练
我们为 EurusPRM 引入了基于 Qwen2.5-Math-7B-Instruct 的两阶段训练流程。我们收集了带有真实标注的指令,并使用 Qwen2.5-Math-7B-Base、Llama-3.1-8B-Base/Instruct、Llama-3.1-70B-Instruct、Qwen2.5-72B-Instruct 和我们的 SFT 模型来采样推演。训练数据集统计信息可以在附录中找到。
第一阶段:在完整的响应级推演上进行训练
我们应用上述 来训练隐式 PRM。我们使用 5e-7 的学习率和 64 的批量大小进行训练。
第二阶段:在人工制造的局部步长级对上进行训练
我们在第一阶段模型的基础上,使用细粒度的步长级标签开始了第二阶段的训练。为了获得步长级标签,我们雇佣了 Llama-3.1-70B-Inst 和 Qwen2.5-72B-Inst 将细微错误插入到正确解决方案中。我们还在这个阶段混合了响应级数据。模型以 5e-7 的学习率和 64 的批量大小持续使用 进行训练。
PRM 评估
评估基础模型
我们选用 Eurus-2-7B-SFT、Qwen2.5-7B-Instruct 和 Llama-3.1-70B-Instruct 作为生成模型来评估我们隐式 PRM 的性能。对于所有模型,我们将采样温度设置为 0.5,top-p 采样的 p 值设置为 1。
N选一采样
我们使用 Best-of-64 作为评估指标。以下几个 PRM 的加权方法不同。
- 对于 Skywork-o1-Open-PRM-Qwen-2.5-7B,我们使用所有步骤的简单平均奖励。
- 对于 EurusPRM-Stage 1,我们使用所有步骤中的最小奖励。
- 对于 EurusPRM-Stage 2,我们使用累积奖励。
Eurus-2-7B-SFT
方法 | 奖励模型 | 数学 | AMC | AIME_2024 | OlympiadBench | Minerva Math | 平均 |
---|---|---|---|---|---|---|---|
贪婪通过@1 | 不适用 | 65.1 | 30.1 | 3.3 | 29.8 | 32.7 | 32.2 |
多数投票@64 | 不适用 | 65.6 | 53.0 | 13.3 | 39.1 | 22.4 | 38.7 |
N选一@64 | Skywork-o1-Open-PRM-Qwen-2.5-7B | 47.2 | 45.8 | 10.0 | 32.3 | 16.2 | 30.3 |
EurusPRM-阶段1 | 44.6 | 41.0 | 6.7 | 32.9 | 17.3 | 28.5 | |
EurusPRM-阶段2 | 47.2 | 43.4 | 13.3 | 33.8 | 19.2 | 31.4 | |
加权N选一@64 | Skywork-o1-Open-PRM-Qwen-2.5-7B | 64.6 | 55.4 | 13.3 | 41.3 | 23.2 | 39.6 |
EurusPRM-阶段1 | 66.0 | 54.2 | 13.3 | 39.6 | 29.0 | 40.4 | |
EurusPRM-阶段2 | 66.0 | 54.2 | 13.3 | 39.7 | 29.0 | 40.4 |
Llama-3.1-70B-Instruct
方法 | 奖励模型 | 数学 | AMC | AIME 2024 | OlympiadBench | Minerva Math | 平均 |
---|---|---|---|---|---|---|---|
贪婪通过@1 | 不适用 | 64.6 | 30.1 | 16.7 | 31.9 | 35.3 | 35.7 |
多数投票@64 | 不适用 | 80.2 | 53.0 | 26.7 | 40.4 | 38.6 | 47.8 |
N选一 @ 64 | Skywork-o1-Open-PRM-Qwen-2.5-7B | 77.8 | 56.6 | 23.3 | 39.0 | 31.6 | 45.7 |
EurusPRM-阶段1 | 77.8 | 44.6 | 26.7 | 35.3 | 41.5 | 45.2 | |
EurusPRM-阶段2 | 80.6 | 59.0 | 20.0 | 37.6 | 44.9 | 48.4 | |
加权N选一@64 | Skywork-o1-Open-PRM-Qwen-2.5-7B | 81.2 | 56.6 | 23.3 | 42.4 | 38.2 | 48.3 |
EurusPRM-阶段1 | 80.4 | 53.0 | 26.7 | 40.9 | 46.7 | 49.5 | |
EurusPRM-阶段2 | 80.4 | 53.0 | 26.7 | 41.0 | 46.3 | 49.5 |
Qwen2.5-7B-Instruct
方法 | 奖励模型 | 数学 | AMC | AIME 2024 | OlympiadBench | Minerva Math | 平均 |
---|---|---|---|---|---|---|---|
贪婪通过@1 | 不适用 | 73.3 | 47.0 | 13.3 | 39.4 | 35.3 | 41.7 |
多数投票@64 | 不适用 | 82.0 | 53.0 | 16.7 | 43.0 | 36.4 | 46.2 |
N选一 @ 64 | Skywork-o1-Open-PRM-Qwen-2.5-7B | 85.2 | 60.2 | 20.0 | 44.7 | 32.7 | 48.6 |
EurusPRM-阶段1 | 81.8 | 47.0 | 16.7 | 40.1 | 41.5 | 45.4 | |
EurusPRM-阶段2 | 86.0 | 59.0 | 16.7 | 41.4 | 41.5 | 48.9 | |
加权N选一@64 | Skywork-o1-Open-PRM-Qwen-2.5-7B | 83.6 | 55.4 | 13.3 | 43.7 | 36.8 | 46.6 |
EurusPRM-阶段1 | 82.6 | 53.0 | 16.7 | 42.7 | 45.2 | 48.0 | |
EurusPRM-阶段2 | 84.8 | 53.0 | 16.7 | 43.2 | 45.6 | 48.7 |
附录
SFT 数据和训练详情
SFT 数据统计如下
任务 | 数据集 | 大小 | 平均响应长度 | 源码 |
---|---|---|---|---|
数学 | MathInstruct-MATH | 12715 | 964.01 | https://huggingface.co/datasets/TIGER-Lab/MathInstruct |
OpenMathInstruct-2-Augmented_Math | 15086 | 1202.25 | https://huggingface.co/datasets/nvidia/OpenMathInstruct-2 | |
Numina | 55845 | 1331.61 | https://huggingface.co/datasets/AI-MO/NuminaMath-CoT | |
reasoning-001 | 29831 | 1316.49 | https://huggingface.co/datasets/SkunkworksAI/reasoning-0.01 | |
编程 | 代码反馈 | 27663 | 1805.16 | https://huggingface.co/datasets/m-a-p/Code-Feedback |
魔法编码器 | 24480 | 1828.72 | https://huggingface.co/datasets/ise-uiuc/Magicoder-Evol-Instruct-110K | |
Magicoder-OSS | 28980 | 1850.05 | https://huggingface.co/datasets/ise-uiuc/Magicoder-OSS-Instruct-75K | |
生物医学 | UltraMedical_mc | 35163 | 891.06 | https://huggingface.co/datasets/TsinghuaC3I/UltraMedical |
总计/平均 | - | 229763 | 1390.75 | - |
训练详情
训练期间使用的超参数如下:
参数 | 值 |
---|---|
微调类型 | 完整 |
数据最大长度 | 6144 |
学习率 | 1e-05 |
GPU批量大小 | 2 |
种子 | 42 |
梯度累积 | 2 |
训练批量大小 | 96 |
优化器 | OptimizerNames.ADAMW_TORCH,使用 betas=(0.9,0.999) 和 epsilon=1e-08 |
学习率调度 | 余弦 |
预热比例 | 0.1 |
时代 | 3 |
强化学习数据预处理
数据过滤和问题类型分类
预处理流程采用系统化的基于规则的方法来过滤和分类数学问题,以创建高质量的数据集,其中包含可解决的问题、适当的难度级别和正确答案。
我们排除了包含图表的问题,因为它们需要视觉处理能力。我们还删除了证明题,因为答案验证存在困难。其余问题根据特定模式分为问答题、选择题或填空题。由于填空题的例子少于400个,而选择题的数量要大得多,因此我们只专注于处理选择题。
转换为直接问答格式
我们通过三个连续阶段将选择题转换为直接问答格式:基于规则的过滤、基于LLM的过滤和基于LLM的格式化。
我们首先识别并删除本身需要选择项的问题——特别是那些比较特定陈述或属性对解决问题至关重要的问题。这些问题无法有意义地转换为直接问答格式。初步过滤采用简单的基于规则的模式匹配,搜索通常表示选项相关问题的“following”和“statement”等关键词。
在基于规则的过滤之后,我们使用 Llama-3.1-8B-Instruct 对剩余问题进行更细致的分类。我们的初步研究表明,尽管 LLM 偶尔会错误分类问题,但它倾向于采取保守策略——将可能可转换的问题标记为需要选项,而不是相反。考虑到我们庞大的数据集,我们接受了这种保守方法以保持质量。
对于被归类为可转换的问题,我们实施了两阶段的重新格式化过程
- 问题重新格式化:删除选项指示符并重新组织问题以引出直接答案
- 解决方案重新格式化:将选择题的解决方案转换为逐步推导,确保所有最终答案都以标准 LaTeX 框格式呈现
这种系统方法在保持数学严谨性的同时,创建了适用于下游应用的标准化格式。
问题和解决方案验证
最后阶段包括合并所有问答对并执行基于大型语言模型(LLM)的全面验证。我们确定了验证的两个关键方面:可解性和正确性。
我们利用最先进的数学推理模型,包括 QwQ-32B-Preview 和 Qwen2.5-Math-72B-Instruct,采用自洽性方法来确定问题的可解性,如果可解,则验证原始数据集中提供的解决方案的正确性。
为了提高验证准确性,我们首先分析了样本问题,以识别可解和不可解情况的特征,并创建了包含缺失条件或逻辑矛盾的合成不可解问题。基于这些样本,我们开发了专门的提示,以提高模型区分可解性的能力。
每个问题都经过五次独立的验证尝试,其中大型语言模型会
- 使用 LaTeX 格式提供分步解决方案
- 识别因缺少条件或逻辑矛盾而导致的不可解性
- 为可解问题生成完整的推理痕迹
- 以标准化的 LaTeX 方框格式(
\boxed{}
)呈现最终答案 - 记录解决方案完成过程中遇到的任何障碍
我们评估了多次验证尝试中的两个关键一致性度量
- 状态一致性:问题可解性上的一致性
- 答案一致性
- 不同尝试之间解决方案的一致性
- 生成解决方案与真实值之间的一致性
最终数据集仅保留满足以下条件的问题:
- 在多次验证尝试中保持一致的可解性
- 在多次尝试中解决方案的一致性
- 与真实答案的一致性
这种严格的验证过程确保了生成的数据集包含定义明确、可解且解决方案经过验证准确的问题。
PRM 数据
阶段 1
阶段 1 训练的数据集统计数据如下
数据集 | 生成器模型 | 实例数量 | 每个实例的响应数量 | 步骤级别/响应级别 |
---|---|---|---|---|
UltraInteract | Llama-3.1-8B-Inst | 20177 | 8 | 响应级别 |
UltraInteract | Llama-3.1-8B-Base | 13570 | 8 | 响应级别 |
UltraInteract | Qwen2.5-72B-Inst | 4758 | 8 | 响应级别 |
UltraInteract | Qwen2.5-Math-7B-Base | 25713 | 8 | 响应级别 |
Numina-SynMath | Llama-3.1-8B-Inst | 4783 | 8 | 响应级别 |
Numina-SynMath | Qwen2.5-Math-7B-Base | 5806 | 8 | 响应级别 |
Numina-Olympiads | Llama-3.1-8B-Inst | 2909 | 8 | 响应级别 |
Numina-Olympiads | Qwen2.5-Math-7B-Base | 4739 | 8 | 响应级别 |
阶段 2
阶段 2 训练的数据集统计数据如下
数据集 | 生成器模型 | 实例数量 | 每个实例的响应数量 | 步骤级别/响应级别 |
---|---|---|---|---|
数学 | Llama-3.1-70B-Inst | 4715 | 2 | 步骤级别 |
数学 | Qwen2.5-72B-Inst | 6098 | 2 | 步骤级别 |
UltraInteract | Llama-3.1-70B-Inst | 4238 | 2 | 响应级别 |
其他结果
不同强化学习算法的结果
Llama-3.1-8B 上不同强化学习算法的结果如下。由于我们用于初步研究的基础模型和数据集不同,此处使用的基准与主要实验略有不同。
步骤 | 算法 | Minerva Math | 奥林匹克基准 | HumanEval | LeetCode | LiveCode Bench | 平均 |
---|---|---|---|---|---|---|---|
256 | PPO | 21.7 | 18.2 | 62.8 | 13.3 | 17.1 | 26.6 |
REINFORCE | 21.7 | 19.0 | 64.6 | 13.9 | 17.1 | 27.3 | |
GRPO | 22.8 | 18.4 | 59.2 | 16.1 | 17.3 | 26.8 | |
ReMax | 22.8 | 19.6 | 58.5 | 12.8 | 15.8 | 25.9 | |
RLOO | 18.8 | 20.7 | 60.4 | 16.1 | 17.8 | 26.8 | |
1024 | REINFORCE | 19.5 | 16.0 | 57.3 | 21.1 | 16.0 | 26.0 |
GRPO | 22.4 | 20.3 | 57.3 | 13.3 | 18.7 | 26.4 | |
ReMax | 24.6 | 17.3 | 61.0 | 21.1 | 18.6 | 28.5 | |
RLOO | 21.0 | 20.6 | 57.9 | 27.8 | 21.4 | 29.7 |
引用
如果您觉得 PRIME 或 ImplicitPRM 有帮助,请引用它们。
@misc{cui2024process,
title={Process Reinforcement through Implicit Rewards},
author={Ganqu Cui and Lifan Yuan and Zefan Wang and Hanbin Wang and Wendi Li and Bingxiang He and Yuchen Fan and Tianyu Yu and Qixin Xu and Weize Chen and Jiarui Yuan and Huayu Chen and Kaiyan Zhang and Xingtai Lv and Shuo Wang and Yuan Yao and Hao Peng and Yu Cheng and Zhiyuan Liu and Maosong Sun and Bowen Zhou and Ning Ding},
year={2025}
}
@article{yuan2024implicitprm,
title={Free Process Rewards without Process Labels},
author={Lifan Yuan and Wendi Li and Huayu Chen and Ganqu Cui and Ning Ding and Kaiyan Zhang and Bowen Zhou and Zhiyuan Liu and Hao Peng},
journal={arXiv preprint arXiv:2412.01981},
year={2024}
}