OpenAI | Let’s Verify Step by Step详细解读

news2025/2/23 13:08:47

一、概述

title:Let’s Verify Step by Step

论文地址:https://arxiv.org/abs/2305.20050

代码:GitHub - openai/prm800k: 800,000 step-level correctness labels on LLM solutions to MATH problems

1.1 Motivation

  1. 近期大模型的出现极大的提升了复杂问题的多步推理能力,例如可以通过逐步思考(CoT)改善推理任务,但是即使最先进的模型也会产生逻辑错误。
  2. 如何训练一个更好的reward model,来做大模型的alignment对齐研究也是一个具有挑战的问题。
  3. 结果监督(只提供最终的结果作为监督信号)和过程监督(提供每一个中间推理结果的反馈)哪个好,还有待详细对比和研究。

1.2 Methods

  1. 实验步骤和方法:
    1. 训练最可靠的reward model:对GPT-4模型进行微调,拿到最可靠的ORM和PRM。
    2. 生成器:通过GPT-4生成所有候选解决方法,此步GPT-4没经过RL来alignment优化。
    3. 评价:对生成的结果进行N选1,最终根据答案来评分。
    4. 两种不同规模的模型:所有大模型是通过GPT-4微调,没有经过RL训练,小规模模型和GPT4类似,但是计算量少200倍,模型在15亿数学相关的数据集MathMix上进行了微调。
  1. 过程反馈数据收集方法:

  • 数据收集方案【基础方案】:对于每一步收集人类反馈结果
  • 优化策略【高价值负样本挖掘】:标注数据的时候,尽可能对更有可能欺骗reward模型的数据来进行标注,如果展示明显错误的解决方案,获得的反馈价值没那么大
  • 迭代训练奖励模型【高价值负样本挖掘】:在每次迭代中,对每个问题生成N个解决方案,并仅向数据标注者展示得分最高的K个具有说服力的错误答案解决方案。作者尝试将此top-K过滤应用于问题级别(每个问题K个解决方案)或全局级别(总共K个解决方案,在问题之间不均匀分布)
  1. ORM以及PRM建模方法
    1. Outcome-supervised Reward Models (ORMs):直接判断一个solution最终结果是正确还是错误的【有可能中间推理错误,最终结果正确的现象】。
    2. Process-supervised Reward Models (PRMs):加入了每一步step的标记,这样可以直接在自回归模型进行训练,同时在遇到结束位置标记时,训练PRMs去预测每一step是否正确。
    3. 如何解决ORM和PRM监督信号不对等的问题:在提供过程监督时,他们有意选择只监督到第一个错误的步骤。这样做使得结果监督和过程监督之间的比较更加简单明了。对于正确的解决方案,两种方法提供相同的信息,即每个步骤都是正确的。对于不正确的解决方案,两种方法都揭示了至少存在一个错误,而过程监督还揭示了该错误的具体位置。如果他们在第一个错误之后提供额外的过程监督,那么过程监督将具有更大的信息优势。这个决策还保持了对人类的标注成本相似:在不依赖于易于检查的最终答案的情况下,确定解决方案的正确性等价于确定其第一个错误。

说明:左边是正确的slutions,右边有部分推理是错误的,PRM(过程监督)正确地指出了错误答案中的错误

1.3 Conclusion

  1. 过程监督比结果监督好很多,在数学领域,能极大的提升performance,训练更可靠的reward model,本文训练的过程监督模型在MATH子数据集解决了78%的问题,消除这一重大进入障碍将促进对大型语言模型对齐的相关研究。
  2. 主动学习(active learning)可以极大提升过程监督的效率(data efficiency提升2.6倍)。
  3. 放出了PRM800K数据集:80万 step-level人类反馈的标签(本文训练reward model的数据集)

二、详细内容

1 大规模监督学习

目的:比较PRM(过程监督) vs ORM(结果监督)最佳表现与N(每个问题N个solution的数量选一个最终的结果)的关系

  • N:每个问题solution的个数
  • ORM:结果监督,解决72.4%,比投票好一点,说明加上监督信号的reward 模型还是有用的。
  • PRM:过程监督,解决78.2%的问题,比ORM好不少。
  • Majority Voting:投票,感觉也不错,需要产生多个结果来投票,有点类似模型融合。
  • 与N的关系:随着N的增大,PRM和ORM的gap越来越大,说明相对于ORM和Majority Voting,PRM能更有效的在众多答案中找到正确的答案。

2 小规模合成监督学习【公平对比ORM和PRM】

背景:由于数据集构建,监督方法的不同,以及结果评判方法的不同,直接对比ORM和PRM有点不太好比较

原因:(1)ORM和PRM的训练集无法直接进行比较:PRM训练集是通过主动学习构建的,偏向于错误答案的解决方案,并且规模小了一个数量级。(2)ORM最终答案的评分正确但可能推理过程错误带来评判不公平。(3)收集人工反馈的成本很高,无法轻易地通过人工标注者去除这些因素

