RM-R1:基于推理任务构建奖励模型

article/2025/6/8 20:08:00

摘要:奖励建模对于通过人类反馈的强化学习使大型语言模型与人类偏好对齐至关重要。为了提供准确的奖励信号,奖励模型(RM)在分配分数或判断之前应该激发深度思考并进行可解释的推理。受最近在推理密集型任务中长链推理的进展启发,我们假设并通过验证表明,将推理能力整合到奖励建模中可以显著增强奖励模型的可解释性和性能。为此,我们引入了一种新的生成式奖励模型类别——推理奖励模型(REASRMS),它将奖励建模视为一项推理任务。我们提出了一个以推理为导向的训练流程,并训练了一系列REASRMS,例如RM-R1。RM-R1的特点是采用了评分标准链(CoR)机制——自动生成样本级别的聊天评分标准或数学/代码解决方案,并将候选回答与之进行对比评估。RM-R1的训练包括两个关键阶段:(1)高质量推理链的提炼;(2)带有可验证奖励的强化学习。在经验上,我们的模型在三个奖励模型基准测试中平均达到了最先进的性能,超过了更大规模的开源模型(例如INF-ORM-Llama3.1-70B)和专有模型(例如GPT-4o)高达4.9%。除了最终性能外,我们还进行了深入的经验分析,以了解成功训练REASRM的关键要素。

本文目录

一、背景动机

二、核心贡献

三、实现方法

3.1 推理蒸馏阶段

3.2 强化学习阶段

3.3 链状评分机制

​编辑

四、实验结论

4.1 性能优势

4.2 关键组件有效性

4.3 可解释性提升

五、总结


一、背景动机

大模型在通过强化学习(RLHF)与人类偏好对齐的过程中,奖励模型(RM)至关重要,其核心在于提供准确的奖励信号,现有奖励模型存在显著缺陷

  • 标量奖励模型(ScalarRM):虽直接有效,但决策过程不透明,缺乏中间推理步骤,难以处理需要深度推理的复杂偏好任务。
  • 生成式奖励模型(GenRM):虽具备一定透明度,但推理往往停于表面,导致判断不可靠,性能欠佳。

基于上述缺陷,文章引入了一种新的生成式奖励模型类别——推理奖励模型(REASRMS),它将奖励建模视为一项推理任务。我们提出了一个以推理为导向的训练流程,并训练了一系列REASRMS。

二、核心贡献

1、提出推理奖励模型:首次将奖励建模定义为推理任务,通过引入长推理链增强模型对复杂输出的评估能力,显著提升可解释性与性能。

2、设计RM-R1模型与训练框架

  • 推理蒸馏(Reasoning Distillation):利用高质量合成推理轨迹(如通过Claude-3、OpenAI-O3生成)对指令调优模型(如Qwen-2.5)进行蒸馏,赋予模型基础推理能力。
  • 强化学习(RL):通过可验证奖励(RLVR)优化模型泛化能力,解决蒸馏阶段可能存在的过拟合问题。

3、链状评分机制:模型先判断任务类型(聊天/推理),对聊天任务生成评估标准(如同理心、心理安全),对推理任务(如数学、代码)则先自行解题再评估,实现任务感知的动态评估策略。

三、实现方法

3.1 推理蒸馏阶段

  • 数据生成
    • 使用Claude-3生成初始推理轨迹。
    • 对约 25% 的错误轨迹(尤其是复杂聊天任务),使用 OpenAI-O3 基于正确标签 l 生成修正后的推理轨迹,确保逻辑一致性。
    • 使用推理轨迹和标签构建包含推理过程与标签的蒸馏数据集。
  • 训练目标:通过最小化负对数似然(NLL)损失,优化模型生成推理轨迹和正确标签的能力。

3.2 强化学习阶段

  • 正确性奖励:仅基于预测标签是否正确(正确+1,错误-1),简化奖励信号以聚焦核心能力
  • 优化算法:基于GRPO利用多样本平均奖励作为基线,提升训练稳定性。

3.3 链状评分机制

  • 模型首先判断任务类型为 聊天(Chat) 或 推理(Reasoning),并执行不同评估逻辑。

聊天任务(如情感支持、安全问题)

1、生成任务特定评估标准(Rubrics),如 “同理心”“心理安全”“建设性指导”,并分配权重(如同理心 40%)。

2、基于 rubrics 对比响应,如分析候选响应是否符合情感支持目标。

推理任务(如数学、代码)

1、模型先自行解决问题,生成标准答案 <solution>...</solution>

2、基于正确性、完整性评估候选响应,如对比代码是否包含逻辑错误。

