前三章都围绕指令微调,这一章来唠唠RLHF。何为优秀的人工智能?抽象说是可以帮助人类解决问题的AI, 也可以简化成3H原则:Helpful + Honesty + Harmless。面向以上1个或多个原则,RLHF只是其中一种对齐方案,把模型输出和人类偏好进行对齐。大体分成3个步骤
以OpenAI为基础,本章会对比DeepMind, Anthropic在以上3个步骤上的异同,并尝试回答以下几个问题
考虑篇幅已经超出了我自己的阅读耐心,RL算法和其他偏好对齐方案会再用两章来说,只关注以上问题的同学,也可以直接划到文末去看~
paper: InstructGPT, Training language models to follow instructions with human feedback paper: Learning to summarize from human feedback https://openai.com/blog/chatgpt
解密Prompt系列4介绍了InstructGPT指令微调的部分,这里只看偏好对齐的部分
RL的数据来源有两块,一部分是用户在playground里面真实请求的数据,另一部分来自标注同学自己写的指令样本。标注指令样本包括3种形式:单一指令,few-shot指令,根据用户之前提交的使用场景编写的指令,量级分布如下
在标注偏好样本上,OpenAI基于3H原则,设计了详细的标注标准详见论文。需要注意的一点是在训练样本标注时Helpful比Harmless和honest更重要,但是在评估样本的标注上Harmless和honest更重要。这样区别标注是OpenAI发现Helpful和Harmless存在冲突,如果模型过度拟合无害性,会导致模型拒绝回答很多问题。OpenAI认为不同场景下风险的定义是不同的,应该把拒绝回答的能力放到下游场景中, 后面Anthropic也碰到了相似的问题,我个人更偏好Anthropic的方案。
在标注过程中,模型会生成4-7个回复,标注同学需要综合考虑有用性,无害性和真实性,对模型的每一个回复进行绝对打分后续用于评估,同时给出多个模型回复间的相对排序用于RM模型训练,标注界面如下:
ChatGPT对话训练部分未公开细节,从官网能获得细节是,ChatGPT的样本是人工写的对话样本+InstructGPT样本转换成对话格式的混合样本,更多基于对话形式的标注可以参考后面的DeepMind和Anthropic。
OpenAI使用了指令微调16个epoch的6B模型作为奖励模型的初始模型。训练方式是两两对比计算crossentropy,其中r_\theta 是奖励函数对指令x和回复y的打分,如下
不过OpenAI发现如果对数据进行Shuffle,则训练一轮就会过拟合,但如果把针对1个指令模型的K个回复,K在4~9之间,得到C_k^2 个pairwise对,放在一个batch里进行训练,会得到显著更高的准确率。这里一个batch包括64个指令生成的所有回复对,其中排名相同的样本对被剔除。
这里感觉和对比学习要用大batch_size进行拟合的思路有些相似,是为了保证对比的全面性和充分性,使用全面对比后计算的梯度对模型进行更新。另一个原因可能是不同标注人员之间的偏好差异,shuffle之后这种偏好差异带来的样本之间的冲突性更高。
之所以选择6B的模型,论文指出尽管175B的RM模型有更高的准确率和更小的验证集loss,但是训练过程并不稳定,以及太大的RM模型会导致RL部分的训练成本太高。
paper: Teaching language models to support answers with verified quotes paper: Sparrow, Improving alignment of dialogue agents via
DeepMind的Sparrow使用了基于Google搜索的事实性信息的引入,这部分我们放到Agent调用的章节一起说,这里只关注偏好对齐的部分。
不考虑搜索调用的部分,DeepMind的偏好对齐部分只关注2H,有用性和无害性。样本标注的基础模型是Chinchilla-70B,和OpenAI的差异在于,DeepMind把人类偏好和违反2H原则拆成了两个标注任务
基于以上两份样本,论文通过微调Chinchilla-70B,分别训练了两个模型PM和RM, 微调的方式都是固定前64层,只微调后16层。
paper: Red Teaming Language Models to Reduce Harms Methods,Scaling Behaviors and Lessons Learned paper: A General Language Assistant as a Laboratory for Alignment paper:Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback 数据:https://huggingface.co/datasets/Anthropic/hh-rlhf
从论文标题不难看出,Anthropic也只考虑了2H,有害性和有用性。并且着重研究了对抗有害样本的生成,受限于篇幅这里不展开。我个人也更偏好2H,因为我始终没太想明白Honesty如何能通过对齐实现。因为部分非事实性是来自预训练样本中的噪声,例如预训练样本中是"鲲之大一锅炖不下",如何通过对齐让模型学到"鲲之大,不知其几千里也"?部分非事实性来自训练样本的有限性,需要像Bing一样通过引入实时信息来解决,要是大家有不一样的观点也欢迎留言评论。
同样是拆分了2个标注任务,和DeepMind的差异是,Anthropic是把有害性和有用性分成了两个标注任务,针对开放的对话主题进行4轮左右的对话。
对抗/引导式的数据标注方式,对比OpenAI直接标注,可以更充分挖掘偏好中更有用和更有害的数据,对于解决模型安全性有更大的帮助,但感觉可能缺少中间部分偏好的样本,如果能和OpenAI直接标注的方案结合是否会更好?
除了2H的任务分开标注之外,每个标注同学进行对话的模型虽然都是52B的模型,但会随机来自3个不同版本的模型
Anthropic的奖励模型同样是基于样本排序进行训练的,有用得分高于无用,无害得分高于有害,并且更详细论证了相对排序模型的效果要好于二分类模型,要好于语言模型。
为了降低对微调数据的需求,Anthropic加入了Preference Model Pretraining(PMP)的继续预训练过程,使用Reddit, StackExchange等开源问答的数据让模型先部分学习什么是好的什么是坏的回答。
除此之外Anthropic还讨论了PM模型大小对模型稳健性的影响。通过把数据集一分为二,一半训练,一半验证,越稳健的PM模型应该在不同数据上有相似的打分分布。论文使用PM模型在两份数据上打分的KL散度来衡量稳定性,得到两个结论
第二个结论很符合直觉,因为有害内容的标注一致性更高更易识别,而优质回复的评价更模糊,另一个原因是模型当前的能力可能导致高分区的样本比较稀疏。
但第一个结论,感觉有可能是因为越大的模型预测的置信度越高,打分更容易聚集在一起,才导致的KL散度更低,这个置信度的差异似乎没有被考虑进去。
paper: Scaling Laws for Reward Model Over optimization paper: WebGPT: Browser-assisted question-answering with human feedback https://openai.com/research/measuring-goodharts-law
粗略看完以上3家超长无比的系列RLHF论文,结合OpenAI对RM模型的一些观点。我们来讨论下文首问题,感悟很玄学~不一定靠谱~~仅提供一种思路~~
可类比拒绝采样(Best-of-N):让模型随机采样生成N个回复,选择RM打分最高的回复
在WebGPT中OpenAI就把Best-of-N和RL进行了对比,best-of-64的效果甚至超过RLHF,而DeepMind在RL微调后加入best-of-n效果会有进一步提升。感觉RLHF和Best-of-N的差异就是前者把排序择优放在了微调阶段训练耗时,后者放在了推理阶段推理耗时。本质上二者是相似的,都是让模型在相似文本打分的文本序列中,挑选偏好打分更高的序列
那再想一步,Best-of-N的本质是啥?是Rejection-Sampling。啥是拒绝采样?简单说,就是针对无法直接采样的分布F,可以从G采样,例如G服从正态分布, 再通过特定的拒绝策略,拒绝不符合F分布的样本,则得到的样本可以近似F分布。对应到RLHF中,G其实就是RL初始模型生成的回复,拒绝策略是拒绝RM打分低的回复,则得到的就是符合人类偏好F的回复。
优化整个文本序列 vs 优化token级别的偏好:类似序列标注任务中CrossEntropy对比CRF
同样使用偏好标注数据来进行微调,RL微调是针对整个文本序列的RM打分进行优化,而SFT是对每个token的预测概率进行优化。SFT在偏好优化场景上有几个问题
综合以上3点RL似乎更合适,但是针对有标准答案的场景,例如所有非开放生成的NLP任务,摘要,分类,抽取等等,用SFT来拟合偏好似乎也没啥毛病,就像序列标注任务用CrossEntropy效果也不会比CRF差太多。
除此之外RL的另一个优点是可以部分降低人工标注,因为训练的RM模型后续可用于偏好打分,而SFT的每一个偏好样本都需要人工标注。
从拒绝采样的本质出发,RL的初始模型需要有能够生成人类偏好回答的能力
拒绝采样的前提假设是F分布的集合是G分布集合的子集,因为拒绝采样只是拒绝G采样的部分样本来得到F分布。对应到RLHF其实就是RL的初始模型要有能够生成人类偏好回复的能力,因此通过指令微调来解锁指令理解能力,似乎是RL初始模型的必须条件,毕竟纯续写模型是无法生成人类偏好的回复的。
当前的RL其实还存在很多问题。首先人类偏好本身就是存在噪声的,标注的一致率不到80%;其次奖励模型是对标注偏好的进一步抽象,又受到一步准确率的限制;而使用不完美的奖励模型进一步微调模型,则可能带来更进一步的拟合问题。这些问题还有待进一步解决,这一章我们就先说这么多啦
想看更全的大模型相关论文梳理·微调及预训练数据和框架·AIGC应用,移步Github >> DecryptPropmt
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。