GenPRM:清华、上海AI Lab提出生成式过程奖励模型,1.5B小模型测试时扩展超越GPT-4o

清华&上海AI Lab提出GenPRM,用生成式过程奖励模型提升LLM推理能力。1.5B小模型通过测试时扩展超越GPT-4o,还能指导模型自我改进。

原文标题:过程奖励模型也可以测试时扩展?清华、上海AI Lab 23K数据让1.5B小模型逆袭GPT-4o

原文作者:机器之心

冷月清谈:

清华大学和上海 AI Lab 联合提出了生成式过程奖励模型 GenPRM,旨在提升大语言模型在复杂推理问题中的过程监督推理能力。GenPRM 结合了生成式思维链推理和代码验证,引入测试时扩展机制,通过模拟人类解题的逻辑推导和代码执行的交叉验证,提供步骤级别的批评改进建议。该模型仅使用 23K 训练样本,便在数学推理基准测试中展现出卓越性能,1.5B 参数的模型通过测试时扩展超越 GPT-4o,7B 参数版本更是击败 72B 参数的 Qwen2.5-Math-PRM-72B。GenPRM 还能作为批评模型,指导策略模型迭代优化回答,为大语言模型的自我改进提供了可解释的技术路径。

怜星夜思:

1、GenPRM 通过代码验证来确保推理的可靠性,那这种方法在哪些场景下会失效?例如在处理开放域问题或者需要创造性思维的任务时,代码验证还能有效吗?
2、文章提到 GenPRM 使用了相对进步估计(RPE)来改进硬估计,那 RPE 的核心思想是什么?相比于传统的硬估计,RPE 有哪些优势和劣势?
3、GenPRM 在测试时使用了多数投票(Maj@8)的计算扩展策略,这种策略的原理是什么?为什么可以通过增加计算资源来提升评估精度?有没有其他更高效的测试时扩展策略?

原文内容


赵俭,北京邮电大学本科三年级,研究方向为大语言模型。刘润泽,清华大学硕士二年级,师从李秀教授,研究方向为大语言模型与强化学习,特别关注大模型推理能力增强与测试时间扩展,在 NeurIPS、ICML、ICLR、AAAI 等顶级学术会议发表多篇论文,个人主页:ryanliu112.github.io。


随着 OpenAI o1 和 DeepSeek R1 的爆火,大语言模型(LLM)的推理能力增强和测试时扩展(TTS)受到广泛关注。然而,在复杂推理问题中,如何精准评估模型每一步回答的质量,仍然是一个亟待解决的难题。传统的过程奖励模型(PRM)虽能验证推理步骤,但受限于标量评分机制,难以捕捉深层逻辑错误,且其判别式建模方式限制了测试时的拓展能力。


那么,是否有办法通过测试时拓展提升过程奖励模型的过程监督推理能力呢?


为此,清华大学联合上海 AI Lab 提出生成式过程奖励模型 ——GenPRM,将生成式思维链推理(CoT)与代码验证相结合,并引入测试时拓展机制,为过程监督推理提供了新思路。与 DeepSeek 近期发布的逐点生成奖励模型(GRM)类似,GenPRM 也通过生成式建模和测试时扩展增强奖励模型的推理能力,但 GenPRM 更专注于过程奖励模型,弥补了 GRM 在过程监督方面的不足。



  • 论文标题:GenPRM: Scaling Test-Time Compute of Process Reward Models via Generative Reasoning

  • 论文链接:http://arxiv.org/abs/2504.00891

  • 项目链接:https://ryanliu112.github.io/GenPRM

  • GitHub:https://github.com/RyanLiu112/GenPRM

  • HuggingFace:https://huggingface.co/GenPRM


在 ProcessBench 等数学推理基准的测试中,GenPRM 展现出惊人实力:仅 1.5B 参数的模型通过测试时扩展超越 GPT-4o,而 7B 参数版本更是击败 72B 参数的 Qwen2.5-Math-PRM-72B,同时表现出强大的步骤级批评能力。



GenPRM:从评分到推理,再到测试时扩展


现有过程奖励模型依赖分类器式的标量评分,这种 “黑箱” 机制导致两个核心问题:一是无法解释错误根源,仅能判断步骤 “对错”,却无法解释 “为何错”,二是无法通过增加模型测试时间计算资源提升判断精度。


生成式过程奖励模型


