现代大型语言模型 (LLM) (如 GPT-4 和 LLaMA 3) 的规模令人咋舌。虽然它们的性能令人印象深刻,但为了特定的下游任务去适配这些庞然大物是一场计算噩梦。你根本无法承担为每个新任务更新所有参数的代价。
这一挑战催生了参数高效微调 (Parameter-Efficient Fine-Tuning, PEFT) 。在 PEFT 方法中, LoRA (Low-Rank Adaptation,低秩适应) 已成为行业标准。它冻结预训练权重并注入可训练的低秩矩阵,大幅减少了需要更新的参数数量。
但是,标准的 LoRA 架构是建模权重更新的最高效方式吗?
在这篇文章中,我们将深入探讨一篇引人入胜的论文 “Mixture-of-Subspaces in Low-Rank Adaptation” (低秩适应中的子空间混合) 。 该论文提出,通过改变我们看待——以及混合——LoRA 内部组件的方式,我们可以从 LoRA 中榨取显著的性能提升。研究人员介绍了 MoSLoRA , 这是一种将 LoRA 分解为子空间并采用可学习的“混合器 (mixer) ”来融合它们的方法。其结果是一个稳健、高效的适配器,在几乎不增加额外成本的情况下超越了原始 LoRA。
背景: LoRA 是如何工作的
要理解 MoSLoRA 的创新,我们必须先回顾标准 LoRA 的机制。
在典型的神经网络层中,我们有一个预训练的权重矩阵 \(\mathbf{W}_0\)。在微调过程中,LoRA 不直接更新 \(\mathbf{W}_0\),而是通过将其分解为两个较小的低秩矩阵 \(\mathbf{A}\) 和 \(\mathbf{B}\) 来学习一个更新矩阵 \(\Delta \mathbf{W}\)。
前向传播过程如下所示:

在这里,\(\mathbf{A}\) 是降维投影 (减少维度) ,\(\mathbf{B}\) 是升维投影 (恢复维度) 。秩 \(r\) 通常被选择得很小,这意味着 \(\mathbf{A}\) 和 \(\mathbf{B}\) 中的可训练参数数量只是原始权重的一小部分。
子空间视角
这篇论文的作者提出了一个新的视角: 我们可以将 \(\mathbf{A}\) 的列和 \(\mathbf{B}\) 的行视为定义了独立的子空间 。
标准 LoRA 计算乘积 \(\mathbf{AB}\)。在数学上,这相当于对一系列秩为 1 的外积求和。如果我们将 \(\mathbf{A}\) 和 \(\mathbf{B}\) 分解为更小的组件,LoRA 本质上是在对这些并行组件的贡献进行求和。
火花: 如果我们混合子空间会发生什么?
研究人员从一个探索性实验开始。他们问道: 如果我们显式地将 LoRA 分解为两个并行的子空间并混合它们,会发生什么?
想象一下将矩阵 \(\mathbf{A}\) 分成两半 (\(\mathbf{A}_1, \mathbf{A}_2\)) ,将矩阵 \(\mathbf{B}\) 也分成两半 (\(\mathbf{B}_1, \mathbf{B}_2\)) 。在标准 LoRA 中,这种结构隐含了这些部分之间的特定关系。但研究人员尝试了一种 双子空间混合 (Two-Subspaces-Mixing) 策略。

如上图所示:
- 左侧 (原生 LoRA) : 乘法 \(\mathbf{AB}\) 自然地对交互作用 \(\mathbf{A}_1\mathbf{B}_1 + \mathbf{A}_2\mathbf{B}_2\) 求和。
- 右侧 (混合) : 他们引入了一个混合步骤,在最终乘法之前将子空间的输出相加。
在数学上,混合这两个子空间会导致更复杂的交互集:

注意到区别了吗?标准 LoRA (论文中的公式 2) 只捕捉“自身”的交互 (\(\mathbf{A}_1\mathbf{B}_1\) 和 \(\mathbf{A}_2\mathbf{B}_2\)) 。混合策略引入了交叉项 (\(\mathbf{A}_1\mathbf{B}_2\) 和 \(\mathbf{A}_2\mathbf{B}_1\)) 。
效果如何?
令人惊讶的是,效果很好。仅仅通过混合这两个子空间,模型在常识推理基准测试中的表现就更好了。

