LoRA为啥省显存,原理捋了一遍,还剩一个点没搞懂

想请教个LoRA推理的问题,先把我自己捋的原理贴一下,免得问得没头没尾。

LoRA不动原模型的权重,而是在旁边挂一对低秩分解的小矩阵,训练时只更新这对小矩阵,原来那一大坨参数全程冻着。拆成低秩的两块之后,真正要学的参数量一下砍下来了,所以同一张卡,全量微调跑不动,换LoRA就能轻松塞进去。想明白这层再回头调秩、调学习率,心里就有谱了,不再是瞎试。

卡住我的是推理这块:这对矩阵是每次都实时算,还是提前合并回原权重再跑?有清楚的朋友麻烦点我一下。

冻结原权重还有个好处,训废了原模型也不受影响,卸掉LoRA就回去了。

顶

1 个赞

推理一般会把两个矩阵乘出来合并进原权重,这样不增加延迟

码住,回头细看

秩到底设多少合适我一直没摸准,8和16出图差别有时挺明显

讲得比我自己瞎琢磨清楚多了 :+1: