OpenAI最新研究Let's verify step-by-step,过程胜于结果!

news2024/11/22 6:18:06

ab82ad532b90d63a781fde35c0fc93ac.png

深度学习自然语言处理 原创
作者:Winni

097931127a0ab458d681981c83561c5e.png

OpenAI最新研究 <Let’s verify step-by-step> 于昨天发布,引起了广泛关注。这个想法非常简单,可以用一句话来概括:

对于复杂的逐步推理问题,我们在每个步骤都给予奖励,而不仅仅在最后根据结果给予一个奖励。这种密集的奖励信号取得了更好的结果。

小时候老师就告诉过我们,做作业要写出解题过程,不写解题步骤会被扣分,看来这个想法确实有道理!

76db1d3621e1fad964e9b17d16f1c7e4.png

之前的研究已经发现,大语言模型 (LLMs) 可以通过逐步思考 (Chain of Thought, CoT) 解决多步推理任务。然而,即使是最先进的模型也常常会产生错误信息,编造出虚假的事实。

一种有效的解决方法是训练奖励模型来区分好的和不好的输出结果,并通过强化学习进一步优化。但最终模型的性能很大程度上依赖于奖励模型本身的质量。因此,我们需要研究如何有效地训练可靠的奖励模型。

为此,OpenAI提出过程监督方法 (process supervision),训练了一种新的奖励模型,在数学问题解决方面取得了新的突破。与仅仅奖励最终正确结果的结果监督 (outcome supervision) 不同,他们通过在每个推理步骤上给予奖励,使得模型的性能显著提升。

这种过程监督不仅在性能上有所改进,还对于模型的对齐性有重要意义。此外,这项研究还改善了GPT模型中的幻觉问题,即在不确定性情况下产生虚假信息的倾向。

需要注意的是,过程监督需要更多的人工标注。OpenAI公开了他们的人工反馈数据集,其中包含了12,000个MATH问题的75,000个解决方案,共计800,000个步骤级别的标签。

如果你想深入了解OpenAI的这项研究,我们为你准备了第一手的论文解读。让我们一起来看看过程监督方法的一些细节吧!

Blog: https://openai.com/research/improving-mathematical-reasoning-with-process-supervision
Paper: https://cdn.openai.com/improving-mathematical-reasoning-with-process-supervision/Lets_Verify_Step_by_Step.pdf

进NLP群—>加入NLP交流群

实验方法

实验设置

作者进行了一项结果监督和过程监督的比较研究,在两种规模下进行了实验。其中,结果监督可以直接检查数学题的结果,不需要人类参与,而过程监督则需要人类标注者来标记每个步骤的正确性。

在大规模实验中,作者首先对所有GPT-4模型进行了微调,致力于训练最可靠的结果奖励模型 (outcome  reward model, ORM) 和过程奖励模型 (process reward model, ORM)。然而,这些奖励模型的训练集无法直接进行比较。因此,作者还训练了一些小规模的模型来进行实验,同时使用大模型来指导小模型的训练,以减少人类标记成本。

在每个模型规模下,使用一个固定的模型(实验里用的是GPT-4)作为生成器(generator)来生成所有的解决方案。作者没有尝试通过强化学习(RL)来改进生成器,而是专注于训练最可靠的奖励模型。评估奖励模型的可靠性则通过对生成器产生的解决方案进行最佳N选1搜索,并根据最终答案进行自动评分来衡量的。更可靠的奖励模型会更频繁地选择正确的解决方案。

所有大规模模型都是从GPT-4模型进行微调的。该模型的预训练仅用于预测下一个标记,它没有经过任何来自人类反馈的RL训练(RLHF)。小规模的基础模型与GPT-4在设计上类似,但其计算量大约少了200倍。作为额外的预训练步骤,作者将所有模型在一个包含大约15亿个与数学相关的标记的数据集MathMix上进行微调。

生成器

