什么是 LoRA 秩(LoRA Rank)?

LoRA 秩(LoRA Rank)是表示 LoRA 权重更新的两个可训练矩阵所使用的内部维度 r。它限制更新矩阵的秩并控制参数容量,但不能直接预测任务质量,也不存在适用于所有任务的默认值。

快速了解

规范文档官方规范

工作原理

对于输入维度为 d_in、输出维度为 d_out 的目标权重,LoRA 使用形状为 r × d_in 的 A 和 d_out × r 的 B。忽略偏置和额外保存模块时,该目标增加 r ×(d_in + d_out)个可训练参数;Adapter 总大小是所有目标权重和层的总和。提高 rank 会扩大表示预算,并可能增加优化器、梯度、存储、缓存与计算成本,但不一定提升留出集质量。rank 还会与目标模块、初始化、学习率、数据和缩放策略相互作用:原始 LoRA 使用 alpha/r,部分变体采用其他规则。有效的 Rank Sweep 必须固定这些因素或声明变化方式,再按切片测量质量与资源结果。

主要特点

  • 定义每个选定权重的 A、B 更新矩阵所共享的内部维度
  • 每个目标权重增加 r ×(输入维度 + 输出维度)个参数
  • 会改变容量与资源使用,但不会单调决定留出集质量
  • 与目标模块、alpha 缩放、初始化、优化器、数据和训练预算相互作用
  • 影响 Adapter 制品大小,以及部分服务运行时的 Rank 上限或缓存容量
  • 必须在不可变 Train、Validation 和 Test Revision 上通过受控试验选择

常见用途

  1. 为版本化的指令遵循或分类任务比较 Adapter 容量
  2. 规划可训练参数、优化器状态、制品存储与服务缓存
  3. 比较扩大目标模块覆盖与提高 rank 哪一种更有价值
  4. 为受治理的多 Adapter 服务定义最大支持 rank
  5. 先排除 Label、Loss Mask、数据泄漏与质量问题,再诊断容量限制

示例

loading...
Loading code...

常见问题

LoRA 应该使用多大的 rank?

不存在通用 rank。选择符合资源包络的有界候选集,固定基座、目标模块、数据、缩放策略、优化器和评测,再在留出的任务与回归切片上比较多次运行。应选择满足发布门槛的最小 rank,而不是复制流行数值。

rank 越高质量一定越好吗?

不一定。更高 rank 会扩大更新参数化,但优化过程、数据质量、目标模块和评测决定新增容量是否有用。它可能没有可测收益,也可能增加方差、过拟合、显存、存储和服务缓存消耗。

LoRA rank 会增加多少参数?

对输入维度为 d_in、输出维度为 d_out 的单个目标权重,rank r 为 A 和 B 增加 r ×(d_in + d_out)个参数。应对所有选定权重和层求和,再加入训练的 Bias、Embedding、Head 或 modules_to_save 参数。

LoRA rank 如何影响部署?

rank 会改变 Adapter 字节数,还可能改变运行时计算、缓存分配、最大并发 Adapter 数和引擎兼容性。服务系统可能限制最大 rank,或按最大值预留缓存,因此训练配置必须与服务容量共同规划。

LoRA 质量不好时应该先增加 rank 吗?

不应该。先检查 Label、Completion 或 Assistant Loss Mask、截断、Chat Template、重复数据泄漏、目标模块名称和未修改基座表现。只有排除这些问题后,才把增加 rank 作为受控实验;真正问题也可能是数据或训练目标不合适。

相关术语

相关文章