AI知识库 AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Lora微调新探:学得少记得牢,超参设置全解析
发布日期:2024-06-11 07:45:32 浏览次数: 1655

今天这篇文章是周五hf的daily papers推的文章,然后在x上的热度也蛮高的。类似于上周的两篇偏向于实验性的文章,分别为研究一下大模型微调数据中新旧知识对效果的影响程度揭秘大模型在知识冲突下的推理行为,在外网的热度都挺高的,可惜浏览量比较低,所以这里贴一下原文地址。gemini pro1.5的技术报告出来了,明天应该看这个。

https://arxiv.org/abs/2405.09673

这篇文章的标题是《LoRA Learns Less and Forgets Less》,大概就是说lora微调比不上全参数微调。当然之前相关的也有一些论文,就是说lora比全参微调效果好或者差不多的。

整个论文是一篇比较长的实验性的论文,文章的实验数据集的方向集中在代码和数学上。训练策略分为2种,CPT、IFT,分别对应Continued Pretraining和Instruction Finetuning。CPT需要控制的参数就是继续预训练的token数量,而IFT需要控制的则是lora_target_modules=[attn_q/k/v,mlp_down/up]以及lora_rank。

下面一张图一张图来看看。

  1. LoRA 在编程和数学任务中表现不佳上面每一个图都有一个蓝色的带子,分别表示lora微调在target_modules、rank的不同配置下,产生的结果。不同的参数配置自然产生了不同的评测效果,所以绘制了最大值、最小值、中间值的结果。不管哪一张图,黑色线都在蓝色线之上,并且右边 IFT 的2副图的纵轴都是比左边2副图要高的。因此可以得到如下2个结论:
  • 与 CPT 相比,IFT 带来了更明显的效果改进,这是合理的,因为IFT的问题与评估问题更相似
  • 对于CPT,全参微调,可以以更少的训练token数达到lora微调的效果,并且lora微调的,继续预训练的token数量提升,收益提升不大。
  • 对于IFT,二者的差异没有那么明显,但是始终是全参数微调更优的,并且lora微调一般需要4个epoch才能达到最优。
  • 在 LoRA 配置和训练数据量上,它的效果都赶不上全参数微调。这些影响对于编程来说比数学更明显。对于这两个领域,指令微调比持续预训练能带来更大的精度增益。
  1. lora对source领域的遗忘弱于全参数微调

首先这里的纵轴的效果的都是原始领域的数据集,使用代码或者数学微调之后,虚线代表base模型的基准,所以蓝线高则忘得少。

  • IFT 比 CPT 更容易导致遗忘
  • 编程比数学更容易导致遗忘
  • 遗忘往往会随着数据的增加而增加。在代码 CPT 中,LoRA 的遗忘曲线大致恒定,而完全微调会随着数据的增加而退化;在 IFT 编程中,两种方法在训练更多 epoch 时都会出现遗忘现象。相对而言,数学的CPT遗忘不是那么明显, 可能跟因为 OpenWebMath 数据集以英语句子为主有关
  1. 学习新领域知识与遗忘旧知识之间的权衡

LoRA 模型位于右下角——学习更少,忘记更少(点点横坐标越大说明以往的越少,纵坐标越大,说明学习的越好。)。对于代码 IFT,在目标域性能水平相当的情况下,LoRA 表现出更高的源域性能,从而呈现出更好的权衡。

  1. LoRA的正则化特性
  • 与weight decay和attention dropout相比,LoRA 是更强的正则化器。LoRA 提供了更强的正则化:它学到的东西更少,忘记的东西也更少。
  • LoRA 有助于维持结果生成的多样性。中间全参微调的结果更集中。
  1. 对代码和数学进行全面微调不会学习低阶扰动

这里是试图研究的是期望低秩训练能够很好地近似完全微调,如果可以的话,必要的rank是多少。

  • 想覆盖权重变动的90%,基本上需要达到1200往上,差不多是常见rank的100倍。
  • 使用越多的数据训练,这个期望值会越高
  • mlp需要比attention层更高的rank
  • 第一层和最后一层相对而言,不需要那么高的rank
  1. 相比于全参微调,lora对学习率更敏感,最优的学习率会大一个级别,lora:10-4, full ft:10-5
  1. 2个数据集,target modules设置都是 ALL > MLP > Attention的顺序是最优的,但是似乎peft默认的很多都是qkv;rank的影响不明显,rank=256 > rank = 8

over~


53AI,大模型落地应用首选服务商

定位:开箱即用的大模型落地应用平台

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

年轻人!来一起搞AI吗?

如果你看见AI对商业世界的变革,欢迎来和我们一起探索~

岗位:销售经理

查看详情

岗位:项目经理

查看详情

岗位:产品经理

查看详情

岗位:测试工程师

查看详情

联系我们

售前咨询
186 6662 7370
产品演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询