lora学习
1.什么是lora
lora是low-rank adaption的意思,即在模型训练时对于Y=X*W,我们会更新W = W + △W,而△W往往是一个较大的矩阵,如果我们只是进行模型微调的话,更新整个△W成本太大,我们可以使用△W=A * B的方式将△W分解为两个较小的矩阵A和B,在训练的时候更新这两个矩阵即可,这样可以减小参数量并达到一个同全参数微调基本相当的效果
2. 为什么lora有效
对于一个矩阵我们可以进行奇异值分解为三个矩阵X=ABC,对于B我们可以只取前r个较大的数据,同时对于A和C对应的维度也变为r,这样三个较小的矩阵相乘得到X2,只要r取的适当,X2可以表示X的绝大部分信息,所以可以通过这种分解的方式使用较小的矩阵来近似表达较大的矩阵,而在lora中我们取消了中间矩阵只用两个矩阵
3.如何使用lora
在反向传播的过程中不使用lora的情况是训练更新△W,使用lora的情况下是训练更新AB
在transformer层中,常常对Q和V的权重矩阵Wq和Wv使用lora分解训练
