解密prompt系列27. LLM对齐经验之如何降低通用能力损失

这篇具有很好参考价值的文章主要介绍了解密prompt系列27. LLM对齐经验之如何降低通用能力损失。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前面我们已经聊过众多指令微调的方案,这一章我们重点讨论下如何注入某一类任务或能力的同时,尽可能不损失模型原有的通用指令理解能力。因为在下游或垂直领域应用中,我们设计的推理任务风格或形式,往往很难通过prompt来稳定实现。这种情况下就会依赖微调来注入稳定的推理风格,但同时在部分场景下我们又需要模型微调前的通用指令理解能力。虽然理论上说有得必有失,但成年人真的不想做选择!这里我们讨论两种方案,来尽可能降低通用能力的损失,一种数据方案,一种训练方案。

Two Stage Finetune - ProMoT

  • Preserving In-Context Learning ability in Large Language Model Fine-tuning
  • TWO-STAGE LLM FINE-TUNING WITH LESS SPECIALIZATION AND MORE GENERALIZATION

先说训练方案,论文先是分析了模型在微调过程中能力损失的一个主要原因是Format Specialization,也就是模型过拟合了微调任务的输出格式。举几个例子

  • 下游是二分类任务的,微调之后即便丢掉分类任务的指令,模型的输出还是True/False,损失了对话和其他指令理解能力
  • 下游是摘要任务的,微调之后即便丢掉TL;DL的总结指令,你让模型翻译模型还是给你总结。这个在当前推出的一些长文本无敌的基座模型上可能会看到,他们后期的指令微调中指令分布都比较偏向于长文本的QA和总结,其他能力会略弱
  • 通过微调让模型学习拒绝回答的,你会发现你的模型可能在很多不该拒绝的场景也拒绝你

其实核心就是我们本想让模型学习条件生成能力,也就是在分类指令时分类,摘要指令下摘要,该拒绝的场景下再拒绝。但论文通过分析发现在传统微调任务中,模型是先无脑拟合输出格式,例如二分类的True/False,拒绝里的对不起,在微调后期才开始学习input和ouput之间的关系(Semantic Relation),例如何时该分类,何时该拒绝。

那能否把下游任务的Task Format先行注入到额外的参数中,之后把这部分信息喂给模型,让大模型微调直接学习Semantic Relation,这样在稳定注入新的Format的前提下,尽可能不影响其他input的推理格式。

论文提出了两阶段微调,第一阶段也使用了谷歌提出的Prompt Tuning用来学习Format,第二阶段再进行全量微调。如下
解密prompt系列27. LLM对齐经验之如何降低通用能力损失

第一阶段Prompt Tuning,简单说就是冻结大模型,只微调Embedding层的一组虚拟Token,这一组虚拟Token学习的就是下游推理任务Format的任务表征。

这里可以反过来思考,之前有论文提出任务指令(prompt)其实可以压缩成一个Task Vector的任务表征用来引导模型给出不同的推理输出;那反过来我们想让模型学习一种推理风格/任务,其实就是构建该Format对应的Task Vector,以及Task Vector对应的任务指令的过程。只不过prompt tunning的prompt使用的是虚拟Token。想更多了解Prompt Tuning的童鞋看这里解密Prompt系列3. 冻结LM微调Prompt: Prefix-tuning & Prompt-tuning & P-tuning

解密prompt系列27. LLM对齐经验之如何降低通用能力损失

第二阶段Fine-tuning默认在输入层Embedding前拼接Prompt Embedding,b并冻结这部分Embedding,然后全量微调大模型, 让模型在已知输出格式的前提下,学习Input和Output格式之间的Semantic联系。之前有些疑惑这里为何要冻结prompt,后来又想了想应该是为了避免模型再把Task Format相关信息更新到模型内部参数中,但感觉不冻结的方式也值得测试下。

几个值得聊聊的细节

  1. 第一阶段微调能否用Lora,从Prompt实际学习的是推理格式的任务表征这个逻辑原理来说其实Adapter类的微调方案,似乎并不合理。论文测试后也发现Lora的效果并不好
  2. 能否把两个阶段合二为一,既加上一个虚拟Prompt,同时微调模型和prompt,论文测试后发现效果和SFT相差不多,都会有过拟合。毕竟这种微调方式无法引导模型把格式学到Prompt Embedding上。

效果上,论文在mT5模型上对比了SFT,Prompt-Tuning,和ProMoT在下游微调任务,和微调任务之外其他通用任务的能力对比。发现ProMoTe可以在分类,翻译,NLI,QA等任务微调上对比全量微调都有更好的效果。同时以分类任务为例,在分类任务上进行微调后,在QA等其他任务上相比基座模型能力也没有显著下降,作为对照组的SFT会有显著的通用能力的下降。

