一、简介
- 目的:由于大模型参数量大,全参数微调资源开销大,使用参数高效微调(又称轻量化微调)的方式,在保证微调效果的基础上,来降低微调过程资源消耗
- 知识框架
- 低秩适配微调方法(LoRA)
- LoRA
- LoRA变种
- 其他高效微调方法(使用较少)
- 适配器微调
- 前缀微调
- 提示微调
- 低秩适配微调方法(LoRA)
二、低秩适配微调方法
1、LoRA
- 简介:在预训练模型的参数矩阵上添加低秩分解矩阵来近似每层的参数更新,从而减少适配下游任务所需要训练的参数
- 实现过程:
- 冻结原始矩阵,通过低秩分解矩阵来近似参数更新矩阵
- 在微调期间,原始的矩阵参数不会被更新,低秩分解矩阵则是可训练参数用于适配下游任务
- 训练完成后,进一步将原始参数矩阵和训练得到的权重合并,得到更新后的参数矩阵
- 优点:使用LoRA微调过得模型在解码过程中不会增加额外开销
- 所需显存:从预训练阶段的16P降到2P
2、LoRA变种
- 简介:原始的LoRA实现中,低秩矩阵参数固定,训练过程中无法调整,忽略了不同的秩在微调任务中可能产生的差异化影响
- 变种一:AdaLoRA
- 变化方式:引入动态低秩适应技术,在训练过程中动态调整每个参数矩阵需要训练的秩同时控制训练的参数总量
- 动态调整策略:在微调过程中,通过损失来衡量每个参数矩阵对训练结果的重要性,重要性较高的参数矩阵赋予较高的秩,重要性较低的参数矩阵赋予较低的秩,用于防止过拟合并节省资源
- 变种二:QLoRA
- 介绍:将原始的参数矩阵量化为4比特,而低秩部分继续使用16比特,在保证微调效果的前提下,节省显存开销
- 显存下降幅度:从2P下降到0.5P
3、LoRA在大模型中的应用
- 应用情况:应用广泛
- 优点:
- 参与训练参数少
- 易于实现
三、其他高效微调方法
1、简介
大模型微调用的少,多用在预训练语言模型微调阶段
2、适配器微调
- 原理:在Transformer模型中引入小型神经网络模块(适配器),每一层都会集成该神经网络模块
3、前缀微调
- 原理:语言模型的每个多头注意力层中都添加了一 组前缀参数。
4、提示微调
- 原理:输入嵌入层中加入可训练的提示向量。