目前LLM微调基本就是指Parameter Efficient Finetuning(PEFT),其特点就是与传统概念的全量FT不同,只更新(添加)极少量的参数。PEFT方法非常多,这里给出一个整体框架。
-
Additive Methods
- freeze原始参数,添加新的可训练模块
- Adapter
- 每一层插入一个Adapter(是插入data flow而非像LoRA一样添加旁支)
- Soft Prompt-based FT
- Prompt tuning:输入嵌入层前添参数
- ……
-
Reparameterization Methods
- LoRA、QLoRA、DLoRA, etc.
- 无需多言
- LoRA、QLoRA、DLoRA, etc.
-
Selective Methods
- freeze一部分参数,训练另一部分
- Layer Freeze:经典方法,例如冻前N层训后M层
- Bias Term FT:只冻权重,训练bias
-
最典型的做法:单用QLoRA,或者QLoRA+Prompt-based FT