为了突破这些瓶颈,GenPRM 引入生成式设计,彻底革新过程监督范式:


  • 思维链推理:GenPRM 模拟人类解题时的逻辑推导,对每一步推理进行自然语言分析,提供透明、可解释的步骤评估。

  • 代码验证:为确保推理的可靠性,GenPRM 还会生成并执行对应数学运算的 Python 代码,将文字推导与实际计算结果交叉验证。例如,在求解三角函数表达式时,模型先分析角度转换的合理性,再通过代码计算具体数值,避免 “符号推导正确但计算失误” 的情况。



其奖励推理过程可以表示为:


图片


其中 s_t 为当前状态,a_t 为当前步骤,v_1:t−1 和 f_1:t-1 分别为之前步骤的推理过程和代码执行反馈,v_t 和 f_t 为当前步骤的推理与反馈。这种 “先解释、再验证” 的机制不仅能判断对错,还能提供步骤级别的批评改进建议和严谨准确的反馈,大幅提升了过程监督的深度和实用性。


测试时扩展


在推理阶段,GenPRM 通过并行采样 N 条推理路径,综合多条路径的奖励值并取平均,得到最终奖励:



这种策略充分利用额外计算资源,进一步提升评估精度,使小模型也能在复杂任务中表现出色。


数据高效:23K 样本背后的合成秘密


GenPRM 的另一个亮点是仅使用 23K 训练样本就取得了优异的性能,远少于许多模型动辄数十万级的数据量(如 PRM800K 需 80 万人工标注),其高效性源于独特的数据合成方法,结合相对进步估计(RPE)和代码验证,生成高质量的过程监督数据。



通过相对进步估计改进硬估计


传统过程奖励模型通过蒙特卡罗(MC)分数进行硬估计,研究者观察到尽管许多步骤的 MC 分数大于 0,但这些步骤是却存在错误。RPE 通过比较当前状态和上一状态的 MC 分数,用 “进步幅度” 评估每步质量,比传统硬标签更准确。其形式化如下:



其中,MC (s_t, a_t) 表示当前步骤的蒙特卡罗分数,MC (s_t) 表示上一步骤的蒙特卡罗分数。若进步幅度低于阈值(ϵ=0.8),则判定步骤无效;若首步错误(MC 为 0),后续步骤分数归零。这种方法显著提升标签准确性,避免了硬估计的误判。


代码验证驱动的数据合成


研究者利用 QwQ-32B 模型合成 CoT 和代码验证推理数据,通过在 Python 环境中真实执行代码重复检验 CoT 推理过程。使用共识过滤(过滤率 51%),保留高质量过程监督数据,最终得到 23K 训练数据集。


测试时扩展:小模型的逆袭


在 ProcessBench 过程监督基准测试中,GenPRM 展现出显著优势:


  • 仅用 23K 训练数据的 1.5B GenPRM,通过多数投票(Maj@8)的测试时计算扩展策略,其 F1 分数超越 GPT-4o;

  • 7B 版本的 GenPRM 以 80.5% 的 F1 分数一举超过 72B 参数的 Qwen2.5-Math-PRM-72B。


这一结果证明,测试时扩展能有效放大过程奖励模型的能力,使小模型实现性能飞跃。



此外,GenPRM 同样适用于策略模型测试时扩展。通过 Best-of-N 实验,GenPRM-7B 展现出相比于基线方法更加优异的筛选能力,并可通过测试时扩展进一步增强过程监督能力。



从验证器到批评者:过程奖励模型新范式


GenPRM 不仅能当 “裁判”,作为验证器(Verifier)筛选答案,还能当 “教练”,作为步骤级别的批评模型(Critic)指导策略模型迭代优化原始回答。实验表明,GenPRM 通过 3 轮反馈将策略模型的回答准确率从 45.7% 提升至 51.5%,性能提升达到基线方法的 3.4 倍。



这种 “生成 - 批评 - 反思” 的闭环,验证了 GenPRM 不仅可以作为验证器验证答案的准确性,还可以作为批评者,为模型完善自身输出提供逐步关键指导,为大语言模型的自我改进提供了可解释的技术路径。


研究者已开源代码、模型及 23K 训练数据集。该工作为大语言模型的可解释过程监督提供了新思路,未来可扩展至代码生成、多模态推理等领域。



© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]


我想到一个更极端的例子,如果把 Maj@8 换成 Maj@800 甚至更多,是不是准确率会更高?理论上是这样,但实际上会受到边际效应的影响。当推理路径数量增加到一定程度时,收益会逐渐递减,而且计算成本也会大幅增加。所以,需要在准确性和计算成本之间做一个权衡。

