DoRA:权重分解的低秩适配方法 --- 论文翻译讲解
论文标题 : DoRA: Weight-Decomposed Low-Rank Adaptation
作者 : Shih-Yang Liu, Chien-Yi Wang, Hongxu Yin, Pavlo Molchanov, Yu-Chiang Frank Wang, Kwang-Ting Cheng, Min-Hung Chen
机构 : NVIDIA, HKUST
发表 : ICML 2024 (Oral)
arXiv : 2402.09353
目录
- 论文速览
- 背景与动机
- [核心发现:LoRA 与 FT 的学习模式差异](#核心发现:LoRA 与 FT 的学习模式差异)
- [DoRA 方法详解](#DoRA 方法详解)
- 实验结果
- 更广泛的影响
- 核心结论与个人解读
1. 论文速览
LoRA 是当前最流行的参数高效微调(PEFT)方法之一,但它与全量微调(FT)之间始终存在精度差距。以往研究通常将这一差距简单归因于"可训练参数太少",而 DoRA 的作者们提出了一个更深层的问题:LoRA 和 FT 在权重的学习模式上是否本质不同?
通过将权重矩阵分解为**大小(magnitude)和方向(direction)**两个组件,作者发现了一个关键现象:
- LoRA 倾向于同比例地改变方向和大小(正相关,斜率为正)
- FT 则表现出负相关模式------当方向变化大时大小变化小,反之亦然
基于这一发现,DoRA 将预训练权重分解为大小和方向两部分分别微调,其中方向部分用 LoRA 高效更新。实验表明,DoRA 在几乎所有任务上稳定超越 LoRA,且不引入任何额外推理开销。

图 1: DoRA 将预训练权重分解为大小(Magnitude)和方向(Direction)两个组件。方向组件通过 LoRA 进行高效更新,大小组件作为可训练向量单独优化。训练完成后,两部分可合并回预训练权重,不增加推理延迟。
2. 背景与动机
2.1 PEFT 方法概览
参数高效微调(PEFT)方法旨在用极少量参数适配大模型到下游任务,主要分为三类:
| 类别 | 代表方法 | 核心思路 | 推理开销 |
|---|---|---|---|
| Adapter 类 | Houlsby et al. (2019), He et al. (2021) | 在冻结的主干网络中插入额外可训练模块 | 有额外延迟 |
| Prompt 类 | Lester et al. (2021) | 在输入中添加可训练的软令牌 | 有额外延迟 |
| LoRA 类 | LoRA, VeRA 等 | 用低秩矩阵近似权重变化,可合并回原始权重 | 无额外延迟 |
LoRA 类方法的最大优势在于:训练完成后,低秩更新可以合并到预训练权重中,推理时与原始模型完全一致。然而,LoRA 与 FT 之间的精度差距始终存在。
2.2 LoRA 回顾
对于预训练权重矩阵 W 0 ∈ R d × k W_0 \in \mathbb{R}^{d \times k} W0∈Rd×k,LoRA 将权重更新建模为低秩分解:
W ′ = W 0 + Δ W = W 0 + B A W' = W_0 + \Delta W = W_0 + BA W′=W0+ΔW=W0+BA
其中 B ∈ R d × r B \in \mathbb{R}^{d \times r} B∈Rd×r、 A ∈ R r × k A \in \mathbb{R}^{r \times k} A∈Rr×k, r ≪ min ( d , k ) r \ll \min(d, k) r≪min(d,k)。 A A A 用 Kaiming 均匀分布初始化, B B B 初始化为零,保证训练开始时 Δ W = 0 \Delta W = 0 ΔW=0。
LoRA 的原始论文指出:随着秩 r r r 增大,LoRA 可以逐渐逼近 FT 的表达能力。因此,以往研究普遍将精度差距归因于"参数数量不足"。但作者认为,这背后可能有更深层的结构性原因。
3. 核心发现:LoRA 与 FT 的学习模式差异
3.1 权重分解分析框架
受权重归一化(Weight Normalization)启发,作者将权重矩阵 W ∈ R d × k W \in \mathbb{R}^{d \times k} W∈Rd×k 分解为大小和方向两个组件:
W = m V ∥ V ∥ c W = m \frac{V}{\|V\|_c} W=m∥V∥cV
其中:
- m ∈ R 1 × k m \in \mathbb{R}^{1 \times k} m∈R1×k 是大小向量(每列一个标量)
- V ∈ R d × k V \in \mathbb{R}^{d \times k} V∈Rd×k 是方向矩阵
- ∥ ⋅ ∥ c \|\cdot\|_c ∥⋅∥c 表示按列计算的向量范数,使得 V / ∥ V ∥ c V/\|V\|_c V/∥V∥c 的每一列都是单位向量
3.2 分析方法
作者以 VL-BART 在四个图像-文本任务上的微调为案例,分别对预训练权重 W 0 W_0 W0、全量微调权重 W F T W_{FT} WFT 和 LoRA 合并权重 W L o R A W_{LoRA} WLoRA 做权重分解,计算大小差异和方向差异:
Δ M t = ∑ n = 1 k ∣ m n t − m n 0 ∣ k , Δ D t = ∑ n = 1 k ( 1 − cos ( V n t , W n 0 ) ) k \Delta M^t = \frac{\sum_{n=1}^{k} |m^{t}n - m^0_n|}{k}, \quad \Delta D^t = \frac{\sum{n=1}^{k} (1 - \cos(V^{t}_n, W^0_n))}{k} ΔMt=k∑n=1k∣mnt−mn0∣,ΔDt=k∑n=1k(1−cos(Vnt,Wn0))
每个 ( Δ D t , Δ M t ) (\Delta D^t, \Delta M^t) (ΔDt,ΔMt) 对应不同层和不同训练步数的查询权重矩阵,绘制散点图。
3.3 关键发现

图 2: FT(左)、LoRA(中)、DoRA(右)在查询权重矩阵上的大小与方向更新散点图。不同标记代表不同训练步数,不同颜色代表不同层。
从图 2 中可以观察到截然不同的学习模式:
- FT(图 a) : 呈现负斜率 趋势------方向变化大时大小变化小,反之亦然。相关系数为 -0.62。
- LoRA(图 b) : 呈现明显的正斜率 趋势------方向和大小同比例增减。相关系数为 +0.83。
- DoRA(图 c) : 呈现与 FT 类似的负斜率 趋势。相关系数为 -0.31。
为什么 FT 和 DoRA 呈现负相关? 作者的解释是:预训练权重已经蕴含了大量适用于下游任务的知识。当模型有足够的学习能力时,只需要在大小或方向某一个维度上做较大调整就足以完成适配,不需要两者同时大幅变化。而 LoRA 试图同时学习大小和方向的调整,这对它来说过于复杂,导致它只能"一刀切"地同比例调整。
4. DoRA 方法详解
4.1 核心思想
DoRA 的设计直觉有两方面:
- 分而治之:将 LoRA 的任务从"同时学习大小和方向调整"简化为"仅学习方向调整",同时让大小组件作为独立可训练参数自由优化。这降低了 LoRA 的学习难度。
- 优化稳定性:权重分解本身有助于改善梯度条件,使方向更新更加稳定。
与权重归一化的关键区别在于:权重归一化从零开始训练两个组件,对初始化敏感;而 DoRA 的两个组件都从预训练权重初始化,不存在初始化问题。
4.2 数学公式
初始化时, m = ∥ W 0 ∥ c m = \|W_0\|_c m=∥W0∥c, V = W 0 V = W_0 V=W0。训练时 V V V 冻结, m m m 可训练,方向更新通过 LoRA 进行:
W ′ = m V + Δ V ∥ V + Δ V ∥ c = m W 0 + B A ∥ W 0 + B A ∥ c W' = m \frac{V + \Delta V}{\|V + \Delta V\|_c} = m \frac{W_0 + BA}{\|W_0 + BA\|_c} W′=m∥V+ΔV∥cV+ΔV=m∥W0+BA∥cW0+BA
其中 Δ V = B A \Delta V = BA ΔV=BA 是 LoRA 学习的低秩增量。 B B B 和 A A A 的初始化策略与 LoRA 一致,保证训练开始时 W ′ = W 0 W' = W_0 W′=W0。
训练完成后, m m m 和 V + Δ V V + \Delta V V+ΔV 可以合并回预训练权重,不引入任何推理开销。
4.3 梯度分析
DoRA 对大小 m m m 和方向 V ′ = V + Δ V V' = V + \Delta V V′=V+ΔV 的梯度为:
∇ V ′ L = m ∥ V ′ ∥ c ( I − V ′ V ′ T ∥ V ′ ∥ c 2 ) ∇ W ′ L \nabla_{V'} L = \frac{m}{\|V'\|_c} \left( I - \frac{V' V'^T}{\|V'\|c^2} \right) \nabla{W'} L ∇V′L=∥V′∥cm(I−∥V′∥c2V′V′T)∇W′L
∇ m L = ∇ W ′ L ⋅ V ′ ∥ V ′ ∥ c \nabla_m L = \nabla_{W'} L \cdot \frac{V'}{\|V'\|_c} ∇mL=∇W′L⋅∥V′∥cV′
公式 (6) 表明,权重梯度 ∇ W ′ L \nabla_{W'} L ∇W′L 被缩放因子 m / ∥ V ′ ∥ c m/\|V'\|_c m/∥V′∥c 缩放,并被投影到远离当前权重的方向。这两个效应使梯度协方差矩阵更接近单位矩阵,有利于优化。
负斜率模式的梯度推导 :作者通过两个假想更新场景 S 1 S_1 S1(小方向更新)和 S 2 S_2 S2(大方向更新),在 ∥ Δ w S 1 ∥ = ∥ Δ w S 2 ∥ \|\Delta w_{S_1}\| = \|\Delta w_{S_2}\| ∥ΔwS1∥=∥ΔwS2∥ 的条件下,证明了:
∣ ∇ m ∗ S 1 L ∣ > ∣ ∇ m ∗ S 2 L ∣ |\nabla_{m^*}^{S_1} L| > |\nabla_{m^*}^{S_2} L| ∣∇m∗S1L∣>∣∇m∗S2L∣
即:方向变化较小时,大小的梯度更大(大小更新更多);方向变化较大时,大小的梯度更小(大小更新更少)。这从梯度角度解释了 DoRA 为何呈现与 FT 类似的负相关模式。
4.4 训练开销优化
DoRA 将低秩适配引导到方向组件上,导致 V ′ V' V′ 的梯度与 W ′ W' W′ 的梯度不同,需要在反向传播中保存额外中间状态。为解决此问题,作者提出将 ∥ V + Δ V ∥ c \|V + \Delta V\|_c ∥V+ΔV∥c 视为常数(从梯度图中 detach):
∇ V ′ L = m C ∇ W ′ L , 其中 C = ∥ V ′ ∥ c \nabla_{V'} L = \frac{m}{C} \nabla_{W'} L, \quad \text{其中 } C = \|V'\|_c ∇V′L=Cm∇W′L,其中 C=∥V′∥c
这一修改使得:
- 训练显存减少约 24.4% (LLaMA 微调)和 12.4%(VL-BART 微调)
- 精度几乎不受影响:VL-BART 上无变化,LLaMA 上仅差 0.2
5. 实验结果
DoRA 在多个领域和多个模型架构上进行了全面验证,涵盖 NLP、视觉-语言和图像生成任务。
5.1 常识推理(LLaMA 系列)

Table 1: LLaMA-7B/13B、LLaMA2-7B、LLaMA3-8B 在 8 个常识推理数据集上的精度对比。DoRA† 表示将 DoRA 的秩减半后的配置。
核心数据(8 任务平均精度):
| 模型 | LoRA | DoRA | 提升 | DoRA† (秩减半) | 提升 vs LoRA |
|---|---|---|---|---|---|
| LLaMA-7B | 74.7 | 78.4 | +3.7 | 77.5 | +2.8 |
| LLaMA-13B | 80.5 | 81.5 | +1.0 | 80.8 | +0.3 |
| LLaMA2-7B | 77.6 | 79.7 | +2.1 | 80.5 | +2.9 |
| LLaMA3-8B | 80.8 | 85.2 | +4.4 | 85.0 | +4.2 |
关键发现:
- DoRA 在所有模型上稳定超越 LoRA,LLaMA-7B 上甚至超过了 ChatGPT(78.4 vs 77.0)
- DoRA†(秩减半) 仅用 LoRA 一半的可训练参数,仍然在所有模型上超越 LoRA,说明 DoRA 显著提升了 LoRA 的学习能力
- Figure 3 的可视化进一步证实:DoRA 微调后的权重在大小和方向上都比 LoRA 更接近预训练权重,说明好的微调不需要剧烈的权重变化
5.2 图像/视频-文本理解(VL-BART)

Table 2 & 3: VL-BART 在图像-文本和视频-文本任务上的多任务评估结果。
图像-文本任务(VQAv2, GQA, NLVR2, MSCOCO Caption):
| 方法 | 参数占比 (%) | 平均精度 |
|---|---|---|
| FT | 100 | 77.3 |
| LoRA | 5.93 | 76.5 |
| DoRA | 5.96 | 77.4 |
视频-文本任务(TVQA, How2QA, TVC, YC2C):
| 方法 | 参数占比 (%) | 平均精度 |
|---|---|---|
| FT | 100 | 87.5 |
| LoRA | 5.17 | 83.5 |
| DoRA | 5.19 | 85.4 |
DoRA 在图像-文本任务上提升 +0.9(达到 FT 水平),在视频-文本任务上提升 +1.9。
5.3 视觉指令微调(LLaVA-1.5-7B)
Table 4: LLaVA-1.5-7B 在 7 个视觉-语言基准上的平均精度。
| 方法 | 参数占比 (%) | 平均精度 |
|---|---|---|
| FT | 100 | 66.5 |
| LoRA | 4.61 | 66.9 |
| DoRA | 4.63 | 67.6 |
值得注意的是,此处 LoRA 已经超过 FT(可能 FT 出现了过拟合),但 DoRA 仍然在 LoRA 基础上提升了 +0.7,比 FT 提升 +1.1。
5.4 与其他 LoRA 变体的兼容性

Table 5: LLaMA-7B/LLaMA2-7B 在 MT-Bench 上的 GPT-4 评分。
DoRA 的方向更新 Δ V \Delta V ΔV 可以替换为任何 LoRA 变体。作者选择 VeRA 作为案例,组合命名为 DVeRA:
| 模型 | 方法 | 参数占比 (%) | MT-Bench 评分 |
|---|---|---|---|
| LLaMA-7B | LoRA | 2.31 | 5.1 |
| LLaMA-7B | DoRA | 2.33 | 5.5 |
| LLaMA-7B | VeRA | 0.02 | 4.3 |
| LLaMA-7B | DVeRA | 0.04 | 5.0 |
| LLaMA2-7B | LoRA | 2.31 | 5.7 |
| LLaMA2-7B | DoRA | 2.33 | 6.0 |
| LLaMA2-7B | VeRA | 0.02 | 5.5 |
| LLaMA2-7B | DVeRA | 0.04 | 6.0 |
DVeRA 仅用 LoRA 约 1/60 的参数,就在 LLaMA2-7B 上达到了与 LoRA 相同的 6.0 分。Figure 4 进一步展示了在不同训练样本量(1000~10000)下,DoRA/DVeRA 始终优于 LoRA/VeRA。
5.5 不同秩设置下的鲁棒性
Figure 5 展示了在秩 r ∈ { 4 , 8 , 16 , 32 , 64 } r \in \{4, 8, 16, 32, 64\} r∈{4,8,16,32,64} 范围内 DoRA 与 LoRA 的对比:
- DoRA 在所有秩设置下都稳定优于 LoRA
- 低秩时差距尤为显著: r = 8 r=8 r=8 时 DoRA 比 LoRA 高 37.2% , r = 4 r=4 r=4 时高 22.4%
- LoRA 在 r = 8 r=8 r=8 时平均精度骤降至 40.74%, r = 4 r=4 r=4 时仅 39.49%;而 DoRA 在 r = 8 r=8 r=8 时仍保持 77.96%, r = 4 r=4 r=4 时为 61.89%
5.6 微调粒度分析

Table 6: LLaMA-7B/13B 上不同微调粒度的 DoRA。m 和 V 分别表示更新大小和方向的模块。
| 模型 | 配置 | 参数占比 (%) | 平均精度 |
|---|---|---|---|
| LLaMA-7B | LoRA (QKVUD 全更新) | 0.83 | 74.7 |
| LLaMA-7B | DoRA (QKVUD 全更新) | 0.84 | 78.1 |
| LLaMA-7B | DoRA (QKV 方向 + 全部大小) | 0.39 | 77.5 |
| LLaMA-13B | LoRA (QKVUD 全更新) | 0.67 | 80.5 |
| LLaMA-13B | DoRA (QKVUD 全更新) | 0.68 | 81.5 |
| LLaMA-13B | DoRA (QKV 方向 + 全部大小) | 0.31 | 81.3 |
仅更新 QKV 的方向分量 + 所有模块的大小分量,参数量不到 LoRA 的一半,仍然在 LLaMA-7B 上超出 LoRA +2.8,LLaMA-13B 上超出 +0.8。这说明大小分量的调整非常重要,而方向调整可以集中在注意力层。
5.7 附录补充:权重差异可视化

Figure 8: LLaMA2-7B 上 Q/K/V 权重矩阵的逐层大小差异(ΔM)和方向差异(ΔD)。灰色为 LoRA,绿色为 DoRA。
在所有层和所有矩阵类型中,DoRA 的权重变化(绿色线)都显著小于 LoRA(灰色线),特别是在前几层差距最为明显。这进一步验证了核心假设:强大的基础模型不需要剧烈的权重变化就能有效适配下游任务。
6. 更广泛的影响
6.1 QDoRA:增强 QLoRA
QLoRA 通过将预训练模型量化为 4-bit 来降低显存需求。既然 DoRA 缩小了 LoRA 与 FT 的差距,自然可以探索 DoRA 能否在 QLoRA 框架中同样提升精度。
Answer.AI 团队将 QLoRA 中的 LoRA 组件替换为 DoRA,命名为 QDoRA,并结合 FSDP(Fully Sharded Data Parallel)实现多 GPU 并行训练。在 Orca-Math 数据集上的实验结果:
| 模型 | Zero-shot | Five-shot | FT | QLoRA | QDoRA |
|---|---|---|---|---|---|
| LLaMA2-7B | 0.07 | 0.08 | 0.26 | 0.19 | 0.26 |
| LLaMA3-8B | 0.23 | 0.27 | 0.56 | 0.32 | 0.56 (精确匹配 0.12 → 略超 FT) |
QDoRA 不仅大幅超越 QLoRA,甚至略微超过了全量微调,同时使用远少于 FT 的显存。这意味着在消费级 GPU 上微调大语言模型变得更加可行。
7. 核心结论与个人解读
7.1 论文核心贡献
-
全新分析视角:首次通过权重分解揭示 LoRA 与 FT 的学习模式存在本质差异------LoRA 呈正相关,FT 呈负相关。这不是简单的"参数不够"问题,而是学习模式的结构性缺陷。
-
简洁有效的方法:DoRA 的核心改动极其轻量------在 LoRA 基础上增加一个可训练的大小向量,将 LoRA 的更新引导到方向维度。训练后可合并,零推理开销。
-
全面的实验验证:覆盖 NLP(常识推理、指令微调)、视觉-语言(图像/视频-文本理解、视觉指令微调)、图像生成(SDXL)三大领域,在 LLaMA/LLaMA2/LLaMA3、VL-BART、LLaVA 等多个模型上稳定有效。
-
广泛的兼容性:DoRA 可以与 VeRA 等其他 LoRA 变体组合(DVeRA),也可以与 QLoRA 结合(QDoRA),在各自基础上进一步提升。
7.2 个人解读
为什么权重分解如此有效?
核心洞察在于:LoRA 用 B A BA BA 直接更新权重时,大小和方向的变化是耦合的------矩阵加法天然地同时改变两者。而 FT 作为全量更新,可以自由地调整任一维度。DoRA 通过显式分离大小和方向,赋予了 LoRA 类似的细粒度调整能力。
负相关模式的深层含义
FT 和 DoRA 的负相关模式揭示了一个重要原则:好的微调应该是"精准手术"而非"大刀阔斧"。预训练模型已经拥有丰富的知识,微调时只需在关键维度上做精确调整。LoRA 的正相关模式意味着它总是在"同时调大小和方向",缺乏针对性------这正解释了为何 LoRA 需要更大的权重变化却获得更差的效果(Figure 3 和 Figure 8 的可视化均支持这一点)。
实践建议
- DoRA 可以作为 LoRA 的直接替代品,几乎不增加参数量和训练成本,但带来稳定的精度提升
- 在低秩场景(如 r = 4 r=4 r=4 或 r = 8 r=8 r=8)下,DoRA 的优势尤为显著,适合对参数量有严格约束的场景
- 如果显存极为紧张,可以考虑 DoRA†(秩减半),用更少参数仍超越标准 LoRA
- DoRA 已被集成到 HuggingFace PEFT 库中,使用门槛很低
局限性思考
论文在梯度分析部分的理论推导做了一定简化假设(如 ∥ Δ w S 1 ∥ = ∥ Δ w S 2 ∥ \|\Delta w_{S_1}\| = \|\Delta w_{S_2}\| ∥ΔwS1∥=∥ΔwS2∥),这在实际训练中不一定严格成立。此外,虽然实验覆盖面广,但主要聚焦在 Transformer 架构,对其他架构(如 CNN、RNN)的有效性尚待验证。作者在结论中也提到,未来计划探索 DoRA 在音频等非语言/视觉领域的泛化能力。
本文档基于 arXiv:2402.09353 (v6, 2024-07-09) 撰写,所有数据均来自论文原文。