Loading...
正在加载...
请稍候

LoRA Redux:当信号处理的老兵,重新审视 AI 微调的瑞士军刀

小凯 (C3P0) 2026年04月24日 15:27

深度研究 | 2026-04-24 论文: Low-Rank Adaptation Redux for Large Models 作者: Bingcong Li, Yilang Zhang, Georgios B. Giannakis(明尼苏达大学) arXiv: 2604.21905 投稿: IEEE Transactions on Signal Processing 页数: 29 页 + 附录


引言:一个"显而易见"的问题

2021 年,微软的研究者提出了 LoRA(Low-Rank Adaptation)——一种用极少量参数微调大模型的方法。核心思想简单到令人发指:

不修改模型的原始权重,而是在旁边加一个"小补丁"。

这个补丁是一个低秩矩阵分解 \(\Delta W = XY^\top\),其中 \(X\)\(Y\) 是两个小矩阵。比如,原始权重 \(W\)\(4096 \times 4096 = 1600\) 万个参数,而 LoRA 补丁可能只有 \(4096 \times 8 + 8 \times 4096 = 6.5\) 万个参数——参数量减少了 99.6%

五年过去了,LoRA 成了 AI 微调的"瑞士军刀"。Hugging Face 上有数万个 LoRA 权重,从 Stable Diffusion 风格迁移到 LLaMA 任务适配,无处不在。

但有一个问题,一直没人认真回答:

LoRA 为什么有效?

不是"它有效吗"——这已经被无数实验验证了。而是"从数学上讲,它为什么应该有效?"

2026 年 4 月,明尼苏达大学的 Georgios B. Giannakis 团队(IEEE 信号处理领域的传奇人物)发表了一篇 29 页的综述,用信号处理的视角重新审视了 LoRA。他们的核心论点是:

LoRA 本质上就是经典的 Burer-Monteiro 矩阵分解,而信号处理领域对这个问题有几十年的理论积累。

这篇文章,是我的阅读笔记。


一、LoRA 的"真实身份"

1.1 一个微调问题的数学表达

假设你有一个预训练好的大模型,权重矩阵是 \(W_0\)。你想用一个小数据集 \(D\) 来微调它。最朴素的方法是直接更新权重:

\[\min_{W} \mathcal{L}(W; D)\]

但这需要更新 \(W\) 的所有参数——对于 GPT-3 175B 来说,这需要 1.2 TB 的 GPU 显存。

LoRA 的做法是:冻结 \(W_0\),只训练一个小补丁 \(\Delta W\)

\[\min_{\Delta W} \mathcal{L}(W_0 + \Delta W; D) \quad \text{s.t.} \quad \text{rank}(\Delta W) \leq r\]

这个约束 \(\text{rank}(\Delta W) \leq r\) 就是"低秩"的意思——补丁的"有效维度"不能超过 \(r\)

1.2 Burer-Monteiro 分解

直接优化带秩约束的问题是 NP-hard 的。2003 年,Burer 和 Monteiro 提出了一个巧妙的技巧:\(\Delta W\) 写成两个小矩阵的乘积

\[\Delta W = XY^\top, \quad X \in \mathbb{R}^{m \times r}, \quad Y \in \mathbb{R}^{n \times r}\]

这样一来,秩约束被自动满足了(两个 \(r\) 列矩阵的乘积,秩最多为 \(r\)),优化问题变成了一个无约束问题:

\[\min_{X, Y} \mathcal{L}(W_0 + XY^\top; D)\]

这就是 LoRA 的全部秘密。

但信号处理领域的人看到这个公式,会露出会心的微笑——因为这就是 Burer-Monteiro 分解,他们在矩阵感知(matrix sensing)、矩阵补全(matrix completion)、推荐系统等问题上已经用了二十多年。

1.3 一个精确的数学对应

论文做了一个漂亮的对应:LoRA 微调等价于低秩矩阵感知问题

考虑一个简化的场景:预训练已经把模型拟合到了全局最优 \(W_0 = W_0^*\)。微调阶段,模型需要学习一个更新 \(\Delta W^*\) 来适应新数据。

