在23年写过一篇名叫《从新的角度看待大模型微调》的文章,用于讨论lora的原理。这里不赘述,只介绍几个常用的LoRA操作。
一、将两个lora合并
假设有这样一种情况,已有基础模型base,某人在base上面微调了一个lora1,然后你在base+lora1基础上微调了要一个lora2,并在base上微调了一个lora3。为了方便部署时共用base,那部署lora2的时候就需要提取与lora1合并,注意这里是两个lora合并,而不是把lora合并到基础模型上去。
用公式说明lora2的实际工作模式如下:
Y = X ( W + Δ W 1 + Δ W 2 ) = X ( W + B 1 A 1 + B 2 A 2 ) = X ( W + [ B 1 ∣ B 2 ] × [ A 1 ∣ A 2 ] T ) Y=X(W+\Delta W_1+\Delta W_2)=X(W + B_1A_1 + B_2A_2)=X(W + [B_1 \mid B_2]\times[A_1 | A_2]^T) Y=X(W+ΔW1+ΔW2)=X(W+B1A1+B2A2)=X(W+[B1∣B