低秩适应(LoRA,Low-Rank Adaptation )是参数高效微调(PEFT, Parameter-Efficient Fine-Tuning)领域的重要技术之一。它打破传统全量微调的局限,只对模型中少量参数进行调整,就能让模型在特定任务上表现出色,大大降低了大模型在不同任务适配过程中的资源门槛。本节主要介绍:
1)矩阵中的秩和低秩矩阵相乘的有效性 2)利用低秩矩阵相乘,LoRA 的微调策略设计 3)LoRA如何选取秩 r 大小,微调矩阵 和原权重矩阵 之间关系
秩的定义:矩阵中线性无关的行或列的最大数量
直观理解:矩阵的"信息密度"或"表达能力"。例如一个3×3的单位矩阵,秩为3,因为它有3个线性无关的向量
两矩阵相乘的秩:
假设矩阵 A 是一个m×r的低秩矩阵(秩为 r),矩阵 B 是一个r×n的低秩矩阵(秩为 r),则它们的乘积 C=A×B 是一个m×n的矩阵。根据线性代数的性质,乘积矩阵 C 的秩不超过 A 和 B 的秩的最小值,即rank(C) ≤ min(rank(A), rank(B)) = r。
而满秩矩阵的秩等于其行数或列数,如m×n满秩矩阵的秩为min(m,n)。若r < min(m,n),则 C 的秩必然小于满秩矩阵的秩,因此无法精确等价于满秩矩阵。
问题: 两低秩矩阵相乘,是否可以近似于一个满秩矩阵的表示效果?
结论:低秩近似具有有效性,但无法完全等价。
但在很多任务中,矩阵的 “核心信息” 往往集中在低秩分量中。如:
因此,用两个低秩矩阵 A×B(秩为 r)近似满秩矩阵 W 时,只要 r 选择得当,比如 r 远小于 W 的维度但能覆盖核心变化,就能以极小的误差逼近 W 的效果,同时大幅减少参数数量(从m×n降至m×r + r×n)。
小结:
受限于秩的数学性质,两个低秩矩阵相乘无法精确表示满秩矩阵,但在实际任务中,通过合理选择低秩维度 r,能够以较小的误差逼近满秩矩阵的核心信息,满足模型微调等场景的需求。这也是低秩适应技术在大模型优化中广泛应用的核心原因。
预训练好的模型,其权重矩阵为 ,维度是 。全量微调的目标是学习一个参数更新量,使得模型在新的任务数据上表现更好,即优化后的权重矩阵为 。但全量微调时, 的参数量和一样庞大,计算成本极高。
此外,大模型权重更新具有“低内在秩”的特征,并非所有的参数都需要调整,更新方向集中在少数主要成分上。因此LoRA通过低秩分解来模拟参数的改变量。
假设参数更新矩阵 可以分解为两个低秩矩阵 A 和 B乘积。即 A 的维度为,B的维度为,其中r远小于d(r≪d) 。这样,权重更新量,最终优化后的权重矩阵变为。
更进一步,对于输入向量 ,传统线性层输出为 ,使用 LoRA 后输出变为 。这里,AB 就像是在原有模型基础上添加的一个 “调节项”,通过训练低秩矩阵A 和 B,让这个调节项能够捕捉到新任务的关键信息,同时不改变原模型的主体结构和知识。
从参数量对比,原来直接更新的参数量是,而采用 LoRA 后, A 和 B 的总参数量为 ,当 r 取值较小时,参数量大幅减少。
在实际训练过程中,固定预训练权重 ,仅对 A 和 B进行训练,通过反向传播算法计算损失函数对 A 和 B的梯度,进而更新它们的参数,使模型在新任务上的性能不断提升 。

图1,LoRA 微调训练示意图。

表1,对自注意力中不同的参数进行微调的效果。
在大模型的自注意力层,可训练的参数有四个 ,通过变化矩阵的秩 r,保持可微调的参数总量为18M,分别在两个任务上进行测试。从实验结果上看,当r=4时,仅对 矩阵微调后效果最优,当r=2时,对四个矩阵微调,效果最优。
部分原因: 自注意力计算过程中,查询矩阵 用于计算输入序列每个位置的查询向量,它决定了当前位置对其他位置信息的关注程度;值矩阵 则用于生成值向量,这些值向量是注意力机制最终输出的重要组成部分。
结论:
仅对查询矩阵 和值矩阵进 行 LoRA 微调,模型在下游任务中的表现与全量微调效果相近,而计算成本却大幅降低。相比之下,若仅对单个参数进行 LoRA 微调,模型性能提升不明显,这进一步验证了 LoRA 在自注意力模块特定矩阵应用的有效性和针对性 。

表2,秩大小对准确率的影响。
在两种不同的任务上,分别设置三组对照实验,矩阵的秩从 1到64。实验发现在参数矩阵 ,进行LoRA微调,即使矩阵的秩 r=1也取得了和大秩矩阵 r=64 一样的效果。表明在可微调的参数矩阵中,存在内在秩“intrinsic rank”的假设,表明较小的秩也可以充分的表示模型中突出信息,增大矩阵秩 r 并没有覆盖到矩阵中有用的信息。
如果将秩r=8的矩阵和r=64的矩阵投影到子空间,发现两个矩阵,在顶1个奇异向量的子空间相似度显著,而第二个及以后迅速下降,说明权重更新的最核心方向具有高度的一致性。更进一步说明,低秩矩阵已经能覆盖微调任务的“核心维度”,不断增加秩,并不能显著的拓展有效子空间,反而引入冗余噪声。
结论: 在参数 上进行微调,使用较小的秩,可使可训练参数最少,同时效果最优。

表3,微调矩阵和权重矩阵存在一定的放大关系。
我们通过计算 将 W 投影到 的 r 维子空间中,得到实验结果,总结有以下结论。
相比于全量的参数微调,使用LoRA 进行模型微调,主要有以下的优势。
微调方式 | 参数量 | 显存占用 | 训练速度 | 存储开销 |
|---|---|---|---|---|
全参数微调 | 100% | 高 | 慢 | 每个任务完整模型 |
LoRA微调 | 0.01%~1% | 极低 | 快 | 基础模型 + 小量LoRA权重 |
参考:arxiv:2106.09685v2