在2016年的NeurIPS会议上,图灵奖得主Yann LeCun首次提出著名的「蛋糕比喻」:
如果智能是一块蛋糕,那么蛋糕中的大部分都是无监督学习,蛋糕上的糖霜(锦上添花)是有监督学习,蛋糕上的樱桃则是强化学习。
If intelligence is a cake, the bulk of the cake is unsupervised learning, the icing on the cake is supervised learning, and the cherry on the cake is reinforcement learning (RL).
从大型语言模型的发展路线来看,这种比喻实在是完美预测:从计算量FLOP上的开销来看,对互联网上的海量数据进行自监督学习占据了大部分训练时间;之后是用指令监督微调(SFT)数据进行后训练,开销相比自监督训练来说大大降低;最后的强化学习则是让大模型走向终端用户的必备阶段,可以提高模型的安全性,但模型只是从部分训练样本中学习少量信息。
在OpenAI的第二天直播中,宣布即将开放「强化微调」(RFT)的API,开发者只需提供最低「几十个」高质量样本,就能实现领域专家模型的定制,还能根据提供的参考答案对模型的回复进行评分,再次印证了强化学习的重要性!
强化微调的重点是「匹配答案」(matching answer),给定查询和正确答案,RFT可以帮助模型「学习」如何获得正确答案。
相比标准的指令调优(instruction tuning)只是对数据进行1-2个epoch的损失计算,并更新模型权重,强化微调则是通过对相同的几个数据点进行成百上千个epochs来让模型有时间学习新行为。
重复数据在基础模型训练的时候作用不大,但却可以提升RFT的稳定性。
强化学习的发展可能已经超过了Yann LeCun的预测,不再只是一颗蛋糕上的樱桃,未来或许「有监督微调」不再那么重要,只需要在互联网数据上进行自监督,然后进行自我强化学习,而不需要明确的人工设计。
大模型技术路线再次颠覆
「强化微调」的出世,也标志着语言模型和强化学习的发展路线再次发生变化:
1. 强化学习的稳定性是可以解决的
开发人员在考虑是否采用强化学习时,其稳定性一直是核心因素,主要体现在两方面:强化学习本身可能会发生剧烈变化,不一定稳定有效;其次,强化学习的训练本身比标准语言模型训练更脆弱,更容易出现损失峰值、崩溃等情况。
如今OpenAI能发布强化学习的API,虽然目前仍然处于测试阶段,但也代表着他们对这项技术的稳定性有了突破,不管用户的数据是什么样,都能稳定、有效地训练。
以往,研究人员要运行强化学习算法时,通常都会一次性运行多个随机种子,然后选择那些没有崩溃的模型继续运行;而现在就可以依赖强化学习模型的稳定运行,并在模型检查点上与初始策略计算KL距离,以确保效果不会下降。
2. 开源版本或许已经「存在」
强化微调与AI2最近发布的「具有可验证奖励的强化学习(RLVR)」工作非常相似,核心组件,如数据格式和优化器类型是相同的,只要开源社区继续合作来增加强化学习数据,对不同的模型、不同类型的数据等进行实验。
3. 高级推理模型的潜在数据飞轮
之前有猜测认为,OpenAI的o1模型使用了某种搜索策略,主要通过大规模RL数据进行训练,并具有可验证的输出,和这个API很类似。
按照预期来说,用户通过API上传数据,OpenAI就可以积累海量数据集来继续训练o1模型的下一个版本,o1目前的主要限制仍然是适用领域缺乏多样性,如果有用户的飞轮数据参与进来,o1势必会更加强大。
4. 强化学习语言模型训练的范围不断扩大
在基础科学层面上,o1的最大的贡献是,让我们有了更多的方法来训练语言模型,以实现潜在的高价值行为;向研究人员和工程师开放的大门越多,我们对人工智能的总体发展轨迹就应该越乐观。
大概一年前,OpenAI的一位研究人员就曾提到过,他们对RLHF及相关方法非常有信心,因为损失函数比自回归预测更通用,最近的发展也正如大部分人期待的,强化学习中的人类反馈(human feedback)也并不是特别必要。
强化微调实现的猜测
由于OpenAI没有公布任何技术细节,所以对具体的实现仍然只能靠猜。
分类模型/配置(Grader models/configs act as reward shaping for generalized answer checking)
强化学习能成功实现的核心是「正确界定环境范围」,其中环境由转移函数(transition function)和奖励函数组成;
语言模型的转移函数是人为设计的,也就是语言模型策略本身;奖励函数是从状态和动作(即提示和模型回复)到奖励标量值的映射。
对语言模型的输出答案进行评分并不新鲜,比如Llama 3.1同时使用「Python代码」和「其他大模型」作为判断器来检查数学答案是否正确;答案的错误或正确对应0或1的二进制分数。
12月7日,OpenAI微调团队的John Allard此前发布过一份关于评分器背后思路的说明,以及相关配置的屏幕截图,基本思路是把待评分的回复分解成一个结构化的对象,然后对每一项的数值进行比较,得到精确率、召回率等指标。
比如想训练一个信息抽取器模型,评分器会根据预定义的结构,比如就读的大学、已知的编程语言、当前居住城市等项分别进行评分,最后获得一个汇总评分。
{
"university": "University of California Berkeley",
"programming_languages": ["python", "c++", "java"],
"city": "Los Angeles",
"state": "California"
}
推文链接:https://x.com/john__allard/status/1865520756559614090?s=46
数据效率优化
在直播中,OpenAI提到用户只需要「几十个」RFT样本就可以在新领域进行学习;对于每个提示,强化学习(RL)可以根据超参数设置在一批中生成多个评分回复,在学习步骤和数据的多次迭代中「重复训练」,因此模型能够尝试不同的「策略」来找到正确的答案。
比如用几千个提示在数据集上运行数十万条强化学习训练数据,模型可以多次看到相同的提示而不会过度拟合。
稳定的基础语言模型
事实证明,强化学习更适合微调而不是从头开始训练,基础强化学习工作已经在控制和决策方面证明了这个结论;凭借非常稳定的基础,强化学习微调可以温和地搜索更好的行为表达,而不会显着改变模型性能。
比如某个RFT领域对于模型来说是非常新的,可能只需要10个样本即可获得总体性能提升。
对于OpenAI来说,o1模型经过大规模训练,应该已经极其稳定了,可以作为强化学习微调的基础, 其微调平台团队成员John Allard就曾表示:任何人都可以利用相同的训练算法和基础设施在新领域微调出一个专家o1模型。