Let’s Verify Step by Step
openai的经典论文,发布于2023年5月31日,为当前openai-o1奠定了技术基础,同时开源了PRM800K数据集,为开源社区贡献了十分宝贵的参考
paper原文链接 : https://arxiv.org/abs/2305.20050
论文概述
当前LLM的缺点
即使当前最好的模型也经常会产生逻辑错误,需要训练更加可靠的LLM
以前的方法是怎么处理的?
在openai之前,结果监督和过程监督方法就已经存在,但是他们仍然会存在一些问题从而无法训练出更加可靠的LLM
论文的贡献
- 过程监督比结果监督更好
- 大的奖励模型效果更好
- 主动学习( active learning)可以提高过程监督的数据效率
- 开源PRM800K数据集
Method
论文的重心放在了generator和Reward model的构造
best-of-N:在采样的N中选择最好的一个,称之为best-of-N
generator
generator是以base model为核心的系统
generator框架的一些细节:
- 这个生成器不用RL去优化
- 训练这个生成器使其能在每个步骤后面生成换行符,限制他只能一步一步输出
- 用few-shot让generator去解决一些数据推理任务,过滤那些达成正确答案的数据,将过滤后的数据作为base model的微调数据(让模型展现推理过程)
base model的一些细节:
- large-model: 基于GPT-4微调的,用于生成高质量解答,追求最先进的性能
- small-model: 与GPT-4相似,但比GPT-4小(小多少没说),用于高效的实验验证,减少实验成本
- 两类模型都在1.5B的数学任务中微调过(MathMix)这能提高模型的数学推理能力
Reward model
结果监督奖励模型(Outcome-supervised Reward Models,ORMs)
目标: ORM仅基于解答的最终结果进行评估。中间过程是否出错不会考虑
过程监督奖励模型(Process-supervised Reward Models,PRMs)
目标: PRM会对每一个步骤进行评判,最终获得一个总体的得分
上述RM是基于base model微调的,在PRM800K这类数据进行微调,让原先的base model变成了评估和打分
PRM训练数据的构造方式
基于generator生成的数据,然后进行人工标注,有三个标签:积极、消极、中立。标注时当第一个消极标签出现,则完成该条数据的步骤标注(下图为一个标注示例),openai开源了这样的标注数据(PRM800K)
如何选择数据进行标注?(active learning)
标注的成本很大,选择那些对模型训练有益的数据进行标注才是高效的,论文提出了active learning的方式来进行这些标注数据的选择
数据过滤
需要优先选择那些令人信服的错误答案,进行中间过程的标注;
- 令人信服: 奖励模型选择分数最高的答案
- 错误: 最终结果错误
Top-K选择
分为两种选择情况:
- 按问题选择top-K: 对于每一个问题,生成N个解答,然后从这些解答中选择评分最高的K个解答进行标注。
- 全局top-K选择: 在整个数据集范围内,不按单个问题过滤,而是从所有问题的解答中挑选出评分最高的K个解答进行标注。
Experiment
- Best-of-N中,N与模型效果成正相关
- 选择“令人信服的错误答案”进行训练,能在PRM的基础上继续提高模型效果(左图)
- PRM模型的效果比ORM要好(右图)
- 表格中的评测更加直观,在微积分、化学、物理、数学等测试题中,过程监督都是sota的水平
个人思考
- 当前的标注成本很高,如何选择gold数据进行标注是一个值得探索的工作,active learning给出了一个方向
格中的评测更加直观,在微积分、化学、物理、数学等测试题中,过程监督都是sota的水平