ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

解密Prompt7. 偏好对齐RLHF-OpenAI·DeepMind·Anthropic对比分析

解密Prompt7. 偏好对齐RLHF-OpenAI·DeepMind·Anthropic对比分析 前言前三章都围绕指令微调这一章来唠唠RLHF。何为优秀的人工智能抽象说是可以帮助人类解决问题的AI, 也可以简化成3H原则Helpful Honesty Harmless。面向以上1个或多个原则RLHF只是其中一种对齐方案把模型输出和人类偏好进行对齐。大体分成3个步骤人类偏好数据的标注基于标注数据训练奖励模型基于奖励模型使用RL微调语言模型以OpenAI为基础本章会对比DeepMind, Anthropic在以上3个步骤上的异同并尝试回答以下几个问题RLHF究竟做了什么偏好对齐用RL和SFT有什么差异什么模型适合作为RL的起点考虑篇幅已经超出了我自己的阅读耐心RL算法和其他偏好对齐方案会再用两章来说只关注以上问题的同学也可以直接划到文末去看~OpenAIpaper: InstructGPT, Training language models to follow instructions with human feedbackpaper: Learning to summarize from human feedbackhttps://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部分的训练成本太高。RLHFRL初始模型OpenAI使用了SFT指令微调之后的模型作为RL的起点。RL初始模型的训练细节在附录C.3和E.8基于GPT3的预训练模型SFT微调2个epoch并混入10%的预训练数据进行训练得到。这里混入预训练是因为在RL微调的过程中发现加入预训练数据可以防止RL微调降低模型语言能力因此在SFT微调过程中也做了相同的处理。这里我好奇的是指令微调和预训练的核心差异其实只在指令输入的部分是否计算梯度因此是否可以直接把指令微调和预训练混合变成一个步骤文本指令预训练我们准备沿这个方向去尝试下~RL样本OpenAI是完全基于在playground里用户真实提交的指令请求来进行训练没有使用人工标注为了完全面向用户使用进行偏好优化。RL训练RL微调的部分OpenAI使用了PPO算法基于Reward模型的打分进行微调微调了2个epoch。在此基础上加入了两个目标微调模型和原始模型在token预测上的KL散度避免模型过度拟合奖励函数偏离原始模型。后面也论证了KL的加入可以加速RL收敛核心是在相同的KL下最大化模型偏好的提升10%的预训练目标(PPO-PTX) 降低RL对模型语言能力的影响且论文提到样本的收集和RL训练是多次迭代的也就是使用RL微调后的模型上线收集更多的用户请求重新训练RM再更新模型。不停在优化后的模型上收集用户反馈会让RM模型学习到更充分的高偏好样本强者愈强。效果对比175B指令微调的模型1.3B的模型经过RLHF微调在喜爱度上就能打过175B的SFT模型2点Insights如下RLHF对齐带来的模型有用性的提升效率远超训练更大的模型使用PPO-PTX的RLHF微调没有产生很大的Alignment-TaxDeepMindpaper: Teaching language models to support answers with verified quotespaper: Sparrow, Improving alignment of dialogue agents viaDeepMind的Sparrow使用了基于Google搜索的事实性信息的引入这部分我们放到Agent调用的章节一起说这里只关注偏好对齐的部分。样本构建不考虑搜索调用的部分DeepMind的偏好对齐部分只关注2H有用性和无害性。样本标注的基础模型是Chinchilla-70B和OpenAI的差异在于DeepMind把人类偏好和违反2H原则拆成了两个标注任务人类偏好标注基于进行中的对话从模型多个回复中选择最喜欢的一条这里对话中的人机问答都是由模型生成的对抗标注/钓鱼执法基于随机分配的标注规则标注同学需要刻意引导模型给出违反该规则的回答和风控红蓝对抗的思路相似奖励模型基于以上两份样本论文通过微调Chinchilla-70B分别训练了两个模型PM和RM, 微调的方式都是固定前64层只微调后16层。PMPreference Reward ModelPM的数据是在以上每轮对话多选一的基础上从其他对话中随机采样更多的负样本构成的多分类任务这里补充负样本是为了惩罚off-topic的模型回复。因此损失函数是多分类的CrossEntropy以及在此基础上加入了Bradley-Taley(Elo)和正则项如下其中\(r_i\)是所有回复的模型打分因此正则项是为了保证最终模型输出的打分是以0为中心的。而Elo部分是为了优化两两对比排序更多细节Fitting the Bradley-Terry model to large and potentially sparse datasetsRMRule Violation ModelRM模型是一个多标签任务判断对话当前是否违反其中一条标注规则输出违反该规则的条件概率。以上5档标签被分成两类,definitely break和probably break]是违反probably follow和definitely follow是未违反unsure样本被丢弃。这里DeepMind使用如下Hard Prompt Tunning来构建模型其实就是引入一些前置语义信息让模型在小样本上表现更好。更多细节解密Prompt系列2. 冻结Prompt微调LM整体打分基于以上两个模型整体打分偏好打分所有规则的未违反概率之和长度惩罚(保证回答简洁)is_valid(模板检查)。其中模板检查包括要求Agent回复以\n\nSparrow:开始以\n\nUser:结束保证所有模型回复有相同的格式个人感觉分开标注以及引导式的标注没啥问题但分开建模再直接打分融合可能不一定是最优的方案因为两个模型的scale不同很难对比违反部分规则和偏好程度要如何balance才是最优的整体打分。RLHFRL起点和OpenAI相同DeepMmind也使用监督微调模型作为初始模型。不过DeepMind直接使用了以上RM的标注数据中多选一标注有用的回复和未违反规则的回复来进行监督微调。RL样本对比OpenAI使用纯人机对话的样本DeepMind的RL的样本来源包括以下四个部分问题集GopherCite的Eli5子集人机对话以上RM和PM的人机对话的样本集对抗样本扩充使用Prompt模板引导Sparrow生成有害问题扩充有害对话样本self-play类似self-instruct会采样已有对话作为上下文让sparrow继续生成回复RL训练DeepMind使用了Actor-Critic算法进行RL微调, RL算法我们会单独一章来讲整体上A2C可能略弱于PPO。除了算法不同DeepMind的RL微调也只微调Chinchilla模型的后16层。都选择微调16层其实是为了节省训练显存这样PMRM初始SFT模型和最终的RL微调模型都共享前64层后16层通过不同head来实现从而达到降低显存占用的目的。Insight偏好和遵守规则的矛盾统一人类偏好和遵守规则的要求存在一定冲突只使用更偏好的数据训练会得到更高的规则违反率只使用遵守规则的数据训练会降低模型回复的偏好率混合样本的微调效果最好。Anthropicpaper: Red Teaming Language Models to Reduce Harms Methods,Scaling Behaviors and Lessons Learnedpaper: A General Language Assistant as a Laboratory for Alignmentpaper: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轮左右的对话。有害性标注和DeepMind相同使用了红蓝对抗的方案目标是引导模型生成有害回复。每一轮模型会生成2个回答选择更有害的一个有用性标注同样是每轮2选一选择更有帮助的一条回复并不强制进行事实性检查对抗/引导式的数据标注方式对比OpenAI直接标注可以更充分挖掘偏好中更有用和更有害的数据对于解决模型安全性有更大的帮助但感觉可能缺少中间部分偏好的样本如果能和OpenAI直接标注的方案结合是否会更好除了2H的任务分开标注之外每个标注同学进行对话的模型虽然都是52B的模型但会随机来自3个不同版本的模型HHH Context-Ditill类似3Hprompthelpful,harmless, honest)加持的基础模型最初只有这个模型Rejection SamplingRS使用3H模型生成16个回复使用训练后的PM模型对结果排序选择有害性最小的2个回复RLHF微调后的模型后续的数据收集会基于微调后多个版本的模型持续进行奖励模型Anthropic的奖励模型同样是基于样本排序进行训练的有用得分高于无用无害得分高于有害并且更详细论证了相对排序模型的效果要好于二分类模型要好于语言模型。\[L_{PM} log(1e{r_{bad}}-e{r_{good}}) \]为了降低对微调数据的需求Anthropic加入了Preference Model Pretraining(PMP)的继续预训练过程使用Reddit, StackExchange等开源问答的数据让模型先部分学习什么是好的什么是坏的回答。除此之外Anthropic还讨论了PM模型大小对模型稳健性的影响。通过把数据集一分为二一半训练一半验证越稳健的PM模型应该在不同数据上有相似的打分分布。论文使用PM模型在两份数据上打分的KL散度来衡量稳定性得到两个结论PM模型越大KL散度越低PM模型打分在低分区一致性较高在高分区一致性较低第二个结论很符合直觉因为有害内容的标注一致性更高更易识别而优质回复的评价更模糊另一个原因是模型当前的能力可能导致高分区的样本比较稀疏。但第一个结论感觉有可能是因为越大的模型预测的置信度越高打分更容易聚集在一起才导致的KL散度更低这个置信度的差异似乎没有被考虑进去。RLHFRL起点Anthropic选择了3H Context Distillation的模型通过在样本前加入3H指令词引导模型生成更安全有用的回复并记录模型生成的每个位置Top50的词和概率把这个概率作为Teacher然后去掉3H指令词对预训练模型进行微调微调目标就是去拟合之前有3H时Top50 Token的预测概率其实就是Teacher-Student蒸馏的思路。RL样本为了让模型在更大范围的指令样本上进行偏好学习使用了Self-Instruct随机采样10个已有的真实请求让模型来生成新的请求最终是137K真实请求和369K模型生成请求混合作为训练样本RL训练整体和openAI类似和OpenAI相同Anthropic也提到了online iter训练但论文的出发点是前面提到的PM模型在高分部分不稳定的问题。因为微调后的模型生成的回复会更好在更优的模型中持续收集样本可以持续补充高分样本。注意这里的online和常规意义的online不同这里每次训练会混合多个snapshot模型收集的偏好数据和最初的偏好样本重头训练PM并重新微调RLHF。Insight有用性和无害性的矛盾统一和OpenAI相似Anthropic也举报了有用性和无害性的标注矛盾。在RLHF微调过程中只要用户的请求有轻微不满模型就让用户去看医生哈哈哈哈~其实我们在不充分微调的ChatGLM中也发现了类似的现象。经过分析模型是过度拟合了有害性而对有用性欠拟合导致模型虽然无害但也没啥用论文给出了的解决思路是遇到有害性请求模型只学到拒绝回答是很简单的这就是无用但无害但是如果模型能学到在拒绝回答的同时给到拒绝的原因并劝说用户不要有类似的有害的请求的话就是有用且无害了。这部分标注数据当前是缺失的。个人感觉这个思路比OpenAI适配场景去拒绝请求似乎可行性更高一些。不过论文没有重新标样本而是选择了折中的方案加入更大比例Helpful样本来提升模型有用性对比总结paper: Scaling Laws for Reward Model Over optimizationpaper: WebGPT: Browser-assisted question-answering withhuman feedbackhttps://openai.com/research/measuring-goodharts-law粗略看完以上3家超长无比的系列RLHF论文结合OpenAI对RM模型的一些观点。我们来讨论下文首问题感悟很玄学不一定靠谱仅提供一种思路~RLHF究竟学了啥可类比拒绝采样(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的回复。偏好对齐使用RL和SFT的差异优化整个文本序列 vs 优化token级别的偏好类似序列标注任务中CrossEntropy对比CRF同样使用偏好标注数据来进行微调RL微调是针对整个文本序列的RM打分进行优化而SFT是对每个token的预测概率进行优化。SFT在偏好优化场景上有几个问题每个token在损失函数中的权重是相同的没有考虑文本整体对偏好的影响针对很多开放问题最优答案是不固定的只对1条回答做token级别的拟合可能会影响泛化综合以上3点RL似乎更合适但是针对有标准答案的场景例如所有非开放生成的NLP任务摘要分类抽取等等用SFT来拟合偏好似乎也没啥毛病就像序列标注任务用CrossEntropy效果也不会比CRF差太多。除此之外RL的另一个优点是可以部分降低人工标注因为训练的RM模型后续可用于偏好打分而SFT的每一个偏好样本都需要人工标注。什么模型适合作为RLHF的初始模型从拒绝采样的本质出发RL的初始模型需要有能够生成人类偏好回答的能力拒绝采样的前提假设是F分布的集合是G分布集合的子集因为拒绝采样只是拒绝G采样的部分样本来得到F分布。对应到RLHF其实就是RL的初始模型要有能够生成人类偏好回复的能力因此通过指令微调来解锁指令理解能力似乎是RL初始模型的必须条件毕竟纯续写模型是无法生成人类偏好的回复的。当前的RL其实还存在很多问题。首先人类偏好本身就是存在噪声的标注的一致率不到80%其次奖励模型是对标注偏好的进一步抽象又受到一步准确率的限制而使用不完美的奖励模型进一步微调模型则可能带来更进一步的拟合问题。这些问题还有待进一步解决这一章我们就先说这么多最后感谢你们的阅读和喜欢我收藏了很多技术干货可以共享给喜欢我文章的朋友们如果你肯花时间沉下心去学习它们一定能帮到你。因为这个行业不同于其他行业知识体系实在是过于庞大知识更新也非常快。作为一个普通人无法全部学完所以我们在提升技术的时候首先需要明确一个目标然后制定好完整的计划同时找到好的学习方法这样才能更快的提升自己。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】一、全套AGI大模型学习路线AI大模型时代的学习之旅从基础到前沿掌握人工智能的核心技能二、640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。三、AI大模型经典PDF籍随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。四、AI大模型商业化落地方案五、面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表