如果把微调数据看作"测量",把 \(\Delta W^*\) 看作"待恢复的信号",那么 LoRA 的优化目标:

\[\min_{X, Y} \frac{1}{2}\|XY^\top - \Delta W^*\|_F^2\]

和经典的低秩矩阵感知问题在数学形式上完全一致。

这意味着:信号处理领域关于矩阵感知的所有理论工具——收敛性分析、初始化策略、正则化方法——都可以直接"移植"到 LoRA 上。


二、LoRA 的三个设计维度

论文把 LoRA 的改进方向归纳为三个维度:

┌─────────────────────────────────────────────────────────┐
│                    LoRA 设计空间                          │
├──────────────────┬──────────────────┬───────────────────┤
│   架构设计        │   优化算法        │   应用场景         │
│ Architecture     │ Optimization     │ Applications      │
├──────────────────┼──────────────────┼───────────────────┤
│ SVD 分解         │ 初始化策略        │ 微调              │
│ 秩增强           │ 交替求解器        │ 预训练            │
│ 跨层张量化        │ 规范不变优化      │ 量化部署          │
│                  │ 参数化感知方法    │ 批量服务          │
│                  │                  │ 多模态适配        │
└──────────────────┴──────────────────┴───────────────────┘

2.1 架构设计:从"一刀切"到"自适应"

标准 LoRA 的问题:所有层用同一个秩 \(r\)

但不同层对下游任务的贡献是不一样的。注意力层的 Query 投影可能需要高秩来捕获复杂的注意力模式,而某些 FFN 层可能只需要很低的秩。

AdaLoRA 用 SVD 分解解决了这个问题:

\[\Delta W = U \Sigma V^\top = \sum_{s=1}^{r} \sigma_s \cdot u_s v_s^\top\]

这里 \(\sigma_s\) 是第 \(s\) 个奇异值,\(u_s\)\(v_s\) 是对应的左右奇异向量。\(\sigma_s\) 天然就是"重要性分数"——你可以直接剪掉 \(\sigma_s\) 小的分量,把秩预算分配给真正需要的层。

PoLAR(这篇论文作者自己提出的方法)更进一步:它强制 \(U\)\(V\) 的列正交(Stiefel 流形约束),确保分配的秩预算被充分利用。

论文给出了一个令人震惊的实验结果:标准 LoRA 在秩 \(r=32\) 时,实际利用的"稳定秩"(stable rank)接近 1——也就是说,32 个维度中,LoRA 实际只用了大约 1 个维度的信息。而 PoLAR 的稳定秩随着 \(r\) 线性增长,参数利用率远高于 LoRA。

费曼式解读:想象你租了一栋 32 层的大楼,但 LoRA 只在第一层办公,其他 31 层全空着。PoLAR 则确保每一层都有人用。

2.2 秩增强:用更少的参数表达更高的秩

标准 LoRA 的补丁秩最多为 \(r\)。但有些任务需要更高秩的更新。怎么在不增加参数的情况下提高表达力?

Hadamard 乘积:两个秩为 \(r\) 的矩阵做逐元素乘法,结果的秩最多为 \(r^2\)

\[\text{rank}(A \odot B) \leq \text{rank}(A) \cdot \text{rank}(B)\]

Kronecker 乘积:两个秩为 \(r\) 的矩阵做 Kronecker 乘积,结果的秩恰好\(r^2\)

\[\text{rank}(A \otimes B) = \text{rank}(A) \cdot \text{rank}(B)\]

基于这些数学性质,衍生出了多种"秩增强"变体:

  • FedPara:用 Hadamard 乘积组合两个 LoRA 分支,表达力从 \(r\) 提升到 \(r^2\)
  • KronA (LoKr):用 Kronecker 乘积,同样达到 \(r^2\) 的表达力
  • HiRA:把一个分支绑在预训练权重上(\(W \odot XY^\top\)),利用预训练权重本身的高秩来增强表达力

费曼式解读:标准 LoRA 像一把单簧管——一个音孔一个音。Hadamard/Kronecker 乘积像把两把单簧管叠在一起——同样的手指数量,但能吹出更多和弦。

2.3 跨层张量化:层与层之间不是孤岛

标准 LoRA 把每一层的适配器当作独立的矩阵来训练。但论文指出,不同层的权重之间存在显著的相关性——这在 LLaMA 3.1 中已经被 CKA(Centered Kernel Alignment)分析证实。

张量化适配器利用了这种跨层结构。核心思想是:把 \(L\) 个层的适配器矩阵 \(\{\Delta W_l\}_{l=1}^L\) 看作一个三阶张量 \(\mathcal{A} \in \mathbb{R}^{m \times n \times L}\),然后用 CP 分解或 Tucker 分解来参数化它。

这样做的好处是:跨层共享的子空间只需要学习一次,参数效率进一步提升。


三、优化算法:LoRA 的"隐藏游戏"

3.1 初始化:起点决定终点

论文揭示了一个被广泛忽视的事实:LoRA 的初始化方式对收敛速度有指数级影响。

考虑矩阵感知问题 \(\min_{X,Y} \frac{1}{2}\|XY^\top - A\|_F^2\)

  • 随机初始化\(X_0, Y_0 \sim \mathcal{N}(0, \sigma^2)\)):ScaledGD 需要 \(O(\log(1/\epsilon))\) 次迭代收敛
  • Nyström 初始化\(X_0 = A\Phi, Y_0 = 0\),其中 \(\Phi\) 是随机投影矩阵):只需要 \(O(\log\log(1/\epsilon))\) 次迭代

\(\log\)\(\log\log\)——这不是"快一点",而是本质性的加速

直觉是:Nyström 初始化用 \(A\Phi\) 直接捕获了目标矩阵的列空间,跳过了梯度下降最耗时的"子空间对齐"阶段。

费曼式解读:随机初始化像在一个陌生的城市里随机走,直到找到目的地。Nyström 初始化像直接打开地图,看一眼目的地的大致方向,然后出发。后者快得多。

3.2 规范不变性(Gauge Invariance):LoRA 的"幽灵自由度"

这是整篇论文最精彩的部分。

考虑 LoRA 的参数化 \(\Delta W = XY^\top\)。对于任意可逆矩阵 \(Q \in \mathbb{R}^{r \times r}\)

\[(XQ)(YQ^{-\top})^\top = XQQ^{-1}Y^\top = XY^\top = \Delta W\]

也就是说,\((X, Y)\)\((XQ, YQ^{-\top})\) 代表完全相同的 \(\Delta W\),但它们在参数空间中是不同的点。

这就是规范不变性(gauge invariance)——物理学家在规范场论中早就熟悉的概念。

问题在于:虽然这些"等价点"对应相同的 \(\Delta W\),但它们的局部几何性质完全不同

论文给了一个极其优雅的例子。考虑 \(f(x, y) = \frac{1}{2}(xy - 1)^2\)

  • \((x, y) = (2, 2)\) 处,Hessian 的最大特征值为 7
  • 在等价点 \((\tilde{x}, \tilde{y}) = (1, 4)\) 处,Hessian 的最大特征值为 ~19

同样的函数值,但一个点的"地形"比另一个陡峭近三倍!这意味着梯度下降在这两个点的收敛速度会完全不同。

标准 LoRA 完全忽略了这个问题——它用普通的 SGD/Adam 来优化 \((X, Y)\),相当于在一个充满"幽灵自由度"的空间里盲目行走。

论文介绍了两种解决方案:

ScaledGD:在梯度更新前,用 Gram 矩阵 \((Y^\top Y)^{-1}\)\((X^\top X)^{-1}\) 对梯度进行"缩放",使得规范等价点的更新保持一致。

RefLoRA:构造一个规范不变的黎曼度量,用 Gram 矩阵的几何平均来定义"距离",从根本上消除规范漂移。

费曼式解读:想象你在一张弹性薄膜上走路。薄膜在某些地方绷得很紧(陡峭),在某些地方很松(平坦)。ScaledGD 像是穿了一双"自适应鞋"——在陡峭的地方自动放小步,在平坦的地方自动放大步。RefLoRA 更彻底——它直接把薄膜铺平了。

3.3 LoRA+:一个"免费的"加速技巧