通过结构化提示引导模型生成可验证的推理轨迹。

  • 聊天任务提示示例
    <type>Chat</type>  
    <rubric>  <item>Empathy & Emotional Validation</item> (40%)  <item>Psychological Safety / Non-Harm</item> (30%)  <justify>情感类任务需优先确保用户心理安全...</justify>  
    </rubric>  
    <eval>对比响应A和B的同理心表达...</eval>  
    
  • 推理任务提示示例
    <type>Reasoning</type>  
    <solution>计算步骤与正确答案...</solution>  
    <eval>响应A的代码在第3行存在语法错误...</eval>  
    

四、实验结论

4.1 性能优势

  • RM-R1 在三大基准上平均性能超越现有模型 4.9%,且参数量显著更小(如 32B 模型优于 70B/340B 模型)。
  • 推理密集型任务(如 RM-Bench 的数学、代码任务)中优势显著:32B 模型在数学任务中准确率达91.8%,远超基线模型(如 INF-ORM-Llama3.1-70B 的 65.6%)。

4.2 关键组件有效性

  • 推理蒸馏:显著提升模型泛化能力,消融实验显示仅用8.7K蒸馏数据即可带来显著增益。
  • 任务分类与CoR:显式区分任务类型可提升推理性能,结构化评分机制使判断更可靠。

  • 规模效应:模型性能随参数量(7B→32B)和推理计算量(512→8192 tokens)增长呈近线性提升,证明推理能力可通过规模扩展增强。

4.3 可解释性提升

  • RM-R1生成的推理轨迹连贯且可验证,如在医疗问题中能优先关注信息准确性,而非表面特征(如响应长度),避免传统模型的浅层判断缺陷。

五、总结

本文提出将奖励建模与推理结合的全新范式,通过RM-R1模型与两阶段训练框架,实现了奖励模型在准确性与可解释性上的突破。实验表明,推理能力是提升奖励模型性能的关键,而结构化推理轨迹与任务感知评估策略是成功的核心。


http://www.hkcw.cn/article/QDJaJvyXDG.shtml

相关文章

常见的电子元器件字母含义

元器件在电路图和 PCB 中通常以字母 数字的形式命名&#xff0c;例如 R1、C5、U3 等。其中的字母代表元件种类&#xff0c;数字用于区分多个同类元件。本文简要介绍一下常见元器件字母的含义&#xff0c;以及实物图和对应的符号图。&#xff08;注&#xff1a;本文参考图来自立…

【Qt】构建目录设置

问题 ProjectRoot/├── src/ # 源代码│ ├── project1│ └── project2├── build/ # 构建目录│ ├── build-PCIeDemoApp-Desktop_Qt_5_9_7_MSVC2015_64bit-Debug/│ └── build-PCIeDemoApp-Desktop_Qt_5_9_7_MSVC2015_64bit-Rele…

解决vscode打开一个单片机工程文件(IAR/keil MDK)因无法找到头文件导致的结构体成员不自动补全问题。

最近一直在用vscode安装c/c插件后编辑STM32标准库&#xff08;keil MDK&#xff09;项目源文件&#xff0c;因为我感觉vscode在代码编辑方面比keil MDK本身优秀太多。发现打开工程后&#xff0c;结构体变量的成员在输入“.”后不自己弹出的问题&#xff0c;后来查找各方资料&am…

Cursor快速梳理ipynb文件Prompt

1. 整体鸟瞰 请在不运行代码的前提下&#xff0c;总结 <文件名.ipynb> 的主要目的、核心逻辑流程和输出结果。阅读整个项目目录&#xff0c;列出每个 .ipynb / .py 文件的角色&#xff0c;以及它们之间的数据依赖关系&#xff08;输入→处理→输出&#xff09;。2. 结构…

Linux --进程优先级

概念 什么是进程优先级&#xff0c;为什么需要进程优先级&#xff0c;怎么做到进程优先级这是本文需要解释清楚的。 优先级的本质其实就是排队&#xff0c;为了去争夺有限的资源&#xff0c;比如cpu的调度。cpu资源分配的先后性就是指进程的优先级。优先级高的进程有优先执行的…

Web后端快速入门(Maven)

Maven是apche旗下的一个开源项目&#xff0c;是一款用于管理和构建java项目的工具。 开源项目&#xff1a;Welcome to The Apache Software Foundation. Maven的作用&#xff1a; 依赖管理&#xff08;方便快捷的管理项目依赖的资源&#xff0c;避免版本冲突问题&#xff09…

工业透明材料应力缺陷难检测?OAS 软件应力双折射案例来解决

应力双折射案例分析 简介 应力是物体内部力的分布状态&#xff0c;反映了物体材料中相邻部分之间的相互作用力。对于透明各向同性光学元件而言&#xff0c;在应力作用下会表现出暂时的双折射特性&#xff0c;这种特性使得光线在元件内部传播时&#xff0c;会分解为两束具有不同…

C# winform教程(二)----button