为了更容易解析单个步骤,作者首先要训练生成器以按照换行符分隔的逐步格式生成解决方案。具体而言,作者首先少量生成MATH训练问题的解决方案,筛选出达到正确最终答案的解决方案,并对GPT-4模型在此数据集上进行一次微调。此步骤并不旨在教会生成器新的技能,而仅旨在教会生成器以所需的格式生成解决方案。

数据收集

为了收集过程监督数据,作者向大规模生成器抽样呈现MATH问题的逐步解决方案,供人类数据标注者标注。标注者的任务是为解决方案中的每个步骤分配正面、负面或中性的标签,如下图所示。正面标签表示该步骤是正确合理的,负面标签表示该步骤要么是不正确的,要么是不合理的,中性标签表示存在歧义。

55b19cf861b043a8cf54dcec604ac636.png

作者仅从大规模生成器标记解决方案,将收集到的步骤级标签数据集称为PRM800K。PRM800K训练集包含了来自12,000个问题的75,000个解决方案中的800,000个步骤级标签。为了减少过拟合,作者将来自4,500个MATH测试问题的数据包含在PRM800K训练集中,仅在剩余的500个MATH测试问题上评估模型。

在数据收集过程中需要向数据标注者展示可能的解决方案。最直接的策略是均匀地展示生成器生成的解决方案。然而,如果展示明显错误的解决方案,获得的人工反馈就没有那么有价值。因此,研究团队选择性地展示给数据标注者某些解决方案——他们更愿意展示那些更有可能欺骗最佳奖励模型的解决方案。

此外,作者还在数据收集过程的几个时间点迭代地使用最新的数据重新训练过程奖励模型PRM。在每次迭代中,对每个问题生成N个解决方案,并仅向数据标注者展示得分最高的K个具有说服力的错误答案解决方案。作者尝试将此top-K过滤应用于问题级别(每个问题K个解决方案)或全局级别(总共K个解决方案,在问题之间不均匀分布)。

结果奖励模型ORM

作者从生成器中均匀抽样每个问题的固定数量的解决方案,并训练ORM来预测每个解决方案的正确性。在实践中,通常通过自动检查最终答案来确定正确性。在测试时,使用ORM在最后一个标记处的预测作为解决方案的整体得分。需要注意的是,用于确定ORM目标的自动评分并不完全可靠:通过错误的推理得出正确答案的假阳性解决方案会被误分。

过程奖励模型PRM

作者训练了过程奖励模型PRM来预测每个步骤中最后一个标记后的步骤的正确性。这种预测采用单个标记的形式,并且他们在训练过程中最大化了这些目标标记的对数似然。因此,PRM可以在标准语言模型流水线中进行训练,无需进行任何特殊调整。在测试时,他们只需对整个解决方案进行一次PRM前向传递,就可以确定步骤级别的预测。为了比较多个解决方案,他们需要为每个解决方案计算单个得分。这个过程是重要的,但也是直接的:他们将解决方案的PRM得分定义为在PRM下每个步骤都正确的概率,并实现为每个步骤的正确性概率的乘积。

下图是两个不同解决方案的大规模PRM得分。对于同一个问题的两个解决方案,通过PRM进行评分。左边的解决方案是正确的,而右边的解决方案是错误的。绿色背景表示高的PRM得分,红色背景表示低的得分。PRM正确地识别出了错误解决方案中的错误。

f0f5e30b4a961a7dfc5ef192da4758e1.png

在提供过程监督时,他们有意选择只监督到第一个错误的步骤。这样做使得结果监督和过程监督之间的比较更加简单明了。对于正确的解决方案,两种方法提供相同的信息,即每个步骤都是正确的。对于不正确的解决方案,两种方法都揭示了至少存在一个错误,而过程监督还揭示了该错误的具体位置。如果他们在第一个错误之后提供额外的过程监督,那么过程监督将具有更大的信息优势。这个决策还保持了对人类的标注成本相似:在不依赖于易于检查的最终答案的情况下,确定解决方案的正确性等价于确定其第一个错误。

