LoRA能省成那样,就一句话:它压根不去动原模型那一大堆冻住的权重。
绕开的办法挺巧——微调说到底是给权重加一个变化量,LoRA假设这个变化量本身是低秩的,于是把它拆成两个又瘦又长的小矩阵,训练时只更新这两个。原来那堆权重一动不动,真正要算的参数量直接小了好几个数量级,显存和时间跟着都下来了;存出来的文件也就几十兆,随插随用。
想通这一层,再回头看训练脚本里那些rank、alpha的设置,就不是照着别人的数字抄了,心里清楚自己在调的是什么。我写代码出身,理解这个反而比调参快,说穿了就是拿低秩近似换算力。
周末就搭进去了,不亏。