奖励模型的损失函数表示为式(1) 。这个损失函数的目标是最大化labeler更喜欢的响应和不喜欢的响应之间的差值 。
(1)loss?(θ)=−1(K2)E(x,yw,yl)∼D[log?(σ(rθ(x,yw)−rθ(x,yl)))]
其中 rθ(x,y) 是提示 x 和响应 y 在参数为 θ 的奖励模型下的奖励值,yw 是labeler更喜欢的响应结果,yl 是labeler不喜欢的响应结果 。D 是整个训练数据集 。
2.2.3 强化学习模型(PPO)强化学习和预训练模型是最近两年最为火热的AI方向之二,之前不少科研工作者说强化学习并不是一个非常适合应用到预训练模型中,因为很难通过模型的输出内容建立奖励机制 。而InstructGPT/ChatGPT反直觉的做到了这点,它通过结合人工标注,将强化学习引入到预训练语言模型是这个算法最大的创新点 。
如表2所示,PPO的训练集完全来自API 。它通过第2步得到的奖励模型来指导SFT模型的继续训练 。很多时候强化学习是非常难训练的,InstructGPT/ChatGPT在训练过程中就遇到了两个问题:
- 问题1:随着模型的更新,强化学习模型产生的数据和训练奖励模型的数据的差异会越来越大 。作者的解决方案是在损失函数中加入KL惩罚项 βlog?(π?RL(y∣x)/πSFT(y∣x)) 来确保PPO模型的输出和SFT的输出差距不会很大 。
- 问题2:只用PPO模型进行训练的话,会导致模型在通用NLP任务上性能的大幅下降,作者的解决方案是在训练目标中加入了通用的语言模型目标 γEx∼Dpretrain [log?(π?RL(x))],这个变量在论文中被叫做PPO-ptx 。
3. InstructGPT/ChatGPT的性能分析不可否认的是,InstructGPT/ChatGPT的效果是非常棒的,尤其是引入了人工标注之后,让模型的“价值观”和的正确程度和人类行为模式的“真实性”上都大幅的提升 。那么,仅仅根据InstructGPT/ChatGPT的技术方案和训练方式,我们就可以分析出它可以带来哪些效果提升呢?
3.1 优点
- InstructGPT/ChatGPT的效果比GPT-3更加真实:这个很好理解,因为GPT-3本身就具有非常强的泛化能力和生成能力,再加上InstructGPT/ChatGPT引入了不同的labeler进行提示编写和生成结果排序,而且还是在GPT-3之上进行的微调,这使得我们在训练奖励模型时对更加真实的数据会有更高的奖励 。作者也在TruthfulQA数据集上对比了它们和GPT-3的效果,实验结果表明甚至13亿小尺寸的PPO-ptx的效果也要比GPT-3要好 。
- InstructGPT/ChatGPT在模型的无害性上比GPT-3效果要有些许提升:原理同上 。但是作者发现InstructGPT在歧视、偏见等数据集上并没有明显的提升 。这是因为GPT-3本身就是一个效果非常好的模型,它生成带有有害、歧视、偏见等情况的有问题样本的概率本身就会很低 。仅仅通过40个labeler采集和标注的数据很可能无法对模型在这些方面进行充分的优化,所以会带来模型效果的提升很少或者无法察觉 。
- InstructGPT/ChatGPT具有很强的Coding能力:首先GPT-3就具有很强的Coding能力,基于GPT-3制作的API也积累了大量的Coding代码 。而且也有部分OpenAI的内部员工参与了数据采集工作 。通过Coding相关的大量数据以及人工标注,训练出来的InstructGPT/ChatGPT具有非常强的Coding能力也就不意外了 。
- InstructGPT/ChatGPT会降低模型在通用NLP任务上的效果:我们在PPO的训练的时候讨论了这点,虽然修改损失函数可以缓和,但这个问题并没有得到彻底解决 。
- 有时候InstructGPT/ChatGPT会给出一些荒谬的输出:虽然InstructGPT/ChatGPT使用了人类反馈,但限于人力资源有限 。影响模型效果最大的还是有监督的语言模型任务,人类只是起到了纠正作用 。所以很有可能受限于纠正数据的有限,或是有监督任务的误导(只考虑模型的输出,没考虑人类想要什么),导致它生成内容的不真实 。就像一个学生,虽然有老师对他指导,但也不能确定学生可以学会所有知识点 。
- 模型对指示非常敏感:这个也可以归结为labeler标注的数据量不够,因为指示是模型产生输出的唯一线索,如果指示的数量和种类训练的不充分的话,就可能会让模型存在这个问题 。
推荐阅读
- ChatGPT用于生产级对话式AI系统的那些缺点
- ChatGPT搞钱行不行
- 一文详解Python语言选择结构和循环结构
- icloud怎么用,icloud的正确用法详解
- 电商运营怎么做数据分析,详解电商运营策略
- 天猫转让需要多少钱,天猫店铺转让流程及费用详解
- 建网站需要多少钱,建站费用详解
- 开发软件需要什么配置及技术,软件开发流程详解
- 前端js中http跳转https报403错误,请求头referer详解
- ChatGPT爆火背后,生成式AI是否只是“昙花一现”?