大规模监督学习

研究团队训练了大规模的PRM,使用PRM800K中的步级标签进行训练。为了确保大规模ORM基准线尽可能强大,他们从生成器中对每个问题进行了100次均匀采样进行训练。这意味着ORM训练集与PRM800K没有重叠,并且ORM训练集的规模比PRM800K大一个数量级。需要注意的是,仅在PRM800K解决方案上训练ORM可能存在问题,因为主动学习策略严重偏向了错误答案的解决方案。作者曾尝试在PRM800K解决方案的超集上训练ORM,通过混合均匀采样的解决方案,但发现这并没有提高ORM的性能。

下图显示了每个奖励模型的最佳N表现如何随N的变化而变化。由于多数投票被认为是一种强大的基准线,作者还将该方法作为比较的一个点进行了比较。虽然ORM的表现略优于多数投票基准线,但PRM明显优于两者。不仅在所有N值上PRM的性能更高,而且随着N的增加,性能差距越来越大。这表明,在搜索大量模型生成的解决方案时,PRM比ORM和多数投票更有效。

1f46e82024082294114ad4d043951b96.png研究团队还尝试了使用RM加权投票来结合PRM和多数投票的优势,但并没有明显改善性能。

小规模合成监督学习

为了更好地比较结果和过程监督,需要分离出两个混淆因素。首先,ORM和PRM的训练集无法直接进行比较:PRM训练集是通过主动学习构建的,偏向于错误答案的解决方案,并且规模小了一个数量级。其次,最终答案的评分会给达到正确最终答案但推理过程错误的虚假解决方案提供正面标签。这可能会损害ORM的性能,而这种效果不能归因于一般的结果监督。由于收集人工反馈的成本很高,无法轻易地通过人工标注者去除这些因素。相反,作者使用大规模的PRM来监督较小的模型来进行相关的消融实验。这个设置可以以较低的成本模拟大量的数据收集。

过程监督与结果监督

作者们进行了直接比较过程监督和结果监督的实验。首先,他们从一个小规模的生成器中随机选取每个问题1到200个解决方案。针对每个数据集,他们提供三种监督方式:来自PRMlarge(即大规模PRM,以下简称PRMlarge)的过程监督、来自PRMlarge的结果监督以及来自最终答案检查的结果监督。这三种奖励模型之间唯一的区别就是监督方式,除此之外它们在相同的数据集上进行训练。

在下图a中,作者通过每个模型的500个最佳选择来评估每个奖励模型。结果显示,过程监督在所有数据收集规模上明显优于结果监督的两种形式。在下图b中,他们通过不同的N值评估每个系列中最佳奖励模型的最佳N表现。

5b97ac7590e9bfff822f885818746195.png

结果显示,使用PRMlarge进行结果监督明显比最终答案检查更有效。这可以解释为PRMlarge为达到正确的最终答案但使用了错误推理的解决方案提供了更好的监督。目前尚不清楚PRMlarge还是最终答案检查更适合作为结果监督的基准。虽然最终答案监督更明确地基于结果,但其主要缺点(存在错误的正例)在MATH数据集中可能被过分强调。由PRMlarge提供的结果监督更好地代表了在不容易出现错误正例的领域中的结果监督。

主动学习

最后,作者研究了主动学习的影响,使用一种小规模的奖励模型PRMselector,对每个问题从样本中选择一份进行训练,并使用该模型对每个问题评分1000个样本。为了训练较大规模奖励模型,作者从每个问题选择N个样本,其中80%是最令人信服的错误答案样本,20%是剩下的最令人信服的样本(正确或错误答案)。作者使用PRMlarge对所选样本进行评分并基于这些评分进行训练。这个过程确保所有样本在PRMselector下都相对令人信服,并且大部分已知包含至少一个错误,并且整体数据集不会过分偏向错误答案的解决方案。这种数据标记方案的性能如图4a所示。通过比较具有和不具有主动学习的最佳拟合线的斜率,估计这种形式的主动学习比均匀数据标记大约高效2.6倍。注意基于最大主动学习数据集(每个问题200个样本)训练的模型似乎略低于预期的趋势线。这一观察的最佳解释是,200个样本代表了整体选择池(1000个样本)的相当大比例,这种相对缺乏多样性限制了主动学习的潜在优势。

