解密Prompt系列17. LLM对齐方案再升级 WizardLM BackTranslation SELF-ALIGN

解密Prompt系列17. LLM对齐方案再升级 WizardLM  BackTranslation  SELF-ALIGN 前言话接上文的指令微调的样本优化方案上一章是通过多样性筛选和质量过滤对样本量进行缩减主打经济实惠。这一章是通过扩写改写以及回译等半监督样本挖掘方案对种子样本进行扩充提高种子指令样本的多样性和复杂度这里我们分别介绍MicrosoftMeta和IBM提出的三个方案。MicrosoftWizardLMWizardLM: Empowering Large Language Models to Follow Complex Instructionshttps://github.com/nlpxucan/WizardLM要点使用prompt对种子指令样本进行多样化复杂化改写可以有效提升模型效果wizardLM提出了一套指令改写的方案Evol-Instruct对原始指令样本进行改写改写后的指令用于微调模型显著超过了之前Vicuna使用ShareGPT微调LLAMA的效果甚至在复杂指令上号称超过ChatGPT。指令改写是使用大模型直接进行的分成深度改写和广度改写两个类型其中深度改写有5种不同的改写指令广度改写有1种改写指令。Evol-Instruct对初始的指令集也就是52K的Alpaca指令总共进行了4轮改写每轮改写会等权重随机选择一种深度、广度改写指令经过过滤后总共得到了250K的改写指令用于模型微调。下图是一个指令改写的示例下面我们具体看下改写指令是如何设计的深度改写深度改写把指令改写的更加复杂包括加入限制条件指令复杂化指令具象化增加推理步骤输入复杂化等5种类型的指令。以下是加入限制条件的prompt指令以下指令控制每次改写增加的字数以及改写的程度每次只增加部分难度这样通过多轮的改写就可以得到不同难度多样性更高的指令集。其他的四类prompt的差异主要在高亮部分分别为指令复杂化If #Given Prompt# contains inquiries about certain issues, the depth and breadth of the inquiry can be increased指令具象化Please replace general concepts with more specific concepts.增加推理步骤If #Given Prompt# can be solved with just a few simple thinking processes, you can rewrite it to explicitly request multiple-step reasoning.输入复杂化You must add [XML data] format text as input data in [Rewritten Prompt]广度改写广度改写的目的就是为了扩充指令覆盖的范围包括更多的话题技能等等改写基本是论文最大的亮点除此之外的细节就不多细说啦。通过4轮改写加上简单的样本过滤后得到的250K指令样本用于模型微调效果上在收集的Evol-Instruct测试集Vicuna的测试集以及更高难度的测试集上WizardLM的效果都略超过vicuna还有alapca。但略有些奇怪的是vicuna似乎表现还略差于alpacaAnyway, LLM时代评估指标的置信度都有限方法学到手就好模型表现莫要太当真…MetaBackTranslationSelf-Alignment with Instruction BacktranslationClueWeb数据集https://lemurproject.org/clueweb12/specs.phpOpen Assistant数据集https://huggingface.co/datasets/OpenAssistant/oasst1要点结合质量过滤和半监督的指令样本挖掘方案扩充种子样本多次迭代后可以提高模型效果对比以上WizardLM从指令侧入手通过改写指令来生成更多样复杂的指令样本来扩充种子样本集。Back Translation则是用了半监督的思路从输出侧入手通过从网络上爬取优质的人工编辑的内容作为输出并为这些输出配上合适的指令来扩展已有的指令样本集。因为是先有输出再有输入所以论文使用了回译来命名此方案核心两个步骤如下1. Self-Augmentation指令生成部分论文先使用Open Assistant里面人工标注的3200指令样本数据作为种子数据来训练LLama模型得到初版的对齐模型。SFT训练和常规略有不同采用了反向对齐也就是给定Output生成Instruction(P(X|Y))的条件生成任务。然后论文针对爬取的网页数据经过清洗后作为指令样本的输出然后使用以上模型直接推理得到指令本身,对应以上P(X|Y)的条件生成任务。这一步其实感觉也可以使用类似APE的prompt逆向工程方案来实现让模型基于输出猜测最合适的指令是什么。这样SFT的模型可能也能完成这个步骤2. Iterative Self-Curation第二步考虑以上生成的指令样本对可能存在很多低质量样本因此需要进行质量过滤。质量过滤的模型同样是基于3200个种子指令样本进行常规SFT得到初始模型。然后基于Prompt模板对以上得到的指令样本进行1-5分的绝对打分。主要评估回答是否明确有用无争议能合理回答指令中的问题并且回答的主语模型而非其他第三人称Prompt如下同时论文使用了多轮迭代的训练以上第一轮打分过滤出的高分样本会和种子样本混合重头进行SFT。然后微调后的模型会再用来对样本进行打分过滤然后再混合重新SFT。在SFT的样本构建中论文使用了不同的Prompt来区分样本是来自人工标注的种子集还是来自机器生成的扩展集前者的prompt“Answer in the style of an AI Assistant后者的promptAnswer with knowledge from web search从而降低样本间不同回答format带来的模型学习混淆。效果整体效果评估论文使用了混合测试集包括Vicunaself-instruct opena assistant,koala,HH-RLHF, LIMA等总共1130个指令数据。使用人工进行两两偏好对比以下使用回译训练的HumpBack优于LIMA等质量过滤微调模型以及DavinciClaude等闭源模型。同时论文进行了消融实验对训练数据的数量和质量的影响做了进一步的测试对比了未使用Self-Curation过滤的数据集4轮过滤的数据集和5轮过滤的数据集不同的样本量带来的效果差异主要结论有两个高质量样本集提升数量会带来效果提升这里的结论和上一章LIMA的结论有矛盾顿LIMA中在过滤后的Stack Exchange数据集上增加采样比例并不会提升效果。猜测这里可能的差异有Stack Exchange的指令丰富程度可能低于回译指令和AlpaGasus中指令丰富程度有限的话增加样本量并不会带来效果提升的结论一致Stack Exchange本身的指令质量低于回译导致数量增加带来的效果增幅不明显。Anyway LLM时代一切结论都不可尽信只是拓宽下思路实际情况下处理问题还是要具体问题具体分析。质量的影响大于数量: 在未过滤的数据集上提升量级不会显著带来效果提升简单理解就是1个低质样本需要很多的高质量样本来弥补当低质量样本占比太高的时候无论如何提升样本量都不会提升效果。IBM: Self AlignmentPrinciple-Driven Self-Alignment of Language Models from Scratch with Minimal Human Supervisionhttps://mitibmdemos.draco.res.ibm.com/dromedary要点使用prompt规则让大模型Self-Instruct生成的推理样本更加符合人类偏好部分代替RLHF阶段大量的人工标注同样是改写方案Self-Align在Self-Instruct的基础上上通过引入对抗指令样本和3H相关的指令prompt在SFT阶段就让模型进行偏好对齐。让模型先基于外化的偏好原则生成符合3H原则的回答再通过SFT对齐把偏好内化到模型参数中因为指令样本是Base模型自己生成的所以叫Self-Alignment。有些类似自监督只不过样本特征被人工抽象成了人类偏好规则。指令样本生成分成以下4个步骤Self-Instruct生成指令不熟悉Self-Instruct的同学请先看解密prompt系列5. APESELF自动化指令集构建代码实现原始论文基于175个种子指令通过多轮的Bootstrap让大模型生成新的指令。IBM论文在此基础上人工补充了20个不同主题的对抗种子指令。对抗样本我们在解密Prompt7. 偏好对齐RLHF章节针对Anthropic如何设计对抗样本进行了很详细的介绍这里不再展开。IBM设计对抗样本的原则是模型在没有获取外部信息下无法回答或者会回答错误的指令例如询问天气知识问答类的指令。通过补充这类种子指令让模型在bootstrap过程中生成更多的对抗指令从而通过指令微调的对齐注入3Hhelpfulharmlesshonest偏好。Self-Alignment生成回答指令生成完下一步就是需要让模型生成符合3H偏好的回答。论文的实现方案是通过规则指令fewshot样例来实现。其中规则指令总共包含以下16条原则1 (ethical), 2 (informative), 3 (helpful), 4(question assessment), 5 (reasoning), 6 (multi-aspect), 7 (candor), 8 (knowledge recitation), 9 (static),10 (clarification), 11 (numerical sensitivity), 12 (dated knowledge), 13 (step-by-step), 14 (balanced informative perspectives), 15 (creative), 16 (operationa)。以下是附录中具体规则指令的前5条而In-context的few-shot样本同样是固定的few-shot的样本是为了指导模型如何遵守以上16条规则来进行指令回答并加入了类似chain-of-thought的Internal Thoughts步骤来强化模型在不同的上文中遵从不同的规则微调以上两步机器样本构造后经过过滤总共得到了260K指令样本用于模型微调。注意微调阶段不会使用以上的16条规则指令和few-shot样本而是会直接使用回答部分。因为需要模型直接把3H原则指令通过微调内化到模型参数中而不是基于条件上文进行符合偏好的回答。微调的指令如下微调后作者发现以上构造的样本在微调模型后存在两个问题部分回答过于简短个人感觉这和Promptfew-shot的长度过长有关。因为条件上文过长限制了下文的生成范围导致回答过短。通俗点就是命题作文你的要求太多自然就没啥好写的了。部分回答未直接回答用户指令而是去复述wikipedia上的内容个人感觉这同样是以上的规则指令模型未能完全理解影响了回答质量。这里其实有个疑问就是在大量指令和In-Context条件上文下构造出的模型回答是否本身就是有偏的而去掉条件上文直接去拟合回答后得到的模型是否也是bias的这个问题要是有想法欢迎评论区留言~为了解决以上问题论文使用第一步对齐微调后已经内化3H原则的模型使用以下的Prompt指令引导模型重新对以上的260K指令进行回答生成引导模型给出更丰富跟全面的回答。然后再使用生成的样本进一步微调模型。效果上在TruthfulQA的事实性评测以及Big-Bench的3H评测上微调后的模型相较LLama都有显著的提升。最后感谢你们的阅读和喜欢我收藏了很多技术干货可以共享给喜欢我文章的朋友们如果你肯花时间沉下心去学习它们一定能帮到你。因为这个行业不同于其他行业知识体系实在是过于庞大知识更新也非常快。作为一个普通人无法全部学完所以我们在提升技术的时候首先需要明确一个目标然后制定好完整的计划同时找到好的学习方法这样才能更快的提升自己。这份完整版的大模型 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%免费】