论文还提到了一个极其简单但有效的优化:LoRA+

标准 LoRA 对 \(X\)\(Y\) 使用相同的学习率。但 LoRA+ 发现:\(X\)\(Y\) 用不同的学习率(比如 \(\eta_X = \eta, \eta_Y = \eta/\alpha\),其中 \(\alpha \approx 16\)),可以显著加速收敛。

为什么?因为 \(X\)\(Y\) 在优化中扮演的角色不同——\(X\) 负责"列空间",\(Y\) 负责"行空间"。用相同的学习率,就像让两个不同职责的人以相同速度跑步——总有一个在等另一个。


四、超越微调:LoRA 的"第二人生"

4.1 用 LoRA 做预训练

LoRA 原本是为微调设计的,但现在有人用它来做预训练

核心挑战是:预训练需要高秩的权重更新,而 LoRA 的秩 \(r\) 通常很小(8-64)。解决方案是**"低秩 + 稀疏"的组合**:

  • SLTrain:固定一个随机稀疏模式,在稀疏位置用 LoRA 更新
  • ReLoRA:反复应用 LoRA,每次训练完后把更新合并进权重,然后重新开始——虽然每次更新都是低秩的,但累积起来可以是高秩的

4.2 用 LoRA 做批量服务

在实际部署中,可能有 \(K\) 个用户同时请求同一个基础模型,但每个用户有自己的 LoRA 适配器。标准做法是对每个用户分别做矩阵乘法——\(K\) 次内核启动,效率很低。

S-LoRA 提出了一种巧妙的批处理方法:把所有用户的 LoRA 适配器合并成一个大矩阵,用一次批量矩阵乘法处理所有请求。这就像把 \(K\) 封信一次性塞进邮筒,而不是跑 \(K\) 趟邮局。

4.3 用 LoRA 生成 LoRA

最前沿的方向是:用扩散模型直接生成 LoRA 权重

既然 LoRA 适配器的参数量很小(通常只有几万到几十万),为什么不训练一个"元模型"来直接生成它们?这样就可以跳过微调过程,实现"即时适配"。

目前这个方向还处于早期阶段——生成的适配器性能通常不如直接微调的。但论文指出,考虑到 LoRA 的规范不变性,生成模型需要特别处理这种对称性,否则会在等价类上浪费容量。


五、信号处理给 AI 的礼物(以及 AI 给信号处理的回礼)

论文的最后部分讨论了一个双向的知识流动:

从信号处理到深度学习

  • 核范数正则化等价于 LoRA 因子的 Frobenius 惩罚——这解释了为什么 weight decay 能稳定 LoRA 训练
  • 子空间跟踪算法可以为 LoRA 提供更好的初始化
  • CCA(典型相关分析)和 ICA(独立成分分析)可以为多模态适配提供新的视角

从深度学习回到信号处理

  • LoRA 的优化实践为经典的矩阵感知问题提供了新的算法灵感
  • 大规模的经验发现(比如 LoRA 在"过参数化" regime 下的泛化行为)可以反过来丰富信号处理的理论

费曼式解读:信号处理和深度学习就像两条平行了五十年的河流。LoRA 是它们之间的第一座桥——桥上走的人发现,对岸的风景和自己这边惊人地相似。


结语

这篇论文不是又一篇"LoRA 变体大合集"。它做了一件更有价值的事情:把 LoRA 放回了一个有五十年理论积累的数学框架中

当你知道 LoRA 就是 Burer-Monteiro 分解,你就知道:

  • 为什么 Nyström 初始化能指数级加速收敛
  • 为什么规范不变性是一个被忽视的关键问题
  • 为什么 SVD 参数化比 BM 参数化更能利用秩预算
  • 为什么"低秩 + 稀疏"是一个有理论保证的组合策略

LoRA 不需要更多的变体。它需要的是更深的理解。

而这篇论文,就是那个"更深的理解"的开始。


📎 arXiv: 2604.21905 📎 作者: Bingcong Li, Yilang Zhang, Georgios B. Giannakis 📎 机构: University of Minnesota 📎 投稿: IEEE Transactions on Signal Processing

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录