泛化能力

为了衡量样本外的泛化能力,作者在一个包含224个STEM问题的保留集上评估了大规模ORM和PRM,这些问题来自最近的AP物理学、AP微积分、AP化学、AMC10和AMC12考试。这些测试是在预训练数据集编制之后发布的,因此可以高度确信模型没有见过这些问题。结果表明PRM的表现优于ORM和多数投票。这说明PRM具有较好的泛化能力,能够在新的测试问题上表现出色。

讨论

信用分配

过程监督相比结果监督有一个明显的优势,那就是它提供了比结果监督更精确的反馈。通过结果监督训练的奖励模型面临着一个困难的信用分配任务——为了良好地泛化,它必须确定错误解决方案的具体错误之处。这对于难题来说尤其困难:大多数由模型生成的解决方案都存在某种错误,因此结果监督中负标签的边际价值较低。相比之下,过程监督提供了更丰富的信号:它不仅指定了前几个步骤中有多少是正确的,还精确定位了错误步骤的位置。

对齐影响

过程监督在与人工智能对齐相关的方面比结果监督具有几个优势。过程监督更有可能产生可解释的推理,因为它鼓励模型遵循人类认可的过程。过程监督本质上更安全:它直接奖励对齐思维链,而不是依赖结果作为对齐行为的代理。相比之下,结果监督更难以审查,传达的偏好也不够精确。在最坏的情况下,使用结果作为不完美的代理可能导致模型在学习利用奖励信号后变得不对齐。在某些情况下,为了安全的AI系统可能会导致性能降低,这是已知的对齐税。一般来说,任何对齐税都可能妨碍对对齐方法的采用,因为存在部署最强大模型的压力。过程监督实际上产生了负面的对齐税。这可能会导致过程监督的广泛采用,这将产生积极的对齐副作用。

测试集污染

MATH数据集的测试集包含了在多个在线场合讨论过的问题,很可能其中一些问题出现在模型的预训练数据集中。作者尝试使用字符串匹配的启发式方法从MathMix数据集中删除所有MATH问题,但由于人们可以在网上发布难以检测到的问题改写,很难对MathMix和MATH数据集之间的重叠部分做出强有力的保证。在检查模型生成的解决方案时,作者没有明显发现模型记住了MATH问题的迹象。然而,依旧无法排除可能会逃过手动检查的细微记忆形式,而且仍然有可能某种程度的污染会稍微夸大模型在MATH测试集上的表现。即使在这种情况下,我们预计任何污染都会在所有方法中表现出类似的情况,并且在整个工作中进行的相对比较大部分不会受到影响。此外,PRM经常提供一些在生成器下的解决率很低的MATH问题的正确解决方案。生成器的低解决率进一步表明它没有通过测试集污染遇到过这些问题。

总结

这篇研究表明,在数学推理领域,通过过程监督可以训练出比结果监督更可靠的奖励模型。同时,通过主动学习,可以仅呈现最有价值的模型完成,从而降低了人工数据收集的成本。研究团队发布了名为PRM800K的完整数据集,其中包含用于训练最先进奖励模型的人工反馈数据。他们希望通过消除这一重要的研究门槛,推动相关领域对大型语言模型的对齐研究。他们认为,目前对过程监督的研究还不够深入,期待未来的工作能更全面地探索这些方法的普适性。


进NLP群—>加入NLP交流群

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

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

相关文章

用GANs来做数据增强