一、button的使用方法 主要使用方法几乎都在属性内&#xff0c;我们操作也在这个界面 二、作用 用户点击时触发事件&#xff0c;事件有很多种&#xff0c;可以根据需要选择。 三、常用属性 虽然属性很多&#xff0c;但是常用的并不多 3.常用属性 名称内容含义AutoSize自动调…

yzncms系统验证码关闭以及验证码后台配置功能

问题&#xff1a;yzncms系统的验证码如何关闭&#xff0c;以及怎么在后台配置参数呢&#xff1f; 回答&#xff1a;目前yzncms系统的验证码是没有后台配置功能的&#xff0c;也没有关闭功能&#xff0c;只能靠自己在源码里修改配置参数。 不过&#xff0c;不要着急&#xff0…

如何制定数字化转型策略:从理念到落地的全面指南

在当今快速变化的商业环境中&#xff0c;数字化转型&#xff08;DX&#xff09;已成为企业保持竞争力和实现可持续发展的关键。然而&#xff0c;很多企业在推进数字化转型时常常感到无从下手。今天小编就来为大家梳理一下如何制定一套科学且可行的数字化转型策略&#xff0c;助…

阿姆达尔定律的演进:古斯塔夫森定律

前言 在上一篇文章《使用阿姆达尔定律来提升效率》中提到的阿姆达尔定律前提是假设问题的规模保持不变&#xff0c;并且给定一台速度更快的机器&#xff0c;目标是更快地解决问题。然而&#xff0c;在大多数情况下&#xff0c;这并不完全正确。当有一台更快的机器时&#xff0…

Qt 仪表盘源码分享

Qt 仪表盘源码分享 一、效果展示二、优点三、源码分享四、使用方法 一、效果展示 二、优点 直观性 数据以图表或数字形式展示&#xff0c;一目了然。用户可以快速获取关键信息&#xff0c;无需深入阅读大量文字。 实时性 仪表盘通常支持实时更新&#xff0c;确保数据的时效性。…

吞咽与营养并重:进行性核上性麻痹的饮食之道

进行性核上性麻痹是一种罕见的神经系统变性疾病&#xff0c;患者常出现吞咽困难、肢体运动障碍等症状&#xff0c;合理饮食对改善患者营养状况、延缓病情发展至关重要。以下为进行性核上性麻痹患者量身定制的健康饮食方案。 ​患者饮食需遵循 “细软易消化、均衡营养、少食多餐…

leetcode hot100 链表(二)

书接上回&#xff1a; leetcode hot100 链表&#xff08;一&#xff09;-CSDN博客 8.删除链表的倒数第N个结点 class Solution { public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* currhead;int len0;while(curr){currcurr->next;len;}int poslen-n…

结构性设计模式之Composite(组合)

结构性设计模式之Composite&#xff08;组合&#xff09; 摘要&#xff1a; Composite&#xff08;组合&#xff09;模式通过树形结构表示"部分-整体"层次关系&#xff0c;使得用户能够统一处理单个对象和组合对象。该模式包含Component&#xff08;组件接口&#x…

【Typst】4.导入、包含和读取

概述 上节概述了Typst脚本的基础语法&#xff0c;在此基础上&#xff0c;本节介绍Typst文件的导入、包含和读取的内容。你将可以更简单灵活的组织你的文件内容。 系列目录 1.Typst概述2.Typst标记语法和基础样式3.Typst脚本语法4.导入、包含和读取5.文档结构元素与函数6.布局…

深入解析C++引用:从别名机制到函数特性实践

1.C引用 1.1引用的概念和定义 引用不是新定义⼀个变量&#xff0c;而是给已存在变量取了⼀个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同⼀块内存空间。比如四大名著中林冲&#xff0c;他有一个外号叫豹子头&#xff0c;类比到C里就…

【vue+ts】找不到模块“./App.vue”或其相应的类型声明

报错&#xff1a;找不到模块“./App.vue”或其相应的类型声明。 原因&#xff1a;typescript只能理解.ts文件&#xff0c;无法理解.vue文件。 解决&#xff1a;在src/env.d.ts下添加&#xff1a; /// <reference types"vite/client" /> // 三斜线引用告诉编译…

HTTP Error 400 Bad request 问题分析解决

文章目录 1.问题描述&#xff1a;2.异常信息如下&#xff1a;3.分析异常信息&#xff1a;4.总结&#xff1a; 1.问题描述&#xff1a; 前端保存老是报错HTTP ERROR 400 Bad Request。经过异常分析得出是前端传参导致的后端框架的验证拦截&#xff0c;包的错误。 2.异常信息如下…

数据库的操作

1.查看数据库 show databases; 2.库的创建 create database [IF NOT EXITS] db_name [creat_specification];[]内的是可选选项&#xff0c;IF NOT EXIT表示如果数据库名为db_name的数据库存在就创建数据库&#xff0c;否则就不创建&#xff0c;creat_specification是创建的特…