解决方法:使用大规模的PRM(PRMlarge)来监督较小的模型来进行相关的消融实验。这个设置可以以较低的成本模拟大量的数据收集。

  • solution生成:从一个小规模的生成器中随机选取每个问题1到200个解决方案。
  • 三种监督方式:相当于利用大的PRMlarge来做小模型的PRM或者ORM,控制PRM或者ORM作为变量,监督模型PRMlarge保持不变的:
    • PRM(PRMlarge supervised):利用PRMlarge(即大规模PRM,以下简称PRMlarge)来做过程监督
    • ORM(PRMlarge supervised):利用PRMlarge(即大规模PRM,以下简称PRMlarge)来做结果监督
    • ORM(final-answer supervised):不看过程,只看最终结果,相当于只拿最终结果来进行监督
  • 结论:
    • 图(a)根据500个最佳选择来评估每个奖励模型。我们看到,在所有数据收集规模上,PRM过程监督的表现都大大优于两种形式的结果监督(ORM(PRMlarge supervised)和 ORM(final-answer supervised))。
    • 图(b)通过其在N个不同值中的最佳表现来评估每个系列的最佳奖励模型。我们看到,使用PRMlarge进行结果监督明显比最终答案检查更有效。这可以解释为,PRMlarge为使用不正确的推理得出正确最终答案【结果正确,推理错误】的解决方案提供了更好的监督。

3 主动学习

  • 背景:主动学习是一种机器学习技术,它可以通过选择最具价值的样本来优化模型训练过程。
  • 方法步骤:
    • 使用一种小规模的奖励模型PRMselector,每个问题评分1000个样本。
    • 从每个问题选择N个样本,其中80%是最令人信服的错误答案样本,20%是剩下的最令人信服的样本(正确或错误答案)
    • 使用PRMlarge对所选样本进行评分并基于这些评分并进行训练
  • 结论:
    • 性能如图4a所示。通过比较具有和不具有主动学习的最佳拟合线的斜率,这种数据标记方案的性能比均匀数据标记大约高效2.6倍。
    • 当使用最大主动学习数据集(每个问题200个样本)训练模型时,结果略低于预期的趋势线,可能是因为200个样本代表了整体选择池(1000个样本)的相当大比例,导致相对缺乏多样性限制了主动学习的潜在优势。

4 泛化能力

  • 方法:一个包含224个STEM问题的保留集上评估了大规模ORM和PRM,这些问题来自最近的AP物理学、AP微积分、AP化学、AMC10和AMC12考试。这些测试是在预训练数据集编制之后发布的,因此可以高度确信模型没有见过这些问题。
  • 结论:PRM的泛化能力表现优于ORM和多数投票。这向我们表明,PRM可以容忍适度的distribution shift,其强劲的表现在新的测试问题上保持不变。

三、参考文献

  1. OpenAI最新研究Let's verify step-by-step,过程胜于结果!:OpenAI最新研究Let's verify step-by-step,过程胜于结果!
  2. Let's Verify Step by Step:Let's Verify Step by Step

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/619474.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

青岛科技大学|物联网工程|物联网定位技术(第一讲)|6.7