适用于只有很少样本的情况。 即使是不完美的合成数据也可以提高分类器的性能。 生成对抗网络(Generative adversarial networks&#xff0c;简称GANs)由Ian Goodfellow于2014年推出&#xff0c;近年来成为机器学习研究中非常活跃的话题。GAN是一种无监督生成模型&#xff0c;它…

光栅尺磁栅尺编码器AB信号输入4倍频脉冲计数器,Modbus RTU模块

IBF153远程I/O模块&#xff0c;可以用来测量1路光栅尺磁栅尺编码器信号。 信号输入 1路光栅尺磁栅尺编码器信号输入&#xff0c;可接NPN和PNP信号&#xff0c;通过命令设置输入类型。 通讯协议 通讯接口&#xff1a; 1路标准的RS-485通讯接口。 通讯协议&#xff1a;支持两…

一篇文章搞定《Android嵌套滑动》

一篇文章搞定《Android嵌套滑动》 前言嵌套滑动冲突种类产生原因1、外部与内部滑动方向不一致2、外部与内部滑动方向一致3、多种情况下的嵌套&#xff08;电商首页&#xff09; 解决嵌套滑动的方法1、外部拦截法2、内部拦截法3、现有API框架 外部与内部滑动方向不一致1、ViewPa…

MySQL第三章、表的增删查改

目录 一、CRUD 二、新增&#xff08;Create&#xff09; 2.1单行数据 全列插入 ​2.2多行数据 指定列插入 ​编辑 三、查询&#xff08;Retrieve&#xff09; ​3.1全列查询 3.2指定列查询 3.3 查询字段为表达式 3.4 别名 3.5 去重&#xff1a;DISTINCT 3.6 排序…

docker-compose安装 rocketmq server、dashboard

目录 目录结构 nameserver安装 broker安装 控制台安装 测试效果 rocket分为3个服务&#xff1a;nameserver、broker、dashboard 这边我计划分开安装&#xff1a; 安装版本为4.5.0 目录结构 规划的结构 命令 mkdir -p /apps/rocketmq/namesrv/{config,data,logs} mkdir…

自动化测试-终章

自动化测试-终章 前沿 如果想做不需要人去点击使用程序做到真正的自动化测试思想,以下是我的思想,需要跟着我的思路来,我们做一个可以测试所有页面的增删改查功能是否好使 思想一 我使用的是Java 做自动化测试,我们现做一个简单的自动化 pom 需要引入 selenium-java 然后需…

Qt中的窗口类及其特点

目录 常用的窗口类 窗口的显示内嵌窗口 QWidget内嵌窗口演示 QWidget不内嵌窗口演示 QDialog类型的窗口特点 QMainWindows窗口的特点 总结 常用的窗口类 常用的窗口类有 3 个 在创建 Qt 窗口的时候&#xff0c;需要让自己的窗口类继承上述三个窗口类的其中一个QWidget 所有…

增量数据抽取技术

写在前面 本文隶属于专栏《大数据从 0 到 1》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和文献引用请见《大数据从 0 到 1》 正文 在数据仓库中要实现增量抽取&#x…

STL-string-1

stoi int stoi (const string& str, size_t* idx 0, int base 10);int stoi (const wstring& str, size_t* idx 0, int base 10); Convert string to integer 解析str&#xff0c;将其内容解释为指定基数的整数&#xff0c;该整数作为int值返回。 如果idx不是空…

QLoRa:在消费级GPU上微调大型语言模型

大多数大型语言模型(LLM)都无法在消费者硬件上进行微调。例如&#xff0c;650亿个参数模型需要超过780 Gb的GPU内存。这相当于10个A100 80gb的gpu。就算我们使用云服务器&#xff0c;花费的开销也不是所有人都能够承担的。 而QLoRa (Dettmers et al.&#xff0c; 2023)&#x…

公司裁员不给赔偿怎么办?

阅读本文大概需要 1.61 分钟。 最近在星球回答球友问题的时候&#xff0c;发现不少人都提到裁员这个话题。 有球友说他们公司在裁员&#xff0c;但不想给赔偿。 领导给他的方案是把年假调休休了&#xff0c;然后再给三周找工作时间&#xff0c;这三周不用打卡&#xff0c;三周后…

茅塞顿开的C#代码——通用型科学计算器

计算器是经常遇到的编程作业。 一般都是实现加、减、乘、除四则运算的普通计算器。 这里介绍用几十行C#代码实现的复杂的《科学计算器》&#xff0c;可以计算各种函数。 不知道其他语言实现同样的功能需要编写多少行代码&#xff1f;20000行&#xff1f; using System; usin…

SpringBoot接口如何正确地接收时间参数

唠嗑部分 在做Java开发时&#xff0c;肯定会碰到传递时间参数的情况吧&#xff0c;比如用户的出生日期、活动的开始&#xff0c;结束日期等等&#xff0c;这些参数往往是由前端传递过来的&#xff0c;那么在SpringBoot项目中&#xff0c;该如何正确的接收日期参数呢&#xff0…

如果不小心上了电信黑名单,应该怎么妥善处理呢?

有些小伙伴们在处理不用的手机卡时&#xff0c;可能会粗心大意&#xff0c;认为不用了就用不了呗&#xff0c;存在欠费停机的情况下也没有及时的去补交欠费&#xff0c;然后销户&#xff0c;导致了自己不小心上了电信黑名单&#xff0c;那遇到这种情况&#xff0c;应该怎么妥善…

论文解读 | 利用图形卷积核在距离图像中实现高效的3D目标检测

原创 | 文 BFT机器人 01 摘要 该论文提出了一种基于范围图像的高效3D物体检测方法&#xff0c;通过利用图卷积核来提取每个像素周围的局部几何信息。 作者设计了一种新颖的2D卷积网络架构&#xff0c;并提出了四种替代内积核心的卷积核&#xff0c;以注入所需的三维信息。该方法…

GPT最常用的应用场景有哪些?

生成式预训练转换器&#xff08;GPT&#xff09;是一种深度学习模型&#xff0c;它能够根据给定的提示生成类似人类的文本&#xff0c;彻底改变了自然语言处理&#xff08;NLP&#xff09;领域。 聊天机器人和虚拟助手 GPT最受欢迎的应用程序之一是开发聊天机器人和虚拟助手。凭…

【Python 自然语言处理(NLP)】零基础也能轻松掌握的学习路线与参考资料

Python 自然语言处理&#xff08;NLP&#xff09;是目前人工智能&#xff08;AI&#xff09;发展中的重要领域。随着科技的不断进步&#xff0c;NLP已经被应用于文本自动摘要、机器翻译、语音识别、情感分析、问答系统等各项实际任务中。 要学习 Python 自然语言处理&#xff…

“河南省数字化转型与信息技术应用创新专家研讨会-政府数字化转型推动信创产业发展”专场活动成功召开

由《中国信息化》杂志社主办的“2023河南省数字化转型与信息技术应用创新专家研讨会——政府数字化转型推动信创产业发展”专场活动于5月27日&#xff0c;在郑州成功举办。本次活动由深圳竹云科技股份有限公司协办&#xff0c;由河南省测绘学会、中国信息主管平台支持。中国交通…

Windows 安装部署 MinIo

1、下载地址 安装包下载地址&#xff1a;https://min.io/download#/windows 2、安装目录 下载的是一个可执行文件 minio.exe 将其放到一个方便寻找的目录&#xff0c;我这里放在 D:\develop\minio 同时新建一个 data 文件夹&#xff0c;用来存储上传的文件 3、启动 MinIo 服…

Godot引擎 4.0 文档 - 第一个 3D 游戏

本文为Google Translate英译中结果&#xff0c;DrGraph在此基础上加了一些校正。英文原版页面&#xff1a; Your first 3D game — Godot Engine (stable) documentation in English 你的第一个 3D 游戏 在这个循序渐进的教程系列中&#xff0c;您将使用 Godot 创建您的第一…