我来抖个机灵!RPE 就像是学渣的进步奖,虽然总分不高,但是只要比上次考得好,就能拿到奖励。硬估计就像是只看最终成绩,考得好就是好,考不好就是不好,忽略了进步的过程。所以,RPE 更能激励我们进步,即使起点不高,只要坚持努力,也能取得好成绩!

多数投票(Maj@K)是一种集成学习方法,其基本原理是通过组合多个模型的预测结果来提高整体的预测准确性。在 GenPRM 的上下文中,Maj@K 指的是模型并行生成 K 条推理路径,然后选择出现次数最多的答案作为最终答案。这种策略的原理是基于以下两个假设:

1. 模型的预测之间存在差异: 不同的推理路径可能会因为随机性、不同的初始化等因素而产生不同的预测结果。
2. 模型的预测错误之间相互独立: 不同的推理路径的预测错误是相互独立的,即一个模型预测错误的概率不会受到其他模型预测错误的影响。

在上述两个假设成立的情况下,通过组合多个模型的预测结果,可以有效地减少模型的预测错误,提高整体的预测准确性。

增加计算资源可以提升评估精度的原因是,更多的推理路径可以提供更多的信息,从而减少偶然性,提高最终答案的可靠性。

除了多数投票之外,还有一些其他的测试时扩展策略,例如:

* 加权投票: 根据每条推理路径的奖励值来分配权重,奖励值高的路径投票权更大。
* 模型平均: 对所有推理路径的预测结果进行平均,得到最终的预测结果。
* 聚类分析: 对所有推理路径的预测结果进行聚类分析,选择最集中的簇作为最终的答案。

这些策略各有优缺点,选择哪种策略取决于具体的应用场景和模型特性。

RPE 的核心思想就是看进步幅度!传统的硬估计就像是直接给每一步打分,非对即错,但 RPE 会比较当前步骤和上一步骤的分数,看有没有进步。如果进步幅度不够,就认为这一步有问题。这样做的好处是可以避免一些误判,比如有些步骤虽然 MC 分数大于 0,但实际上是错的,RPE 就能发现。缺点嘛,可能就是计算量稍微大一点,而且需要设定一个合适的阈值。

这个问题很有意思!代码验证确实是 GenPRM 的一个亮点,但在某些场景下可能会遇到挑战。比如,在开放域问题中,如果问题本身没有明确的计算逻辑,或者有多种可能的正确答案,代码验证就很难派上用场。另外,需要创造性思维的任务,比如生成诗歌、设计艺术品等,代码验证就显得力不从心了。总的来说,代码验证更适合于有明确计算逻辑和唯一正确答案的问题,比如数学题、物理题等等。

Maj@8 其实就是投票表决!模型并行生成 8 条推理路径,然后看看哪个答案出现的次数最多,就选哪个。增加计算资源相当于增加了投票的人数,这样就能减少偶然性,选出更靠谱的答案。至于更高效的策略,我觉得可以试试加权投票,根据每条推理路径的奖励值来分配权重,奖励值高的路径投票权更大。

RPE(Relative Progress Estimation,相对进步估计)的核心思想在于关注每一步骤相较于前一步骤的改进程度,而非仅仅评估当前步骤的绝对质量。它认为,即使一个步骤的绝对分数较高,如果相对于前一步骤没有显著的进步,那么这个步骤仍然可能是无效的。

RPE 的优势:

* 更准确的标签: 通过比较相邻步骤的 MC 分数,RPE 可以更准确地评估每一步的质量,避免了传统硬标签的误判。
* 鲁棒性: RPE 对噪声数据和不确定性具有一定的鲁棒性,因为它关注的是相对的变化,而不是绝对的值。
* 减少错误积累: 通过及时发现和纠正错误,RPE 可以减少错误在推理过程中的积累。

RPE 的劣势:

* 计算复杂度: RPE 需要计算每一步骤的 MC 分数,并进行比较,因此计算复杂度较高。
* 阈值敏感: RPE 的性能受到阈值 ϵ 的影响,需要仔细调整才能获得最佳效果。
* 依赖于 MC 分数: RPE 依赖于 MC 分数作为评估标准,如果 MC 分数本身不准确,那么 RPE 的效果也会受到影响。

楼上两位分析的都很有道理!我补充一点,其实代码验证本身也可能存在局限性。即使代码能够成功执行,并且输出了看似正确的结果,也并不一定意味着推理过程就是完全正确的。比如,代码中可能存在隐藏的 bug,或者使用了不合理的算法,这些都可能导致最终结果的偏差。因此,代码验证只能作为一种辅助手段,不能完全依赖它来判断推理的正确性。