如上表所示,“TS-Mixing” (双子空间混合) 策略在 8 个不同的数据集上始终击败标准 LoRA。这一观察结果成为了完整方法 MoSLoRA 的催化剂。
核心方法: 子空间混合 LoRA (MoSLoRA)
探索性实验表明,“混合”子空间为模型权重提供了更丰富的更新。然而,上述的手动混合策略有些僵化——它使用了一种固定的组合方式。
研究人员决定将其泛化。他们意识到,标准 LoRA 和双子空间混合策略都可以用一个包含 混合器矩阵 (Mixer Matrix) 的统一数学框架来表达。
细粒度视角
让我们将 \(\mathbf{A}\) 和 \(\mathbf{B}\) 分解为它们最细微的组件: 秩为 1 的子空间。

如果我们通过这个透镜看标准 LoRA,它在数学上可以写成在 \(\mathbf{A}\) 和 \(\mathbf{B}\) 之间插入一个 单位矩阵 (\(\mathbf{I}\)) :

这就是关键的洞察点。 原生 LoRA 仅仅是一个特例,其中“混合器”是一个固定的单位矩阵。 它僵化地将 \(\mathbf{A}\) 的第 \(i\) 列仅连接到 \(\mathbf{B}\) 的第 \(i\) 行。
引入可学习的混合器
MoSLoRA 提出了一个简单而强大的改变: 用一个 可学习的混合器矩阵 \(\mathbf{W}\) 替换固定的单位矩阵。
新的更新规则变为:

或者简单地写成: \(\Delta \mathbf{W} = \mathbf{A}\mathbf{W}\mathbf{B}\) 。
以下是架构的视觉对比:

- 左侧 (LoRA) : 固定连接。\(\mathbf{A}_i\) 仅与 \(\mathbf{B}_i\) 对话。
- 中间 (混合) : 固定的蝶形 (Butterfly) 模式 (更多连接,但仍是静态的) 。
- 右侧 (MoSLoRA) : 一个全连接、可学习的权重矩阵 \(\mathbf{W}\) 位于中间。
通过学习 \(\mathbf{W}\),模型可以决定如何将 \(\mathbf{A}\) 提取的信息与 \(\mathbf{B}\) 中的投影相结合。它灵活地融合了所有可能的子空间 (\(\mathbf{A}_i\mathbf{B}_j\)) 。
混合器的成本
你可能会担心添加矩阵 \(\mathbf{W}\) 会显著增加参数数量。然而,\(\mathbf{W}\) 是一个 \(r \times r\) 的矩阵。由于秩 \(r\) 通常相对于模型维度 \(d\) (通常为 4096 或更多) 非常小 (例如 16、32 或 64) ,\(\mathbf{W}\) 的大小微不足道。

如图 1 所示,参数复杂度从 \((d_1 + d_2)r\) 变为 \((d_1 + d_2 + r)r\)。因为 \(d \gg r\),所以额外的成本极小。
初始化的重要性
实现 MoSLoRA 并不像添加一个随机矩阵那么简单。该系统是线性的 (\(\mathbf{A} \times \mathbf{W} \times \mathbf{B}\)) ,这使得初始化对收敛至关重要。
研究人员分析了梯度,发现如果 \(\mathbf{W}\) 和 \(\mathbf{B}\) 都被初始化为零 (这是 LoRA 中 \(\mathbf{B}\) 的常见做法) ,梯度将消失,模型什么也学不到。

如果 \(\mathbf{W}\) 为零,\(\frac{\partial y}{\partial \mathbf{A}}\) 变为零。如果 \(\mathbf{A}\) 或 \(\mathbf{B}\) 为零,链条就会断裂。
作者测试了混合器 \(\mathbf{W}\) 的各种初始化策略:

