LoRA 的 Rank 参数是什么含义,增大会带来哪些问题?
未标记
考查重点:低秩维度与容量、过拟合。rank是低秩中间维,增大可表达更新但参数/优化状态增且可能过拟合,固定数据扫r看任务收益
本题目录
参考答案
本答案基于相关资料,由 AI 辅助编写,供学习与面试准备参考。如有疏漏,欢迎反馈指正。
核心回答
LoRA 的 rank 通常记为 r,表示两个低秩矩阵之间的中间维度。对一个线性层,A 的形状为 r×d_in,B 为 d_out×r,所以增量 BA 的秩最多为 r,新增可训练参数量是 r(d_in+d_out)。它限制的是权重增量能表达的变化,不是把原模型权重的秩改成 r。
增大 r 会扩大可表达的更新空间,也会增加适配器参数、梯度、优化器状态和分支计算开销;在数据较少时还可能更容易拟合噪声。效果并不会随 r 单调变好,整场训练显存也不会因此等比例增加,因为基座权重、激活等部分仍然存在。
增大r同时改变了什么
同一个4096输入、4096输出的投影,r=8 时新增65,536个参数,r=16 时是131,072个。翻倍的是这一投影的适配器参数,不是整个模型参数或训练峰值。
标准缩放常为 alpha/r。若只把 r 加倍而固定 alpha,缩放也发生变化,因此实验结果不只是“容量变大”的影响。有些变体采用不同缩放,比较时应记录具体方式,不能把不同配置当成只改了一个变量。
怎样选r
先固定数据、基座、目标模块、训练预算与评估口径,建立一个可工作的基线。若训练集和验证集都表现不足,再检查是否确实受适配容量限制;模板错误、标签掩码错误或适配器没有生效,都不是靠加大 r 解决的。
可以围绕预算选少量候选,对比独立验证集的任务指标、旧能力回归和峰值显存。若训练表现更好但验证恶化,应优先检查数据量、噪声与训练轮数。目标模块的覆盖也很重要:增加某些必要投影,可能比把一个投影的 r 不断放大更合适,最终仍需同条件比较。
对应教程
- 《模型训练原理与高效微调》:回看第6节的冻结权重、低秩分支与参数设置;本文补充计算条件和工程取舍。
参考资料
- 国内:wdndev:LoRA技术原理:采用低秩更新形式,说明rank限制的是增量矩阵而非基座权重。
- 国内:WeThinkIn:后训练:微调与对齐:采用rank、alpha与目标模块的独立影响,解释容量和缩放的混杂。
- 国内:adongwanai:SFT实战经验分享:采用验证集隔离和训练、验证曲线对照,判断加大rank是否只拟合噪声。
- 国内:ModelScope:预训练与微调:采用独立验证与测试数据的推理流程,说明rank实验需要同条件比较。
- 国外:Microsoft:LoRA: Low-Rank Adaptation of Large Language Models:采用增量秩与目标矩阵选择的分析,解释参数量及容量不等于必然收益。
- 国外:Hugging Face:LoRA (PEFT v0.21.0):核对r、lora_alpha和缩放变体的配置含义,避免把容量与缩放混为一个变量。
