MLE / Research Scientist · ML Coding / Design

TikTok LoRA:低秩增量、初始化与小数据边界

推导冻结主权重时的低秩训练,解释参数节省为何不等于少样本保证。

题目重点:推导冻结主权重时的低秩训练,解释参数节省为何不等于少样本保证。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 训练线性层W[out,in],增量(s/r)BA,A[r,in]、B[out,r],r>0;基础权重冻结。

解题路线

  1. 前向y=Wx+(α/r)BAx,训练只更新adapter及明确选择的额外项;反向仍需通过冻结基础网络传播激活梯度,冻结不代表无需计算。
  2. 常见初始化A随机、B为0,使初始增量0且B先收到梯度。若A/B同时0,两者梯度可能都为0,不能学习。
  3. 参数量从out·in变r(in+out),优化器状态减少;激活与KVcache等成本并不会按同倍率下降。推理可在适用线性层合并W+ΔW,管理dtype与adapter版本。
  4. 小数据有时可利用预训练表示和较受限自由度,但任务差异、数据质量、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切换与合并有什么风险?

技术参考

✓已复制微信号!