目录 物联网定位技术(第一讲) 1. 什么是物联网定位技术? 2. 物联网定位技术主要有哪些? 3. 简述卫星定位系统的发展历史以及GPS的发展概况? (1)卫星定位的由来和发展 (2&…

【Mysql】InnoDB 中 B+ 树索引的注意事项

一、根页面万年不动 在之前的文章里,为了方便理解,都是先画存储用户记录的叶子节点,然后再画出存储目录项记录的内节点。 但实际上 B 树的行成过程是这样的: 每当为某个表创建一个 B 树索引,都会为这个索引创建一个根…

Vue.js 中的服务端渲染和客户端渲染的区别

Vue.js 中的服务端渲染和客户端渲染的区别 Vue.js 是一个流行的前端框架,它提供了一种简单而强大的方式来构建交互式用户界面。Vue.js 可以在客户端和服务端执行渲染,这两种方式有不同的优势和劣势。本文将介绍 Vue.js 中的服务端渲染和客户端渲染的区别…

安全测试:13款免费的安全测试工具,抓紧白嫖不看后悔

目录 1. Excercise in a Box 2. Needle 3. DevSlop 4.移动安全框架(Mobile Security Framework) 5. Frida 6. Nishang 7.Tamper 8.InSpec 9. Faraday 10. Pocsuite 11. Taipan 12.Pacu 13. Secure Guilld 总结 1. Excercise in a Box Excercise in a Box是由英国…

Vue2 前端路由

SPA 单页面应用 只有一个页面(一个html文件) vue-router 组件之间的切换(hash地址与组件间的关系)–前端路由 vue版本与路由版本的对应关系 vue2->router3 vue3->router4 入门 用vue脚手架创建只有babel组件的vue项目…

Vue.js 中的 mixin 和混入有什么区别?

Vue.js 中的 mixin 和混入有什么区别? 在 Vue.js 中,mixin 和混入是两个常用的概念,它们可以帮助我们实现代码的复用和组件间的通信。虽然它们的名字很相似,但它们的作用和用法有所不同。本文将介绍 mixin 和混入的区别&#xff…

在Windows中安装极狐GitLab Runner(解决 Host key verification failed.)

官方文档:https://docs.gitlab.cn/runner/install/windows.html 在Windows中安装极狐GitLab Runner 1.下载GitLab Runner二进制文件,新建一个文件夹(不要有中文),并将二进制文件放入该文件夹,重命名为“git…

最新成果展示:AlInN/GaN DBR模型数据库的开发与应用

由于AlN和GaN之间存在较大的晶格失配和热膨胀失配,导致很难获得高质量的AlN/GaN布拉格反射镜(Distributed Bragg Reflection,DBR)结构。为解决该问题,天津赛米卡尔科技有限公司技术团队基于先进的TCAD仿真设计平台开发…

OpenAI Triton 初探

Triton 2021年发布了1.0,我在调研GPU使用方法的时候知道了有这个东西,但是当时还不了解OpenAI,觉得这个项目太新太小众,并没有深究。现在GPT大火之后,再回过头看看他们的这个东西。 现在相关文档还是很少,…

EXCEL数据计算分析功能助力PID闭环控制优化

EXCEL大家并不陌生,这篇博客记录汇总利用EXCEL进行工作分析的一些技巧,专栏也会持续更新,感谢大家关注评论。首先介绍下工控上用的比较多的模拟量采集,模拟量采集的数学基础大家可以查看下面的博客: PLC模拟量输出 模拟量转换FC S_RTI_博图模拟量输出指令_RXXW_Dor的博客…

INDEMIND:陷入创新焦虑的扫地机器人,下一步该怎么走?

卖不动的扫地机器人,需要翻过高价和智能化两座大山。 卖不动的背后,原因是什么? 视角回到行业,随着基站型全功能扫地机器人的出现,机器人的产品力和使用体验得到明显提升,可以说已经能够极大程度的满足消…

Java中查看堆里的信息

文章目录 前言1 建议无脑的做一件事2 jmp命令3 导入 hprof 文件到Visual VM 中4 查看对象属性值 前言 日常工作中,我们可能会遇到这样的场景: java项目发生了OOM;想知道在某种场景下,堆里的信息,从而确认一些代码功能…

2000道面试必问的Java面试八股文及答案整理(2023版)

说快也快,说不快也不慢! 年前,陆陆续续,好多大厂都在裁员; 年后,又有一大批程序员失业,找不到避风港; 这时候,就有人说了,为什么找工作这么难?…

【技巧】ZIP文件的分卷压缩如何设置 ?

有时候,因为文件过大,我们进行压缩后发现压缩包依旧很大,不方便储存或邮件发送等。 这种情况就需要把文件进行分卷压缩,也就是根据需要的大小,把文件分别压缩成若干个小压缩包。 还不了解的小伙伴,可以看…

入行这几年,我已经快要摸透了软件测试这一行!

目录 前言: 第一年 第二年 第三年 第四年 作为过来人的一些忠告 自动化测试到底应该学什么? 结尾: 前言: 软件测试是通过对软件系统进行测试、诊断和验证,以保证软件系统能够符合用户需求和预期质量标准的过程。 大…

java设计模式之:适配器模式

文章目录 适配器模式定义通用代码实现适用场景案例场景分析一坨坨代码实现适配器模式重构 总结 适配器模式(Adapter Pattern):将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够…

熬夜整理21条避坑指南,细聊该如何让自动化完美运行!

目录 1、引言 2、避坑内容总结 2.1无法定位到元素 2.2 Indentation Error 2.3 PO设计模式类 2.4 页面封装类中没有已定义函数的问题 2.4.1 提示没有该方法 2.4.2 没有定义好的函数 2.5 parater must be str 2.6 继承 2.7 not all arguments curerted during string …

前端web自动化测试:selenium怎么实现关键字驱动

要做 ui 自动化测试,使用关键字驱动可以说是必须会的一种测试方式,它既可以在纯代码的自动化程序中运行,也可以在测试平台中使用。 使用纯代码方式时,自动化工程师先写好一个通用的程序,其他手工测试人员只需要把执行…

Python 中文编码

Python 文件中如果未指定编码,在执行过程会出现报错: #!/usr/bin/python print (“你好,世界”) 以上程序执行输出结果为: File “test.py”, line 2 SyntaxError: Non-ASCII character ‘\xe4’ in file test.py on line 2, b…

接口自动化测试:Python+Pytest+Requests+Allure

本项目实现了对Daily Cost的接口测试: PythonRequests 发送和处理HTTP协议的请求接口Pytest 作为测试执行器YAML 管理测试数据Allure 来生成测试报告。 本项目是参考了pytestDemo做了自己的实现。 1. 项目结构及安装部署 项目结构 api: 接口封装层,…