主流的几种大模型微调技术
从参数规模的角度,大模型的微调分成两条技术路线:
一条是对全量的参数,进行全量的训练,这条路径叫全量微调FFT(Full Fine Tuning)。
一条是只对部分的参数进行训练,这条路径叫参数高效微调PEFT(Parameter-Efficient Fine Tuning)。
FFT(Full Fine Tuning)
经典的FFT其实就是在加入满足特定任务的数据后继续更新预训练模型,提升模型在特定任务领域的表现。
这种微调方法存在的主要问题有两个:
1、训练的成本会比较高。因为微调的参数量跟预训练的是一样的多的。
2、容易引发灾难性遗忘。用特定训练数据去微调可能会把这个领域的表现变好,但也可能会把原来表现好的别的领域的能力变差。
PEFT(Parameter-Efficient Fine Tuning)
PEFT要解决的就是FFT存在的上述两个问题,也是目前比较主流的发展路线。接下来介绍几种比较流行的PEFT微调技术。
(1)Prompt Tuning
Prompt Tuning的出发点,是基座模型(Foundation Model)的参数不变,为每个特定任务,训练一个少量参数的小模型,在具体执行特定任务的时候按需调用。
如果将大模型比做一个函数:Y=f(X),那么Prompt Tuning就是在保证函数本身不变的前提下,在X前面加上了一些特定的内容,而这些内容可以影响X生成期望中Y的概率。
(2)LoRA
LoRA是跟Prompt Tuning完全不相同的另一条技术路线。它的背后是这样的一个假设:我们现在看到的这些大语言模型都是被过度参数化的,背后都有一个低维的本质的模型。利用一种名叫低秩适配(low-rankadaptation)的方法,我们只需要训练能影响这个低维本质模型的少量的重要参数即可让大模型在适配下游任务时达到一个很好的效果。
(3)QLoRA
QLoRA就是量化版的LoRA,它是在LoRA的基础上,进行了进一步的量化,将原本用16bit表示的参数,降为用4bit来表示,可以在保证模型效果的同时,极大地降低成本。