解密prompt系列27. LLM对齐经验之如何降低通用能力损失

解密prompt系列27. LLM对齐经验之如何降低通用能力损失

Dual-Stage Mixed Finetuning - DMT

  • How Abilities in Large Language Models are Affected by Supervised Fine-tuning Data Composition
  • Scaling Relationship on Learning Mathematical Reasoning with Large Language Models

DMT的论文主要探究了不同领域数据混合,以及混合训练策略对模型在多领域能力的影响。

1. 单领域Scaling curve

要想设计更合理的多领域混合训练策略,首先要确认不同领域样本模型学习的scaling curve。这个问题之前已经有很多论文讨论过,这里简单回顾下,如下图所示

解密prompt系列27. LLM对齐经验之如何降低通用能力损失

  • 数学和代码等领域能力,会随样本量上升而持续提升,并且模型规模越大scaling curve越单调且陡峭。 这一点和我们的测试效果相似,数学和代码样本你就可劲加,加一点模型好一点,更多细节看上面Scaling的论文。
  • 通用指令能力,基本在1K(1/256的样本)的样本上效果就很好了,后续能力提升会比较慢,并且在不同规模的模型上差异相对有限。 这一点我们在前文讨论过详见LLM对齐经验之数据越少越好?

2. 多领域混合Scaling curve

明确单一领域的scling curve之后,我们来看多领域的数据混合,这里会分别讨论数据混合中的两个要点:整体量级和混合比例

  1. 整体量级:和以上单领域实验相同的5种不同采样比例,直接对三个领域的数据进行混合,和上面的单领域实验结果进行对比。观察下图会发现在低资源上领域混合会有提升,但在更大的样本量级上单领域微调效果会略好 一个可能的解释是在小量级样本上会有彼此的能力迁移,而当单领域信息逐步提升后信息冲突会逐渐显现

解密prompt系列27. LLM对齐经验之如何降低通用能力损失

  1. 混合比例:为了进一步探究以上全样本混合训练中出现的信息冲突的来源,作者进一步做了控制变量的实验。固定一个领域(math和code合成一个领域)的样本量改变另一个领域的样本量,看不同比例数据混合的影响。主要结论有
  • 主领域样本还是越多越好
  • 当领域样本差异(输出格式/输入分布)较大时,通用领域数据对特殊领域影响有限
  • 当样本存在相似性时混合会带来冲突,但冲突和数据比例没有显著单调性

解密prompt系列27. LLM对齐经验之如何降低通用能力损失

3. 训练策略影响

论文实验了不同训练策略的影响,包括多领域联合训练,有序训练(Code->Math->General),以及先训练Math+Code再训练general的有序混合训练,。这几种策略之前也有很多论文做过测试,这里简单说下结论

  • 多领域联合训练:会更多学到特殊领域(Math+code),更多损伤通用能力。这块可以更多借用ProMoT的逻辑,因为特殊领域输出风格一致模型更容易学到,而通用领域输出风格更多样些
  • 有序训练和有序混合训练:只要是先训练领域能力再训练通用能力,因为灾难遗忘的原因,最终模型会把先学到的领域能力遗忘

解密prompt系列27. LLM对齐经验之如何降低通用能力损失

在以上三种训练方案的基础上,论文提出了两阶段混合训练(DMT)如下

第一阶段是领域数据的训练,按照单领域scaling curve,这一部分的数据量越大效果越好,所以使用全量级的数学和代码进行训练。

第二阶段用于恢复通用能力,同时尽量避免有序训练带来的灾难遗忘。 这里使用了上面多领域混合的insight,领域数据的混合比例对通用能力影响较小;同时低资源混合带来的冲突较小。因为论文使用了1/256的领域数据和通用数据进行混合进行第二阶段的训练。在尽量避免第一阶段模型学到的能力丢失的基础上,帮助模型恢复通用能力。

效果上在LLaMA7B,13B,和33B的模型上,DMT的训练方案能在保留单领域训练绝大多数领域能力的基础上,保证模型通用能力不受损失,甚至略微有所提升。如果想要保留更多的领域能力,允许更多的通用能力损失,则可以适当提高第二阶段的领域数据占比,具体要数据集上case by case的测试。
解密prompt系列27. LLM对齐经验之如何降低通用能力损失

想看更全的大模型相关论文梳理·微调及预训练数据和框架·AIGC应用,移步Github >> DecryPrompt文章来源地址https://www.toymoban.com/news/detail-850013.html