- 零矩阵: 不收敛。
- 单位矩阵: 表现与标准 LoRA 相似 (82.6 对比 82.8) 。
- 正交或 Kaiming 均匀分布: 这些提供了最佳的性能提升 (高达 85.6) 。
最终建议是将 \(\mathbf{A}\) 初始化为 Kaiming 均匀分布,\(\mathbf{B}\) 初始化为零,而混合器 \(\mathbf{W}\) 初始化为 正交 (Orthogonal) 或 Kaiming 均匀分布 。
实验结果
研究人员在三个不同的领域对 MoSLoRA 进行了测试: 常识推理、视觉指令微调和主体驱动的图像生成。
1. 常识推理 (LLaMA-3)
他们在复合数据集上微调了 LLaMA-3-8B,并在 8 个基准测试 (如 ARC、BoolQ 和 HellaSwag) 上进行了评估。

主要结论:
- 最佳性能: MoSLoRA (最后一行) 获得了最高的平均分 (85.6) ,击败了标准 LoRA (82.8) 。
- 高效性: 它超越了像 DoRA 和 LoHa 这样更重的方法,同时保持了与标准 LoRA 相当的训练时间。
- 低样本场景: 当训练数据稀缺时,MoSLoRA 和 LoRA 之间的差距会扩大。仅使用 50% 数据训练的 MoSLoRA 在某些指标上甚至超过了使用 100% 数据训练的 LoRA。

2. 视觉指令微调
该方法在多模态任务中同样表现出色。使用 LLaVA-1.5 和 InternLM2,研究人员应用 MoSLoRA 微调模型以进行视觉问答。

上面的雷达图可视化了 MMBench 上的归一化性能。MoSLoRA (彩色线) 覆盖了 LoRA 基线 (灰色区域) ,显示出广泛的改进。在 推理 (Reasoning) 类别 (关系、逻辑) 中的收益尤为强劲,这表明子空间的灵活混合有助于模型比简单的参数更新更好地掌握复杂关系。

在 ScienceQA 和 TextVQA 等基准测试中,MoSLoRA 始终优于 LoRA 和 QLoRA (量化 LoRA) 。
3. 主体驱动的图像生成
最后,作者在 Stable Diffusion XL (SDXL) 上测试了 MoSLoRA。任务是 “Dreambooth”——在特定主体 (例如,一只特定的猫) 的几张图像上微调模型,并在不同的背景下生成该主体的新图像。
这是视觉质量差异变得明显的地方。

在上面的对比中:
- LoRA (上) : 生成了一只猫,但经常丢失主体的具体细节或忽略部分提示词。
- MoSLoRA (下) : 捕捉到了精细的细节,例如脖子周围特定的毛色。它还能更好地遵循具有挑战性的提示词,如“漂浮在水面上”或“湿猫”。
以下是模型在保持主体身份 (特定的狗) 的同时将其置于不同背景下的更多示例:

人工评估证实了这种质量上的飞跃。在提示词一致性方面,MoSLoRA 的 胜率比 LoRA 高出 34.3% 。
结论
这篇“子空间混合”论文教给了我们关于神经网络适应的一个宝贵教训: 结构很重要。标准 LoRA 假设降维投影和升维投影子空间之间存在一对一的映射。通过打破这一假设并引入一个简单的、可学习的混合器矩阵 (\(\mathbf{W}\)) , MoSLoRA 允许模型找到更复杂、更优的适应路径。
主要收获:
- 分解: LoRA 可以被视为秩为 1 的子空间之和。
- 灵活混合: 插入可学习的混合器 \(\mathbf{W}\) 将更新从 \(\mathbf{AB}\) 转换为 \(\mathbf{AWB}\)。
- 低成本: 参数开销微不足道 (\(r^2\)) ,但表达能力的提升是显著的。
- 稳健性: 该方法在文本、视觉语言和图像生成任务中均有效。
对于使用 LLM 的学生和从业者来说,MoSLoRA 代表了一场“唾手可得的胜利”——这种修改易于实现 (本质上只是多了一次矩阵乘法) ,却能持续提升微调结果。
](https://deep-paper.org/en/paper/2406.11909/images/cover.png)