“科技创新中国——科技传播助力工业互联网”专题路演成功举办
06-17
我们之前讲过很多指令微调方案。在本章中,我们重点讨论如何注入某种类型的任务或能力,同时尽可能减少损失。
模型原有的通用指令理解能力。因为在下游或者垂直领域的应用中,我们设计的推理任务的风格或者形式往往很难通过提示来稳定地实现。
在这种情况下,我们将依靠微调来注入稳定的推理风格,但同时,在某些场景下,我们需要在模型微调之前具备理解通用指令的能力。虽然理论上有得有失,但大人真的不想做选择!这里我们讨论两种尽可能减少通用能力损失的解决方案,数据解决方案和训练解决方案。
Two Stage Finetune - ProMoT在大语言模型微调中保留上下文学习能力TWO-STAGE LLM FINE-TUNING 少专业化多泛化先说一下训练计划。论文首先分析了微调过程中模型能力损失的主要原因之一。
Format Specialization,即模型过拟合微调任务的输出格式。举几个例子,下游是二元分类任务。
即使分类任务的指令在微调后被丢弃,模型的输出仍然是True/False。失去理解对话和其他指令的能力。
下游用于摘要任务。即使TL;DL在微调后被丢弃。
总结说明,你是让模特翻译一下模型还是给你总结一下。这一点在目前推出的一些长文本无敌基础模型中或许可以看到。
他们在后期的指令微调中,指令分布更偏向于长文本的QA和总结,其他能力会稍弱一些。通过微调,模型可以学会拒绝回答。
是的,你会发现你的模型可能会在很多不应该拒绝的场景下拒绝你。其实核心是我们希望模型学会条件生成能力,即分类指令时的分类、汇总指令下的汇总、以及应该拒绝的场景下的汇总。
再说不。但论文通过分析发现,在SFT微调任务中,模型首先盲目拟合输出格式,比如二分类True/False,拒绝Sorry,只开始学习输入与输入之间的关系后期微调的输出(语义关系)。
),例如何时分类、何时拒绝。我们是否可以先将下游任务的Task Format注入到附加参数中,然后将这些信息喂给模型,这样大模型就可以进行微调,直接学习到语义关系,从而稳定新的Format注射时影响尽可能小?其他一般指令理解能力论文提出了两个阶段的微调。
在第一阶段,还使用Google提出的Prompt Tuning来学习推理格式,在第二阶段,进行全面的微调。提示调整的第一阶段如下。
简单来说,它冻结了大模型,只对 Embedding 层中的一组虚拟 token 进行微调。这组虚拟令牌学习下游推理任务的任务表示格式。
在这里我们可以换个角度来思考。之前的一篇论文提出,任务指令(提示)实际上可以被压缩成一个Task Vector任务表示来指导模型给出不同的推理输出;反过来,我们希望模型学习推理风格/任务。
,实际上就是构造Format对应的Task Vector以及Task Vector对应的任务指令的过程。只是提示调优的提示使用的是虚拟Token。
如果想了解更多Prompt Tuning的童鞋,请看这里解密Prompt系列3.冻结LM微调Prompt:Prefix-tuning & Prompt-tuning & P-tuning。 Fine-tuning的第二阶段默认在输入层Embedding之前拼接Prompt Embedding,并冻结这个Partial Embedding,然后对大模型进行充分的微调,让模型学习到输入层和输出格式之间的语义关系前提是输出格式已知。
之前有点困惑为什么这里要冻结提示,后来以为是为了防止模型将Task Format相关信息更新到模型内部参数中,但感觉不冻结的方式也值得测试。有几个细节值得说一下:第一阶段是否可以使用Lora进行微调。
从Prompt实际上以推理格式学习任务表示的逻辑原理来看,Adapter类的微调方案似乎不太合理。经过纸质测试,也发现Lora的效果并不好。
能否将两个阶段合二为一,添加虚拟提示,同时对模型和提示进行微调?经过论文测试,发现效果和SFT类似,都会存在过拟合的情况。 。
毕竟这种微调方法无法引导模型学习Prompt Embedding 的格式。实际上,本文比较了 SFT、Prompt-Tuning 和 ProMoT 在下游微调任务和 mT5 模型上除了微调任务之外的其他一般任务的能力。
研究发现,ProMoTe 在分类、翻译、NLI 和 QA 等微调任务上可以取得比完全微调更好的结果。同时,以分类任务为例,对分类任务进行微调后,在QA等其他任务中与基础模型相比,能力并没有明显下降。
SFT作为对照组,综合能力会有明显下降。 Dual-Stage Mixed Finetuning - DMTHow Abilities in Large Language Models are Afficially by Supervised Fine-tuning Data Compositionon Learning Mathematical Reasoning with Large Language ModelsDMT的论文主要探讨了不同领域数据的混合,以及混合训练策略对大语言模型学习数学推理的影响模型的能力在多个领域产生影响。
1.单域Scaling曲线为了设计更合理的多域混合训练策略,我们首先要确认样本模型在不同领域学习到的Scaling曲线。这个问题之前已经在很多论文中讨论过。
这里是一个简短的回顾。如下图所示,数学、编码等领域的能力会随着样本量的增加而不断提高,而模型规模越大,缩放曲线就会越单调、陡峭。
这和我们的测试效果类似。您可以添加更多数学和代码示例。
如果加个小模型就更好了。有关更多详细信息,请参阅上面的缩放论文。
通用命令功能基本上在 1K(1/样本)样本上运行良好。后续的能力提升会比较慢,不同规模的模型差异也比较有限。
我们在上一篇文章中已经讨论过这一点。详情请参阅LLM对齐经历。
数据越少越好? 2、多场混合缩放曲线 明确了单场的缩放曲线后,我们再来看看多场数据混合。这里我们将讨论数据混合的两个关键点:总体大小和混合比率。
总体量级:与上述单场实验将同一实验的五个不同采样比例直接与三个场的数据混合,并与上述单场实验结果进行比较。观察下图,你会发现域混合在低资源上会有改善,但单域微调效果在较大的样本量上会稍好一些。
一种可能的解释是,小规模样本上会出现相互能力传递,并且当单场信息逐渐完善时,混合比例中会逐渐出现信息冲突:为了进一步探究信息冲突的根源针对上述全样本混合训练中发生的情况,作者进一步对控制变量进行了实验。固定一个字段中的样本大小(数学和代码合并为一个字段),更改另一字段中的样本大小,并查看以不同比例混合数据的影响。
主要结论是主域中的样本越多越好。当领域样本差异(输出格式/输入分布)较大时,通用领域数据对特殊领域的影响有限。
当样本存在相似性时,混合会带来冲突,但冲突与数据的比例不存在明显的单调性 3. 训练策略的影响 论文实验了不同训练策略的影响,包括多领域联合训练、有序训练( Code->Math->General),先训练Math+Code,再训练general。顺序混合训练。
这些策略之前已经在许多论文中进行过测试。这是一个简短的结论。
多领域联合训练会更多地了解专业领域(数学+代码),对通用能力的伤害更大。这方面可以更多借鉴ProMoT的逻辑,因为特殊领域输出风格一致的模型更容易学习,而通用领域输出风格则更加多样化。
有序训练和有序混合训练:只要先训练领域能力,再训练通用能力即可。 ,由于灾难遗忘,最终的模型会忘记首先学到的领域能力。
基于上述三种训练方案,本文提出如下的两阶段混合训练(DMT)。第一阶段是领域数据的训练。
根据单个For域缩放曲线,这部分数据量越大效果越好,因此采用全数学和代码进行训练。第二阶段用于恢复一般能力,同时尽量避免有序训练造成的灾难遗忘。
这里用到了上面的多域混合洞察。领域数据混合比例对通用能力影响较小;同时,资源混合程度低引起的冲突也较小。
因为论文使用1/domain数据和通用数据混合进行第二阶段的训练。在尽量避免第一阶段模型学到的能力丢失的基础上,帮助模型恢复其通用能力。
有效地,在LLaMA7B、13B和33B模型上,DMT训练方案可以保证模型的通用能力不丢失,甚至略有提高,同时保留单域训练的大部分能力。如果想要保留更多的领域能力,同时允许更多的通用能力流失,可以适当增加第二阶段领域数据的比例。
具体来说,您需要对数据集进行个案测试。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-18
06-17
06-18
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用