到了这里,关于解密prompt系列27. LLM对齐经验之如何降低通用能力损失的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解密Prompt系列12. LLM Agent零微调范式 ReAct & Self Ask

    前三章我们分别介绍了思维链的使用,原理和在小模型上的使用。这一章我们正式进入应用层面,聊聊如何把思维链和工具使用结合得到人工智能代理。 要回答我们为什么需要AI代理?代理可以解决哪些问题?可以有以下两个视角 首先是我们赋能模型,如果说 LLM是大脑,那

    2024年02月15日
    浏览(38)
  • 解密Prompt系列14. LLM Agent之搜索应用设计:WebGPT & WebGLM & WebCPM

    前两章,我们分别介绍了基于微调和prompt的工具调用方案,核心都是如何让大模型和工具进行交互,包括生成工具调用语句和处理工具调用请求。不过在实际应用中,想要设计一个可以落地的LLM Agent,需要更全面整体的系统设计。本章我们以搜索工具为例,介绍如何更好和搜

    2024年02月10日
    浏览(38)
  • 解密Prompt系列20. LLM Agent之再谈RAG的召回多样性优化

    几个月前我们就聊过RAG的经典方案解密Prompt系列14. LLM Agent之搜索应用设计。前几天刚看完openAI在DevDay闭门会议上介绍的RAG相关的经验,有些新的感悟,借此机会再梳理下RAG相关的优化方案。推荐直接看原视频(外网)A Survey of Techniques for Maximizing LLM Performance RAG最关键的一环其

    2024年02月05日
    浏览(39)
  • 解密Prompt系列22. LLM Agent之RAG的反思:放弃了压缩还是智能么?

    已经唠了三章的RAG,是时候回头反思一下,当前的RAG是解决幻觉的终点么?我给不出直接的答案,不过感觉当前把RAG当作传统搜索框架在大模型时代下的改良,这个思路的天花板高度有限~ 反思来源于对RAG下模型回答的直观感受,最初我们被ChatGPT的能力所震惊,并不是它能背

    2024年02月03日
    浏览(79)
  • 解密Prompt系列8. 无需训练让LLM支持超长输入:知识库 & unlimiformer & PCW & NBCE

    这一章我们聊聊有哪些方案可以不用微调直接让大模型支持超长文本输入,注意这里主要针对无限输入场景。之前在BERT系列中我们就介绍过稀疏注意力和片段递归的一些长文本建模方案长文本建模 BigBird Longformer Reformer Performer,不过以上方案无一例外都需要在训练阶段引入。

    2024年02月08日
    浏览(32)
  • 解密Prompt系列19. LLM Agent之数据分析领域的应用:Data-Copilot & InsightPilot

    在之前的 LLM Agent+DB 的章节我们已经谈论过如何使用大模型接入数据库并获取数据,这一章我们聊聊大模型代理在数据分析领域的应用。数据分析主要是指在获取数据之后的 数据清洗 , 数据处理 , 数据建模 , 数据洞察 和 数据可视化 的步骤。可以为经常和数据打交道,但

    2024年02月05日
    浏览(39)
  • 解密Prompt7. 偏好对齐RLHF-OpenAI·DeepMind·Anthropic对比分析

    前三章都围绕指令微调,这一章来唠唠RLHF。何为优秀的人工智能?抽象说是可以帮助人类解决问题的AI, 也可以简化成3H原则:Helpful + Honesty + Harmless。面向以上1个或多个原则,RLHF只是其中一种对齐方案,把模型输出和人类偏好进行对齐。大体分成3个步骤 人类偏好数据的标注

    2024年02月06日
    浏览(26)
  • 解密Prompt系列10. 思维链COT原理探究

    前一章思维链基础和进阶玩法我们介绍了如何写Chain-of-thought Prompt来激活生成逐步推理,并提高模型解决复杂问题的能力,这一章我们追本溯源,讨论下COT的哪些元素是提升模型表现的核心? 要进行因果分析,需要把思维链中的不同元素拆解开来,然后通过控制变量实验,来

    2024年02月11日
    浏览(36)
  • 【LLM系列之指令微调】长话短说大模型指令微调的“Prompt”

    1 指令微调数据集形式“花样”太多 大家有没有分析过 prompt对模型训练或者推理的影响?之前推理的时候,发现不加训练的时候prompt,直接输入模型性能会变差的,这个倒是可以理解。假如不加prompt直接训练,是不是测试的时候不加prompt也可以?还有一个就是多轮prompt和单轮

    2024年02月14日
    浏览(36)
  • 解密prompt系列26. 人类思考vs模型思考:抽象和发散思维

    在Chain of Thought出来后,出现过许多的优化方案例如Tree of thought, Graph of Thought, Algorithm of Thought等等,不过这些优化的出发点都更加\\\"Machine Like\\\",而非\\\"Human Like\\\", 哈哈不是说机器化不好,仅仅是对AGI的一些个人偏好而已。 所以如果我们从人类思考的角度出发,能否把当前模型的思

    2024年03月10日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包