题目重点:推导冻结主权重时的低秩训练,解释参数节省为何不等于少样本保证。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 训练线性层W[out,in],增量(s/r)BA,A[r,in]、B[out,r],r>0;基础权重冻结。
解题路线
- 前向y=Wx+(α/r)BAx,训练只更新adapter及明确选择的额外项;反向仍需通过冻结基础网络传播激活梯度,冻结不代表无需计算。
- 常见初始化A随机、B为0,使初始增量0且B先收到梯度。若A/B同时0,两者梯度可能都为0,不能学习。
- 参数量从out·in变r(in+out),优化器状态减少;激活与KVcache等成本并不会按同倍率下降。推理可在适用线性层合并W+ΔW,管理dtype与adapter版本。
- 小数据有时可利用预训练表示和较受限自由度,但任务差异、数据质量、rank和正则决定效果。需要验证集和对照,不能说LoRA天然不需要很多数据或必不overfit。
手动走一遍
in=out=4096,r=8,主权重约1678万项,adapter65536项;这是该矩阵参数比例,不是整个训练显存比例。B=0、A随机时ΔW=0,dA初期可0,dB不必0;下一步二者逐渐学习。
规模与取舍
额外前向 O(r(in+out)) 每token,相比主乘法小;adapter参数O(r(in+out)),activation与optimizer按实际配置算。
易错点与追问
容易失分的边界
- 把低秩等同所有任务可压缩到同rank。
- A/B同时零。
- 宣称少样本性能保证。
继续深挖
- rank和target module如何选择?
- 多个adapter切换与合并有什么风险?
技术参考
- LoRA 原始论文:技术语义参考,具体题目按本文约定。
