25年1月来自清华大学的工作报告 “Process Reinforcement through Implicit Rewards”。
之前作者提出隐式 PRM,即无需进程标签即可获得免费进程奖励。基于此,本文提出
PRIME
(通过隐式奖励进行过程强化),一种具有过程奖励的在线 RL 开源解决方案,旨在提高语言模型的推理能力,使其超越模仿或提炼。借助 PRIME,从 Qwen2.5-Math-7B-Base 开始,训练的模型 Eurus-2-7B-PRIME 在 AIME 2024 上实现了 26.7% 的 pass@1,超越 GPT-4o 和 Qwen2.5-Math-7B-Instruct。仅使用 Qwen Math 的 1/10 数据(230K SFT + 150K RL)就实现了这一目标。还探索推理时间规模化并训练 EurusPRM,这是一个SOTA 级数学 PRM,它进一步突破界限。
虽然大语言模型 (LLM) 的高级推理可以通过数据驱动的模仿来改进,但它会造成根本性的规模化障碍 - 因为更好的推理需要成倍增加的高质量示例来模仿,这使得持续改进变得越来越难以实现。克服这些挑战的关键在于将数据驱动的方法转变为基于探索的方法,例如强化学习 (RL)。为此,需要解决两个关键挑战来弥合这一转变:(1) 如何高效且可扩展地获得精确的奖励信号,尤其是对于密集的信号?(2) 如何构建有效的 RL 算法来充分释放这些信号的潜力?
之前的研究提出隐式过程奖励(PRM) 建模 (“
Free Process Rewards without Process Labels
”) 目标。无需任何过程标签,隐式 PRM 被训练为结果奖励模型 (ORM),然后用作 PRM。如图所示:
受这一特性的启发,除了通过推理扩展提高模型性能外,隐式 PRM 的真正威力还在在线 RL 训练中得到展现。具体来说,它为 RL 带来了三个好处:
-
- 密集奖励:隐式 PRM 直接学习为每个 token提供奖励的 Q 函数,这缓解奖励稀疏性问题,而无需额外的价值模型。
-
- 可规模化:隐式 PRM 可以仅使用结果标签进行在线更新。因此,可以根据结果验证器直接使用基于策略的展开更新 PRM,这可以缓解 PRM 的分布变化以及可规模化问题。
-
- 简单性:隐式 PRM 本质上是一种语言模型。在实践中,没有必要事先训练 PRM,因为 SFT 模型本身已经是一个很好的起点。
深入研究 RL,找出其关键算法设计和实现技术。为此,提出通过隐式奖励进行过程强化,PRIME,它有效地整合和更新 RL 中的 PRM。
选择 [Qwen2.5-Math-7B-Base] 作为起点,因为它具有出色的数学能力。
为了进行评估,主要采用竞赛级数学和编程基准,以及几个常用的数据集,包括 AIME 2024、AMC、MATH-500、Minerva Math、OlympiadBench、LeetCode 和 LiveCodeBench(v2)。
首先对基础模型进行监督微调(SFT,IL),以获得 RL 的入门模型。
应用模仿学习(监督微调)作为热身阶段,教模型学习某些推理模式。为此,首先设计一个以动作为中心的思维链推理框架,其中策略模型在每个步骤中选择 7 个动作之一,并在执行每个动作后停止。
为了构建 SFT 数据集,从几个开源数据集收集推理指令。值得注意的是,没有在 SFT 中包含许多具有真值的数据集,尽管它们质量更高,但保留它们以供以后的 RL 训练使用。原因是旨在为 SFT 和 RL 使用不同的数据集,以使 RL 中的探索多样化,并且真值在 RL 中比在 SFT 中更重要。为了完成,使用 [LLaMA-3.1-70B-Instruct] 来回答指令,系统提示要求模型执行以行动为中心的思维链。
最终获得230K SFT 数据。与 Qwen2.5-Math-7B-Instruct 相比,本文 SFT 模型在所有数学基准上都落后于它。
PRIME 目标明确而专注:广泛利用强化学习 (RL) 来增强推理能力。针对资源有限的这种范式的最佳实践,其关键见解可以总结如下:
-
从具有真值验证器的高质量数据开始:进行严格的数据收集和清理以获得可验证的 RL 数据,并发现仅使用结果验证器已经是强大的基线。
-
简单的 REINFORCE 类算法出奇地有效:比较不同的 RL 算法,并得出结论,无价值模型的 REINFORCE 类方法足够强大。
-
使用“中等难度”问题进行稳定训练:提出一种名为在线提示滤波器的机制,通过过滤困难和简单的问题,在很大程度上稳定 RL 训练。
-
隐式过程奖励,进一步推动界限!成功地将过程奖励集成到在线 RL 中,并观察到巨大的训练加速和性能改进。该方法对每个人都是无缝访问的。
挑选了高质量的数学和编码问题强化学习训练数据集,并附带结果验证器(数学问题使用 LaTeX 答案,编码问题使用测试用例)。
- 对于数学,从 [NuminaMath-CoT] 中获取数据,其中包含约 86 万道数学问题。问题范围从中国高中数学到国际数学奥林匹克竞赛题目。
- 对于编码,从 [APPS]、[CodeContests]、[TACO] 和 [Codeforces] 中获取数据。
为了进一步提高数据质量,进行详细的清理和过滤。最后,保留 457k 道数学题和 27k 道编码题。
在推出展开阶段,选择合适的提示非常重要,尤其是仅保留一定难度范围内的提示。受到 [Qwen-2.5-Math] 的启发,该提示事先根据初始策略模型的准确性进行过滤,在整个训练过程中执行在线提示过滤。为每个提示采样多个轨迹,然后计算准确性并保留准确度得分在一定范围内的提示。这也平衡 PRM 更新的训练数据分布。
实验验证此提示过滤策略。为每个提示采样 4 条轨迹,并将范围设置为 [0.2, 0.8],这意味着会丢弃太容易和太难的提示。
比较不同的在线 RL 算法,包括 PPO、REINFORCE、RLOO、GRPO 和 ReMax。用开源 veRL 实现这些算法,并以结果验证器作为奖励进行试点实验。具体来说,真实结果奖励定义为:
对于这些初步实验,开始使用经过微调的 Llama-3.1-8B 模型进行训练。类似 REINFORCE 的算法虽然比 PPO 简单,但足够强大,可以产生稳定的结果。选择表现最佳的 RLOO 作为 RL 算法。注:仅采用 RLOO 的优势/回报估计函数,并使用具有重要性采样和价值裁剪的 PPO 策略损失来确保训练稳定性。
将 PRM 集成到(在线)强化学习中并非易事,并且带来如下关键挑战需要解决。
-
如何为强化学习提供密集奖励?
奖励稀疏性一直是 RL 以及 LLM 的 RL 中的一个长期问题。到目前为止,仍然没有广泛接受的解决方案来在(在线)RL 中为 LLM 组成密集奖励。以前的方法主要为密集奖励建立一个额外的价值模型,众所周知,该模型很难训练并且性能提升甚微。因此,目前尚不清楚如何将过程奖励纳入 RL 实践。
本文在优势/回报估计中无缝利用每个 token 的过程奖励。在奖励建模目标 r_phi(y):= beta log pi_phi(y)/pi_ref(y}下,可以免费从隐式 PRM 中获得 token-级的过程奖励。这样,PRM 可以直接替换 PPO 中的价值模型,使其非常容易与任何优势估计函数和结果奖励相结合。在实践中,将过程奖励与 REINFORCE、RLOO、GRPO、ReMax 和 PPO 进行微小的修改。
2. 如何设置一个好的 PRM 来启动 RL?
即使找到在 RL 中使用过程奖励的途径,训练好的 PRM 也并非易事。从业者需要收集大规模(过程)奖励数据,这很昂贵,并且模型应该在泛化和分布转移之间取得良好的平衡。
本文从策略模型开始作为 PRM。隐式 PRM 本质上是一种语言模型。因此从理论上讲,可以使用任何语言模型作为 PRM。在实践中,起始策略模型本身可以作为 PRM 的一个很好的(如果不是最好的)初始化。这意味着,只需要一个模型就可以开始 RL 之旅!这使得具有隐式 PRM 的 RL 比以往任何时候都更容易访问。
3. 如何在线更新 PRM 以防止奖励黑客攻击?
在线 RL 中,至关重要的是 RM 没有过度优化或被黑客攻击,这需要 RM 不断与策略模型一起更新。但是,鉴于步骤标签的昂贵性,在 RL 训练期间很难更新 PRM。这给 RL 的 PRM 带来相当大的规模化和泛化问题。
本文隐式 PRM 只需要更新结果标签。也就是说,使用结果验证器,可以在训练期间轻松更新 PRM!在实验中,体现了在线 PRM 的重要性。此外,还可以进行双重前向,即首先使用在线策略部署更新 PRM,然后使用更新后的 PRM 重新计算过程奖励,从而提供更准确的奖励估计。
PRIME算法描述如图所示:策略模型和 PRM 均使用 SFT 模型进行初始化。对于每次 RL 迭代,策略模型首先生成 展开。然后,隐式 PRM 和结果验证器对展开进行评分,隐式 PRM 使用结果奖励在展开上进行更新。最后,将结果奖励 r_o 和过程奖励 r_p 结合起来,用于更新策略模型。
该算法的伪代码如图总结:算法流程包括如下步骤
1. 根据策略模型表现进行及时过滤,仅保留策略模型 π_θ 达到 0.2 到 0.8 准确率的策略模型 π_θ;
2. 计算隐式过程奖励 r^t;
3. 根据预测的隐式过程奖励 r^t 和真实结果标签 r 更新隐式 PRM π_phi;
4. 使用 RLOO 进行优势估计,具体来说,首先分别计算结果奖励和隐式过程奖励的回报:
- 对于真实结果奖励,直接采用 RLOO,不做任何修改;
- 对于隐式过程奖励,执行三步流程来计算回报:
最后,将优势设置为两个回报的组合。