提升大模型数学推理能力: 过程监督
思维链采用逐步推理的方式得到最终结果,如果模型在某一步出现幻想 (Hallucination),则差之毫厘,谬以千里,后面的错误会被放大,导致错误结果。
OpenAI最近提出使用过程监督 (Process Supervision) 减少大模型幻想并提升大模型的数学推理能力,所以什么是过程监督?
过程监督 (Process Supervision) 是相对于之前的结果监督 (Outcome Supervison) 而言。众所周知,大模型基于人工反馈的强化学习部分需要用到奖励模型 (Reward Model, RM),数学推理能力是基于思维链 (Chain of Thought)。传统的奖励模型采用的是结果监督的方式,仅使用思维链的最终结果进行判别与反馈,而过程监督则是对思维链的每步推理都进行反馈。因此,过程监督是针对思维链和奖励模型的一种改进方案。
OpenAI开源了过程监督的数据集 PRM800K。论文的核心思想很直观,主要关注在实验设计。
OpenAI 博客:# Improving mathematical reasoning with process supervision
论文链接:# Let's Verify Step by Step
过程监督的动机
过程监督可以精确地指出发生错误的位置并提供反馈。还有个优势是可解释的对齐 (Alignment),更容易训练出人类背书的模型。已有研究发现,在逻辑推理领域,使用结果监督的方式,存在“歪打正着”的现象,即模型会用一个错误推理得到正确的结果。显然这种情况可以通过过程监督的方式解决。
还有一点值得提到的是对齐税 (Alignment Tax),即对齐后的模型在下游任务上可能会有性能损失。从实验结果来看,过程监督不仅没有负面效应,反而对模型性能有促进作用 (至少在数学领域如此)。
实验方法
训练逐步推理的模型,称之为generator。这里的所有实验都仅针对奖励模型,虽然对generator的过程微调也有积极作用,原论文强调暂不对此进行讨论。
实验有两条线:
- 大规模:未经RLHF过程的 GPT-4,仅做预训练。
- 小规模:与GPT-4类似,但仅使用1/200的算力训练。
之所以增加小规模实验,是因为大规模实验奖励模型的训练集不可直接对比,不能直接比较过程监督的效果,后面详述。
上面两个模型再用1.5B数学领域的token进行额外预训练,提升模型的数学推理能力。此外,generator还使用few-shot的方案让其学会将步骤逐行输出(newline delimited step-by-step format
),以便解析与标注。
数据采集
显然,过程监督最大的阻碍是没有数据。之前的数据集都缺少逐步标注对错的结果,因此设计了一个标注UI:
所有结果都由大规模generator生成,每步的标注结果分三类:positive, negative和neutral:
A positive label indicates that the step is correct and reasonable. A negative label indicates that the step is either incorrect or unreasonable. A neutral label indicates ambiguity. In practice, a step may be labelled neutral if it is subtly misleading, or if it is a poor suggestion that is technically still valid.
neutral标签的目的在于可在推理阶段灵活处理模糊结果,可正可负。
这个数据集叫做 PRM800K,包括 12K 个问题,75K 个解答和 800K 个步骤的标注。
采集策略
最简单的策略是随机选择generator生成的解答。但这么做的最大问题在于如果所选的解答有明显错误,那么人工标注的意义就不大了。因此,作者们倾向于选择一些更难的例子,也就是更容易骗过奖励模型的例子。这个策略在传统机器学习中也非常常见,比如分类问题,选择更难分类的数据从而让模型更加健壮。
具体来说,作者们倾向于选择“看起来对但最终答案错误”的解答 (convincing
wrong-answer)。convincing
表示目前最优的奖励模型
(Process-supervised Reward Model, PRM)
对其打分较高,wrong-answer
代表它的最终答案错误。期待用这样的策略可以获取更多的信息:保证当前的PRM至少有一处对该解答判断有误。
此外,PRM还在数据采集的过程中不断迭代,对每个问题都生成N个结果,选择PRM打分前K个进行标注。
Outcome-supervised Reward Model (ORM)
用如下方式对ORM进行训练:对每个问题,随机采样generator生成的固定数目的解答,并训练 ORM 预测每个解答是否正确。实践中的判断可以自动完成,用最后一个token评判对错。推理时,用 ORM 对最后一个token的预测作为总得分。
但这种自动评价方式有一些瑕疵:步骤出错但结果正确的解答可能会被误判。
Process-supervised Reward Model (PRM)
PRM 的训练有更多细节:训练PRM对每一步推理的最后一个token进行评判。让PRM对整个解答的每一步都进行预测,下图中是PRM对同一问题的两个不同解答的打分可视化,绿色代表PRM打出高分,红色代表低分(有错):
为了对不同解答进行比较,需要对每个解答统一打分,做法是将每步的正确概率相乘。
训练PRM时,遇到每一个出错步时就停止。这么做的目的是让过程监督和结果监督的方案更可比:对于正确解答,两种方案对模型提供了同样的信息,每步都是正确的;对错误解答,两种方案都犯了至少一个错误,但过程监督额外提供了错误发生的位置信息。
大规模训练
仅使用PRM800K数据集训练ORM存在问题:主动学习策略会对数据集中的错误解答有很强的偏见。上文采集策略中已说明,数据集构造时特意选择了错误答案
convincing wrong-answer
。因此,训练PRM和ORM所用的训练集有所不同:
- PRM:用PRM800K进行训练
- ORM:每个问题从generator生成的结果中采样100个进行训练
在此设定下,ORM的训练数据与PRM800K没有交集。期望用这样的数据集能训练出较强的 ORM 基线。但这么做带来的问题是训练集不同,两个模型不好直接比较。尽管如此,此处的PRM和ORM也代表了不同训练方法下的最优结果。
上图代表随着N的变化,模型在best-of-N设定下的性能。多数投票法作为基线也参与了对比,显然,PRM的效果远超ORM和多数投票法,且随着N的增大,差距越来越大。
小规模训练
用小规模训练来做消融实验,解决两个问题:
- 过程监督是否有效?
- 主动学习(筛选错误答案构造数据)是否有效?
考虑到人工标注的成本,用上面训练好的大模型 PRM(large) 做本节的消融实验。
过程监督是否有效?
对第一个问题,使用可比的(同样的)训练集对模型进行训练即可:对每个问题,使用小规模的generator采样1~200个解答。训练分三组:Process Supervision from PRM(large),Outcome Supervision from PRM(large), Outcome Supervision from final-answer checking。
上图(a)是best-of-500的结果,对不同的训练集大小,过程监督都显著优于结果监督。上图(b)说明用PRM(large)判别结果明显比仅检查最终答案有效,原因可能在于PRM(large)对错误推理而得到正确结果的样本有更好的识别。
主动学习是否有效?
每个问题采样一个解答,先训练一个小奖励模型
PRM(selector)。然后对每个问题,用此模型判断采样池中的1000个解答是否convincing
。数据集中80%选择convincing wrong-answer
,剩下20%选择convincing
(不管对错)的解答。此策略保证大部分样本至少有一个错,但全集不会对错误答案有太强的偏见。
再用 PRM(large)
此数据集进行打分并训练模型。然后从上图(a)中比较斜率,发现 PRM+active
learning
比随机采样更优:approximately 2.6x more data efficient
。
此外,在其他数据集上评估 (out-of-distribution),观察到了类似的现象,PRM优于ORM和多数投票,说明PRM具有良好的泛化能力。
小结
奖励模型在RLHF过程中扮演举足轻重的作用,它的好坏直接影响模型的最终性能。本文验证了使用过程监督训练更可靠的奖励模型的方案,大幅提升了模型的数学推理能力,同时开源了 PRM800K 数据集,供更多研究使用。