大模型参数高效微调学习笔记
github地址
billbill链接
1.分类
图中有五个大类:
- selective(选择性微调):BitFit,Attention Tuning
- soft prompts(提示微调):Prompt-tuning,P-tuning,Prefix-Tuning
- reparametrization-based(重参数化微调):Lora
- additive(增量微调):IA3
- adapters(适配器微调):Adapters
2.代表性的方法介绍
1.BitFit
将模型的所有偏置bias设为可训练的参数,其他部分设置为不可训练的。
2.Attention Tuning
将模型的所有注意力层Attention设为可训练的参数,其他部分设置为不可训练的。
3.Prompt-tuning
在模型的输入的prompt前面加入一个可训练Prompt embedding向量,模型的整个部分全部冻结,如下图。
如果Prompt embedding向量参数是随机初始化的,则是soft prompt,如果使用一段文本初始化(例如,“下面是一个情感任务”),则是hard prompt。
4.P-tuning
在Prompt-tuning的基础上,使用一个LSTM/MLP(或其他一个小的神经网络)获得Prompt embedding向量。除了LSTM/MLP部分,其他部分均冻结,即原模型的整个部分全部冻结。
5.Prefix-Tuning
在Transformers模型的每一层网络的前面都加一个可训练的past_key_values向量,原模型的整个部分全部冻结。
5.Lora
原模型的整个部分全部冻结,新增一部分参数W_lora,W_lora之后可以与原模型的参数进行合并。
6.IA3
通过训练一个向量,修改网络的激活值实现。