写在前面
大家好,我是刘聪NLP。
大模型目前已经在很多领域、很多场景中都取得了较为优异的效果,但很多实际场景中仍然需要进行模型微调,那么如何在有限数据情况下提高大模型微调效果呢?
今天给大家带来一篇针对性和迭代式的数据增强策略-LLM2LLM,主要在LLM训练的过程中发现预测错误的数据 ,并将其放大&增强 ,重新融合到训练数据集中,让LLM更专注于更有挑战的样本 ,显著提高LLM在低资源环境下的效果。
Paper: https://arxiv.org/abs/2403.15042
Github: https://github.com/SqueezeAILab/LLM2LLM
方法
LLM2LLM的主要流程如下:
- 在初始种子数据集中微调学生模型;
- 评估并提取学生模型在训练集中预测错误的数据;
- 利用教师模型对这些错误数据生成额外数据,将其加如原始训练数据中迭代训练学生模型。
值得注意的是,每一次数据增强时,仅对种子数据的进行数据扩充 ,以防止多次迭代时教师模型生成的错误示例影响整体数据集质量,导致数据退化,同时也可以进一步约束生成数据的总量 。
结果分析
实验主要针对LLaMA2-7B模型,在GSM8K、CaseHOLD、SNIPS、TREC和SST-2数据集上,以0.02%到50%不同的抽样率对这些数据集进行采样,以评估在不同低数据环境下的LLM2LLM方法的性能,如下表所示,不同数量级的训练数据下,LLM2LLM方法均有效果提高,当数据较少的情况下,提高比例更大。
同时比较了与EDA和AugGPT增强方法之间的差异,如下表所示,LLM2LLM方法提升幅度更大。
对比了迭代增强与一次性增加等量数据的方法直接的差异,如下表所示,使用一次增强的效果显著低于执行10次LLM2LLM迭代增强的方法,说明即使是对错误数据的学习,也应该逐步分析,有的错误数据更难,在数据训练过程中即使调整数据分布。
分析仅在原始种子数据集上和在整体数据上进行数据增强的差异,如下表所示,仅在原始种子数据上进行数据增强效果更好,说明增强部分数据由于模型生成,可能存在错误数据,多次迭代过程中,可能会导致误差累积,数据退化。
对比从头微调和增量微调方法,如下表所示,从头开始微调始终显著优于增量微调方法,可能是由于在小种子数据集上多次增量微调存在过拟合 ,影响模型推理测试。
当然,不同的教师模型,对LLM2LLM方法影响也比较大,越好的教师模型,带来的效果越好,如下图所示,GPT4的效果最好,其次是GPT3.5 。
写在最后
LLM2LLM方法就像是bad case分析,只不过是反复对训练集的bad case进行针对性优化,让大模型更专注困难样本。
PS:给公众号添加【星标⭐️】不迷路!您的点赞 、在看 、关注 是我坚持的最大动力!
欢迎多多关注公众号「NLP工作站」,加入交流群,交个朋友吧,一起学习,一起进步!
我们的口号是“生命不止,学习不停”!
往期推荐:
- 如何快速提高大模型的向量表征效果?
- RAG系统中答案无关片段对LLMs生成答案有何影响?
- InternLM2技术报告
- Qwen1.5-MoE模型:2.7B的激活参数量达到7B模型的性能
- RAG与Long-Context之争—没必要争
- 角色扮演大模型的碎碎念
- 自我蒸馏方法-减轻大模型微调过程中的灾难性遗忘
- Yi技术报告细节分享
- 大模型增量预训练新技巧-解决灾难性遗忘
- 如何提高LLMs的文本表征(Text Embedding)能力?
- DEITA-大模型指令微调的数据高效筛选方法
- 大模型微调技巧 | 高质量指令数据筛选方法-MoDS
- 辟谣!微软撤回声称ChatGPT为20B参数的论文,并给出解释。
- 如何看待微软论文声称 ChatGPT 是 20B (200亿) 参数量的模型?
- 大模型微调技巧-在Embeeding上加入噪音提高指令微调效果
- 如何从数据集中自动识别高质量的指令数据
- BaiChuan2技术报告细节分享&个人想法
- 大模型LLM微调经验总结&项目更新
- 打造LLM界的Web UI
- 是我们在训练大模型,还是大模型在训练我们?
- Llama2技术细节&开源影响
- 大模型时代-行业落地再思考
- 垂直领域大模型的一些思考及开源模型汇总
- 如何评估大模型-LLMs的好坏?
- 总结|Prompt在NER场景的应用
