(ICML-2024)DoRA:权重分解低秩自适应

DoRA:权重分解低秩自适应

Paper是英伟达发表在ICML 2024的工作

Paper Title:DoRA: Weight-Decomposed Low-Rank Adaptation

Code: 地址

Abstract

在广泛使用的参数高效微调 (PEFT) 方法中,LoRA 及其变体因避免了额外的推理成本而获得了相当大的普及。然而,这些方法与完全微调 (FT) 之间仍然存在准确性差距。在这项工作中,我们首先引入了一种新颖的权重分解分析来研究 FT 和 LoRA 之间的内在差异。为了从研究结果中模仿 FT 的学习能力,我们提出了权重分解低秩自适应 (DoRA)。DoRA 将预训练的权重分解为两个部分,即幅度和方向,以进行微调,特别是使用 LoRA 进行方向更新,以有效地最小化可训练参数的数量。通过使用 DoRA,我们提高了 LoRA 的学习能力和训练稳定性,同时避免了任何额外的推理开销。在各种下游任务(例如常识推理、视觉指令调整和图像/视频文本理解)上,DoRA 在微调 LLaMA、LLaVA 和 VL-BART 方面始终优于 LoRA。

1. Introduction

使用大量通用领域数据集进行预训练的模型已展示出卓越的泛化能力,极大地惠及了从自然语言处理 (NLP) 任务(Qin et al, 2023;Taori et al, 2023)到多模态任务(Li et al, 2022;Liu et al, 2023a)等各种应用。为了使这些通用模型适合特定的下游任务,通常采用完全微调 (FT),即重新训练所有模型参数。然而,随着模型和数据集规模的扩大,微调整个模型的成本变得非常高。

为了解决这个问题,引入了参数高效微调 (PEFT) 方法 (Houlsby 等人,2019),仅使用最少的参数对预训练模型进行微调。其中,LoRA (Hu 等人,2022) 不改变模型架构,因其简单性和有效性而广受欢迎。尽管如此,LoRA 和 FT 之间仍然存在容量差距,这通常归因于可训练参数数量有限,而没有进一步探究其他潜在原因 (Hu 等人,2022;Kopiczko 等人,2024)。

借鉴权重归一化 (Salimans & Kingma, 2016),它通过使用权重重参数化来改善梯度的条件,从而实现更快的收敛,我们引入了一种新颖的权重分解分析,该分析首先将模型权重重参数化为幅度和方向分量,然后检查 LoRA 和 FT 引入的幅度和方向变化。 我们的分析表明,LoRA 和 FT 表现出明显不同的更新模式,这让我们推测这些变化反映了每种方法的学习能力。 受我们的研究结果启发,我们提出了权重分解低秩自适应 (DoRA),它首先将预训练的权重分解为其幅度和方向分量,然后对两者进行微调。鉴于方向分量在参数方面具有相当大的规模,我们利用 LoRA 进行方向自适应以实现有效的微调,如图 1 所示。此外,通过在经验和数学上表现出与 FT 相似的学习行为,表明其学习能力与 FT 非常相似,我们已经在从 NLP 到视觉语言的各种任务以及包括 LLM 和 LVLM 在内的各种主干上验证了 DoRA。实验结果表明,DoRA 的表现始终优于 LoRA,且不牺牲推理效率,例如常识推理(LLaMA-7B/13B 上为 +3.7/+1.0,LLaMA2-7B 上为 +2.9,LLaMA3-8B 上为 +4.4)、视觉指令调整(LLaVA-7B 上为 +0.6)和图像/视频文本理解(VL-BART 上为 +0.9/+1.9)。

图1

图1. 我们提出的 DoRA 方法的概览,其将预训练权重分解为幅值和方向两个部分进行微调,特别是通过 LoRA 高效地更新方向部分。注意, ∥ ⋅ ∥ c \|\cdot\|_c c 表示矩阵中每列向量的向量范数。

我们的贡献总结如下:

  • 我们引入了 DoRA,这是一种结合权重分解的新型 PEFT 方法,实现了与 FT 非常相似的学习能力,而没有比 LoRA 更多的推理延迟。
  • 我们引入了一种新颖的权重分解分析,以揭示 FT 和不同 PEFT 方法的学习模式的根本差异。
  • DoRA 在从 NLP 到视觉语言基准以及包括 LLM 和 LVLM 在内的各种主干上,在各种任务上都始终超越 LoRA。

2. Related Works

参数高效微调 (PEFT) 方法旨在降低微调大规模模型的高昂成本。它们通过训练相对于总参数数量相对较小的参数子集来适应下游任务来实现这一点。现有的 PEFT 方法可分为三类。第一类称为基于适配器的方法,其涉及将额外的可训练模块引入原始冻结的主干,例如 (Houlsby et al, 2019; He et al, 2021; Karimi Mahabadi et al, 2021; mahabadi et al, 2021)。例如,(Houlsby et al, 2019) 提出按顺序将线性模块添加到现有层,而 (He et al, 2021) 主张将这些模块与原始层并行集成以提高性能。第二类是基于提示的方法。这些方法在初始输入中添加了额外的软标记(提示),并专注于微调这些可训练向量,如 (Lester 等人,2021;Razdaibiedina 等人,2023;Wang 等人,2023) 等作品所示。然而,这些方法通常面临挑战,因为它们对初始化很敏感,影响了它们的整体效果。前两类,无论是改变模型的输入还是架构,都会导致与基线模型相比推理延迟增加。

LoRA (Hu et al, 2022) 及其变体属于 PEFT 的第三类,其显著特点是不增加任何额外的推理负担。这些方法在微调过程中应用低秩矩阵来近似权重变化,并可以在推理之前与预训练的权重合并。例如,(Zhang et al, 2023) 采用 SVD 分解并修剪不太重要的奇异值以实现更有效的更新。(Hyeon-Woo et al, 2022) 专注于联邦学习的低秩 Hadamard 积。(Qiu et al, 2023; Liu et al, 2023b) 利用正交分解来微调扩散模型。(Renduchintala et al, 2023) 使用权重绑定进一步减少可训练参数。(Yeh et al, 2023) 为稳定扩散引入了统一的 LoRA 系列框架。 (Ponti 等人,2022) 从具有路由功能的库存中选择不同的 LoRA 组合,用于不同的任务。 (Kopiczko 等人,2024) 实现可学习的缩放向量来调整跨层的共享冻结随机矩阵对。我们的研究也属于第三类,我们通过全面的实验验证了我们提出的方法以及 LoRA 及其变体的有效性。

3. Pattern Analysis of LoRA and FT

3.1. Low-Rank Adaptation (LoRA)


基于微调过程中更新具有低“内在秩”的假设,LoRA(Hu et al., 2022)提出使用两个低秩矩阵的乘积来增量更新预训练权重。对于一个预训练权重矩阵 W 0 ∈ R d × k W_0 \in \mathbb{R}^{d \times k} W0Rd×k,LoRA 利用低秩分解模型化权重更新 Δ W ∈ R d × k \Delta W \in \mathbb{R}^{d \times k} ΔWRd×k,表示为 B A B A BA,其中 B ∈ R d × r B \in \mathbb{R}^{d \times r} BRd×r A ∈ R r × k A \in \mathbb{R}^{r \times k} ARr×k 分别为两个低秩矩阵,且 r ≪ min ⁡ ( d , k ) r \ll \min (d, k) rmin(d,k)。因此,微调后的权重 W ′ W^{\prime} W 可以表示为:

W ′ = W 0 + Δ W = W 0 + B A ‾ W^{\prime}=W_0+\Delta W=W_0+\underline{B A} W=W0+ΔW=W0+BA

其中, W 0 W_0 W0 在微调过程中保持静态,而下划线部分的参数是需要训练的。矩阵 A A A 使用均匀 Kaiming 分布(He et al., 2015)进行初始化,而 B B B 初始值为零,这使得 Δ W = B A \Delta W=B A ΔW=BA 在训练开始时为零。值得注意的是,这种 Δ W \Delta W ΔW 的分解可以用其他 LoRA 变体替代,例如 VeRA(Kopiczko et al., 2024)。此外,根据公式 (1),在部署之前,我们可以将学习到的 Δ W \Delta W ΔW 与预训练权重 W 0 W_0 W0 合并,从而获得 W ′ W^{\prime} W。由于 W ′ W^{\prime} W W 0 W_0 W0 都在 R d × k \mathbb{R}^{d \times k} Rd×k 的维度内,LoRA 及其相关变体在推理时不会引入额外的延迟,与原始模型相比保持一致。

3.2. Weight Decomposition Analysis


LoRA(Hu 等人,2022 年)中提出的研究表明,LoRA 可以被视为完全微调的一般近似值。通过逐渐增加 LoRA 的等级 r 以与预训练权重的等级保持一致,LoRA 可以达到与 FT 类似的表现力水平。因此,许多先前的研究将 LoRA 和 FT 之间的准确性差异主要归因于可训练参数数量有限,通常无需进一步分析(Hu 等人,2022 年;Kopiczko 等人,2024 年)。从权重归一化(Salimans & Kingma,2016 年)中汲取灵感,将权重矩阵重参数化为幅度和方向以加速优化,我们引入了一种创新的权重分解分析。我们的分析将权重矩阵重构为两个独立的组成部分,即幅度和方向,以揭示 LoRA 和 FT 学习模式的内在差异。

分析方法:本分析通过考察 LoRA 和 FT(全微调)权重相对于预训练权重的幅值和方向变化,揭示两者学习行为的根本差异。权重矩阵 W ∈ R d × k W \in \mathbb{R}^{d \times k} WRd×k 的分解可以表示为:

W = m V ∥ V ∥ c = ∥ W ∥ c W ∥ W ∥ c W = m \frac{V}{\|V\|_c} = \|W\|_c \frac{W}{\|W\|_c} W=mVcV=WcWcW

其中, m ∈ R 1 × k m \in \mathbb{R}^{1 \times k} mR1×k 是幅值向量, V ∈ R d × k V \in \mathbb{R}^{d \times k} VRd×k 是方向矩阵, ∥ ⋅ ∥ c \|\cdot\|_c c 是矩阵按列计算的向量范数。此分解确保 V / ∥ V ∥ c V / \|V\|_c V/∥Vc 的每一列均为单位向量,对应的标量 m m m 定义了每个向量的幅值。

在我们的权重分解分析中,我们选取了在四个图像-文本任务上微调的 VLBART 模型(参见 Sung et al., 2022)作为案例研究。依据 (Sung et al., 2022) 的方法,仅对自注意力模块中的 query/value 权重矩阵应用 LoRA。我们使用公式 (2) 分解了预训练权重 W 0 W_0 W0、全微调权重 W F T W_{\mathrm{FT}} WFT 和 LoRA 合并权重 W LoRA W_{\text{LoRA}} WLoRA 的 query/value 权重矩阵。预训练权重 W 0 W_0 W0 与全微调权重 W F T W_{\mathrm{FT}} WFT 的幅值和方向变化定义如下:

Δ M F T t = ∑ n = 1 k ∣ m F T n , t − m 0 n ∣ k Δ D F T t = ∑ n = 1 k ( 1 − cos ⁡ ( V F T n , t , W 0 n ) ) k \begin{array}{r} \Delta M_{\mathrm{FT}}^t=\frac{\sum_{n=1}^k\left|m_{\mathrm{FT}}^{n, t}-m_0^n\right|}{k} \\ \Delta D_{\mathrm{FT}}^t=\frac{\sum_{n=1}^k\left(1-\cos \left(V_{\mathrm{FT}}^{n, t}, W_0^n\right)\right)}{k} \end{array} ΔMFTt=kn=1kmFTn,tm0nΔDFTt=kn=1k(1cos(VFTn,t,W0n))

其中, Δ M F T t \Delta M_{\mathrm{FT}}^t ΔMFTt Δ D F T t \Delta D_{\mathrm{FT}}^t ΔDFTt 分别表示在训练步骤 t t t W 0 W_0 W0 W F T W_{\mathrm{FT}} WFT 之间的幅值差异和方向差异, cos ⁡ ( ⋅ , ⋅ ) \cos (\cdot, \cdot) cos(,) 为余弦相似度函数。 M F T n , t M_{\mathrm{FT}}^{n, t} MFTn,t M 0 n M_0^n M0n 分别为幅值向量中第 n n n 个标量, V F T n , t V_{\mathrm{FT}}^{n, t} VFTn,t W 0 n W_0^n W0n 分别为 V F T t V_{\mathrm{FT}}^t VFTt W 0 W_0 W0 中的第 n n n 列。

类似地, W LoRA W_{\text{LoRA}} WLoRA W 0 W_0 W0 的幅值和方向差异通过公式 (3) 和公式 (4) 计算。我们从四个不同的训练步骤中选取检查点,包括三个中间步骤和最终检查点(FT 和 LoRA 均包含),并对这些检查点的权重进行分解分析,以确定不同层中的 Δ M \Delta M ΔM Δ D \Delta D ΔD

分析结果:图2 (a) 和 (b) 展示了 FT 和 LoRA 的 query 权重矩阵的变化,每个点表示来自不同层和训练步骤的 query 权重矩阵的 ( Δ D t , Δ M t ) \left(\Delta D^t, \Delta M^t\right) (ΔDt,ΔMt) 对。同样,附录中的图7显示了 value 权重矩阵的变化。可以观察到,LoRA 在所有中间步骤中表现出一致的正斜率趋势,这表明方向和幅值变化之间存在正比例关系。相比之下,FT 的学习模式更为多样,呈现出相对负斜率的趋势。这种 FT 和 LoRA 的差异可能反映了它们各自的学习能力。LoRA 倾向于成比例地增加或减少幅值和方向的更新,但缺乏进行更细致调整的能力。具体而言,LoRA 在执行较大的幅值变化同时伴随轻微的方向变化,或反之时表现不足,而这种能力更符合 FT 的特性。我们推测,LoRA 的这一局限可能源于同时学习幅值和方向调整的复杂性,这对于 LoRA 来说可能过于困难。因此,在本工作中,我们旨在提出一种 LoRA 的变体,其学习模式更接近 FT,同时提升 LoRA 的学习能力。

图2

图 2. 查询矩阵在不同层和中间步骤中的 (a) FT、(b) LoRA 和 © DoRA 的幅度和方向更新。不同的标记代表不同训练步骤的矩阵,不同的颜色代表每层的矩阵。

4. Method

4.1. Weight-Decomposed Low-Rank Adaptation


根据权重分解分析的结果,我们引入了权重分解低秩自适应 (DoRA)。DoRA 首先将预训练权重分解为幅度和方向分量,并对它们进行微调。由于方向分量的参数数量较大,我们进一步使用 LoRA 对其进行分解,以实现高效微调。

我们的直觉有两个方面。首先,我们认为,与原始方法相比,将 LoRA 限制为专注于方向适应,同时允许幅度分量可调,可以简化任务,而原始方法要求 LoRA 学习幅度和方向的调整。其次,通过权重分解,优化方向更新的过程变得更加稳定,我们将在第 4.2 节中更深入地探讨这一点。需要强调的是,DoRA 和权重归一化(Salimans & Kingma,2016)之间的主要区别在于它们的训练方法。权重归一化从头开始训练这两个组件,使该方法对不同的初始化敏感。相反,DoRA 避免了初始化问题,因为其两个组成部分都从预训练权重开始。我们按照公式 (2) 使用预训练权重 W 0 W_0 W0 初始化 DoRA,其中 m = ∥ W 0 ∥ c m=\left\|W_0\right\|_c m=W0c V = W 0 V=W_0 V=W0。初始化后,我们冻结 V V V 并将 m m m 设置为可训练向量。方向分量通过 LoRA 进行更新。DoRA 的公式可以类似于公式 (1) 表示为:

W ′ = m ‾ V + Δ V ∥ V + Δ V ∥ c = m ‾ W 0 + B A ‾ ∥ W 0 + B A ‾ ∥ c W^{\prime}=\underline{m} \frac{V+\Delta V}{\|V+\Delta V\|_c}=\underline{m} \frac{W_0+\underline{B A}}{\left\|W_0+\underline{B A}\right\|_c} W=mV+ΔVcV+ΔV=mW0+BAcW0+BA

其中, Δ V \Delta V ΔV 是通过两个低秩矩阵 B B B A A A 的乘积学习的方向增量更新,下划线参数表示可训练的参数。矩阵 B ∈ R d × r B \in \mathbb{R}^{d \times r} BRd×r A ∈ R r × k A \in \mathbb{R}^{r \times k} ARr×k 按照 LoRA 的策略初始化,以确保在微调前 W ′ W^{\prime} W 等于 W 0 W_0 W0。此外,DoRA 可以在推理之前与预训练权重合并,从而不引入任何额外的延迟。

4.2. Gradient Analysis of DoRA


在本节中,我们首先推导了 DoRA 的梯度,并说明我们提出的分解如何优化 Δ V \Delta V ΔV 的学习。随后,我们从梯度的角度分析了 DoRA 的学习模式,并解释其为何倾向于负斜率。

根据公式 (5),我们可以得到损失 L \mathcal{L} L m m m V ′ = V + Δ V V^{\prime}=V+\Delta V V=V+ΔV 的梯度为:

∇ V ′ L = m ∥ V ′ ∥ c ( I − V ′ V ′ T ∥ V ′ ∥ c 2 ) ∇ W ′ L ∇ m L = ∇ W ′ L ⋅ V ′ ∥ V ′ ∥ c \begin{aligned} \nabla_{V^{\prime}} \mathcal{L} & =\frac{m}{\left\|V^{\prime}\right\|_c}\left(I-\frac{V^{\prime} V^{\prime \mathbf{T}}}{\left\|V^{\prime}\right\|_c^2}\right) \nabla_{W^{\prime}} \mathcal{L} \\ \nabla_m \mathcal{L} & =\frac{\nabla_{W^{\prime}} \mathcal{L} \cdot V^{\prime}}{\left\|V^{\prime}\right\|_c} \end{aligned} VLmL=Vcm(IVc2VVT)WL=VcWLV

公式 (6) 显示,权重梯度 ∇ W ′ L \nabla_{W^{\prime}} \mathcal{L} WL 被缩放因子 m / ∥ V ′ ∥ c m /\left\|V^{\prime}\right\|_c m/Vc 调整,并从当前权重矩阵中投影出去。这两个效应共同作用,使得梯度的协方差矩阵更接近单位矩阵,这对于优化过程是有利的(Salimans & Kingma, 2016)。此外,鉴于 V ′ = V + Δ V V^{\prime}=V+\Delta V V=V+ΔV,梯度 ∇ V ′ L \nabla_{V^{\prime}} L VL 等价于 ∇ Δ V L \nabla_{\Delta V} L ΔVL。因此,由该分解带来的优化优势完全传递到 Δ V \Delta V ΔV 上,从而增强了 LoRA 的学习稳定性。

我们可以通过参考公式 (7) 更深入地理解 DoRA 的学习模式。在接下来的讨论中,我们使用小写字母表示向量形式的符号。考虑 w ′ ′ = w ′ + Δ w w^{\prime \prime}=w^{\prime}+\Delta w w′′=w+Δw 作为权重向量的更新,其中 Δ w ∝ ∇ w ′ L \Delta w \propto \nabla_{w^{\prime}} \mathcal{L} ΔwwL。在两个假设的更新场景 S 1 S 1 S1 S 2 S 2 S2 中, S 1 S 1 S1 涉及较小的方向更新( Δ D S 1 \Delta D_{S 1} ΔDS1),而 S 2 S 2 S2 涉及较大的方向更新( Δ D S 2 \Delta D_{S 2} ΔDS2)。假设 ∥ Δ w S 1 ∥ = ∥ Δ w S 2 ∥ \left\|\Delta w_{S 1}\right\|=\left\|\Delta w_{S 2}\right\| ΔwS1=ΔwS2,并且在时间 0,我们有 Δ v = 0 \Delta v=0 Δv=0 v ′ = v v^{\prime}=v v=v。由 Δ D S 1 < Δ D S 2 \Delta D_{S 1}<\Delta D_{S 2} ΔDS1<ΔDS2,可以得出 ∣ cos ⁡ ( Δ w S 1 , w ′ ) ∣ > ∣ cos ⁡ ( Δ w S 2 , w ′ ) ∣ \left|\cos \left(\Delta w_{S 1}, w^{\prime}\right)\right|>\left|\cos \left(\Delta w_{S 2}, w^{\prime}\right)\right| cos(ΔwS1,w)>cos(ΔwS2,w)

由于 Δ w ∝ ∇ w ′ L \Delta w \propto \nabla_{w^{\prime}} \mathcal{L} ΔwwL,因此可以推导出 ∣ cos ⁡ ( ∇ w ′ S 1 L , w ′ ) ∣ > ∣ cos ⁡ ( ∇ w ′ S 2 L , w ′ ) ∣ \left|\cos \left(\nabla_{w^{\prime}}^{S 1} \mathcal{L}, w^{\prime}\right)\right|>\left|\cos \left(\nabla_{w^{\prime}}^{S 2} \mathcal{L}, w^{\prime}\right)\right| cos(wS1L,w) > cos(wS2L,w) 。根据第 4.1 节,当 v v v 初始化为 v 0 v_0 v0 w ′ = w 0 w^{\prime}=w_0 w=w0 时,有 ∣ cos ⁡ ( ∇ w ′ L , w ′ ) ∣ = ∣ cos ⁡ ( ∇ w ′ L , v ′ ) ∣ = ∣ cos ⁡ ( ∇ w ′ L , v ) ∣ \left|\cos \left(\nabla_{w^{\prime}} \mathcal{L}, w^{\prime}\right)\right|=\left|\cos \left(\nabla_{w^{\prime}} \mathcal{L}, v^{\prime}\right)\right|=\left|\cos \left(\nabla_{w^{\prime}} \mathcal{L}, v\right)\right| cos(wL,w)=cos(wL,v)=cos(wL,v)

Δ v = 0 \Delta v=0 Δv=0 的情况下,使用余弦相似度公式可得:

cos ⁡ ( ∇ w ′ L , v ′ ) = cos ⁡ ( ∇ w ′ L , v ) = ∇ w ′ L ⋅ v ∥ ∇ w ′ L ∥ ∥ v ∥ \cos \left(\nabla_{w^{\prime}} \mathcal{L}, v^{\prime}\right)=\cos \left(\nabla_{w^{\prime}} \mathcal{L}, v\right)=\frac{\nabla_{w^{\prime}} \mathcal{L} \cdot v}{\left\|\nabla_{w^{\prime}} \mathcal{L}\right\|\|v\|} cos(wL,v)=cos(wL,v)=wLvwLv

m ∗ m_* m 为向量 w ′ w^{\prime} w 的幅值标量,则公式 (7) 关于 m ∗ m_* m 可以重写为:

∇ m ∗ L = ∇ w ′ L ⋅ v ′ ∥ v ′ ∥ = ∥ ∇ w ′ L ∥ ⋅ cos ⁡ ( ∇ w ′ L , v ) \nabla_{m_*} \mathcal{L}=\frac{\nabla_{w^{\prime}} \mathcal{L} \cdot v^{\prime}}{\left\|v^{\prime}\right\|}=\left\|\nabla_{w^{\prime}} \mathcal{L}\right\| \cdot \cos \left(\nabla_{w^{\prime}} \mathcal{L}, v\right) mL=vwLv=wLcos(wL,v)

由于在 S 1 S 1 S1 S 2 S 2 S2 中, ∥ Δ w S 1 ∥ = ∥ Δ w S 2 ∥ \left\|\Delta w_{S 1}\right\|=\left\|\Delta w_{S 2}\right\| ΔwS1=ΔwS2,并且 ∥ ∇ w ′ S 1 L ∥ = ∥ ∇ w ′ S 2 L ∥ \left\|\nabla_{w^{\prime}}^{S 1} \mathcal{L}\right\|=\left\|\nabla_{w^{\prime}}^{S 2} \mathcal{L}\right\| wS1L = wS2L ,因此:

∥ ∇ w ′ S 1 L ∥ ⋅ ∣ cos ⁡ ( ∇ w ′ S 1 L , v ) ∣ > ∥ ∇ w ′ S 2 L ∥ ⋅ ∣ cos ⁡ ( ∇ w ′ S 2 L , v ) ∣ \left\|\nabla_{w^{\prime}}^{S 1} \mathcal{L}\right\| \cdot\left|\cos \left(\nabla_{w^{\prime}}^{S 1} \mathcal{L}, v\right)\right|>\left\|\nabla_{w^{\prime}}^{S 2} \mathcal{L}\right\| \cdot\left|\cos \left(\nabla_{w^{\prime}}^{S 2} \mathcal{L}, v\right)\right| wS1L cos(wS1L,v) > wS2L cos(wS2L,v)

可以推导出 ∣ ∇ m ∗ S 1 L ∣ > ∣ ∇ m ∗ S 2 L ∣ \left|\nabla_{m_*}^{S 1} \mathcal{L}\right|>\left|\nabla_{m_*}^{S 2} \mathcal{L}\right| mS1L > mS2L ,这表明 S 1 S 1 S1 在幅值更新上大于 S 2 S 2 S2,而方向变化则小于 S 2 S 2 S2。我们通过图 2 © 的证据验证了这一结论。

因此,我们有效地证明了 DoRA 如何调整其学习模式,从而偏离 LoRA 的模式并更接近于 FT 的模式。

4.3. Reduction of Training Overhead


在公式 (1) 中, W ′ W^{\prime} W Δ W \Delta W ΔW 的梯度是相同的。然而,对于将低秩更新重定向至方向分量的 DoRA,其低秩更新的梯度与 W ′ W^{\prime} W 的梯度不同,如公式 (6) 所示。这种差异在反向传播过程中需要额外的内存。为了解决这一问题,我们建议将公式 (5) 中的 ∥ V + Δ V ∥ c \|V+\Delta V\|_c V+ΔVc 视为常数,从而将其从梯度图中分离。这意味着虽然 ∥ V + Δ V ∥ c \|V+\Delta V\|_c V+ΔVc 会动态反映 Δ V \Delta V ΔV 的更新,但在反向传播时不会接收梯度。经过这一修改后,相对于 m m m 的梯度保持不变,而 ∇ V ′ L \nabla_{V^{\prime}} \mathcal{L} VL 被重新定义为:

∇ V ′ L = m C ∇ W ′ L ,  其中  C = ∥ V ′ ∥ c \nabla_{V^{\prime}} \mathcal{L}=\frac{m}{C} \nabla_{W^{\prime}} \mathcal{L}, \text{ 其中 } C=\left\|V^{\prime}\right\|_c VL=CmWL, 其中 C=Vc

此方法显著减少了梯度图的内存消耗,而对准确率的影响可以忽略不计。我们对 LLaMA-7B 和 VLBART 的微调进行了消融实验,以评估所提修改的影响。结果表明,此修改在微调 LLaMA 时可减少约 24.4 % 24.4\% 24.4% 的训练内存,在 VLBART 上减少约 12.4 % 12.4\% 12.4% 的训练内存。此外,带有此修改的 DoRA 在 VLBART 上的准确率保持不变,而在 LLaMA 上的准确率仅比未修改的 DoRA 略低 0.2 0.2 0.2。有关训练内存使用和准确率差异的全面比较,请参见附录中的表 7。因此,所有后续的 DoRA 实验均采用了这一调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/933463.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

想在iPad上远程操作安卓手机的APP,怎样实现iPad远程控制安卓?

学生党或互联网行业的打工人&#xff0c;人手连三台电子设备也很常见&#xff0c;手机、平板还有笔记本电脑一大堆&#xff0c;如果出门要全带上&#xff0c;背包压力也变大。 有没有想过用远程控制功能&#xff0c;让iPad远程控制安卓手机&#xff1f;这样做&#xff0c;出门就…

【JavaEE】UDP、TCP的API介绍

目录 UDP数据报套接字编程 DatagramSocket API DatagramPacket API 回显C/S示例 TIPS TCP ServerSocket API Socket API 回显C/S示例 UDP数据报套接字编程 DatagramSocket API socket是操作系统中的一种概念&#xff0c;本质上是一种特殊的文件&#xff0c;socket属于…

【专题】2024年11月新能源汽车、智能汽车行业报告汇总PDF洞察(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p38520 随着科技的飞速发展与社会的持续变革&#xff0c;新能源汽车与智能汽车行业正步入全新的发展阶段&#xff0c;成为全球瞩目的焦点领域。本报告深入且全面地剖析了 2024 年 11 月该行业的多方面状况。从汽车消费市场来看&#…

mysql重置root密码(适用于5.7和8.0)

今天出一期重置mysql root密码的教程&#xff0c;适用于5.7和8.0&#xff0c;在网上搜索了很多的教程发现都没有效果&#xff0c;浪费了很多时间&#xff0c;尝试了多次之后发现这种方式是最稳妥的&#xff0c;那么废话不多说&#xff0c;往下看&#xff1a; 目录 第一步&…

AI智能体Prompt预设词指令大全+GPTs应用使用

AI智能体使用指南 直接复制在AI工具助手中使用&#xff08;提问前&#xff09; 可前往SparkAi系统用户官网进行直接使用 SparkAI系统介绍文档&#xff1a;Docs 常见AI智能体GPTs应用大全在线使用 自定义添加制作AI智能体进行使用&#xff1a; 文章润色器 你是一位具有敏锐洞察…

linux 系统常用指令

1、查看内核版本 uname -r 2、列出占用空间最大的 10 个文件或目录 du -ah / | sort -rh | head -n 10 终于找到我虚拟机硬盘空间越来越少的原因了&#xff0c;类目......

[C++]继承

继承 概念使用方法继承方式子类的构造与析构 继承的成员继承成员在子类对象里的存放顺序成员变量普通成员变量静态成员变量 成员函数普通成员函数重定义&#xff08;隐藏&#xff09; 静态成员函数友元函数 单继承与多继承概念赋值转换&#xff08;切片&#xff09;多继承带来的…

MetaGPT 安装

1. 创建环境 conda create -n metagpt python3.10 && conda activate metagpt2. 可编辑方式安装 git clone --depth 1 https://github.com/geekan/MetaGPT.git cd MetaGPT pip install -e .3. 配置 metagpt --init-config运行命令&#xff0c;在C盘位置C:\Users\325…

ros项目dual_arm_pick-place(urdf文件可视化查看)

前言 一直想写一些项目的讲解&#xff0c;今天&#xff08;2024.12.05&#xff09;可以说正式开始了。 dual_arm_pick-place项目&#xff0c;是关于两个机械臂协同传递物品。 正文 这次的话&#xff0c;给大家讲一下里面的urdf文件。 这篇文章主要来看一下项目中的urdf文件…

如何在 IntelliJ IDEA 中为 Spring Boot 应用实现热部署

文章目录 1. 引言2. 准备工作3. 添加必要的依赖4. 配置 IntelliJ IDEA4.1 启用自动编译4.2 开启热部署策略 5. 测试热部署6. 高级技巧7. 注意事项8. 总结 随着现代开发工具的进步&#xff0c;开发者们越来越重视提高生产力的特性。对于 Java 开发者来说&#xff0c;能够在不重启…

工业-实时数据采集

1.编写新的 Flume 配置文件,将数据备份到 HDFS 目录 /user/test/flumebackup 下,要求所有主题 的数据使用同一个 Flume配置文件完成。 1. 配置概览 Flume 的主要任务是从多个来源(如日志文件)读取数据,经过处理后通过接收器(Sink)存储到目标系统(如 HDFS)。在此配置…

springSecurity认证流程

Spring Security 是spring家族中的一个安全管理框架。相比于另一个安全框架Shiro&#xff0c;它提供更丰富的功能和社区资源&#xff0c;但也较难上手。所以一般大项目用spring Security&#xff0c;小项目用Shiro。 一般web应用需要认证和授权&#xff0c;这也是spring Secur…

LinuxUDP编程

由于UDP是无连接、尽力传输的&#xff0c;所以Server端绑定完IP、端口号后&#xff0c;使用recvfrom可以阻塞等待客户端的数据&#xff0c;而且Client端通过sendto发送的数据包直接发送到互联网&#xff08;也是基于IP、端口号&#xff09;这种操作是不担保Server端是否收到的&…

Nginx基本介绍及conf文件的作用

文章目录 前言一、Nginx基本介绍1.1 what is Nginx &#xff1f;1.2 Nginx中的三个概念1.3 nginx安装1.4 运行nginx 二、nginx配置文件conf2.1 conf文件组成部分2.1.1 全局块2.1.2 events块2.1.3 http块 三、其他概念3.1 nginx惊群3.2 负载均衡 总结 前言 本文将介绍nginx的基…

Docker打包SpringBoot项目

一、项目打成jar包 在进行docker打包之前&#xff0c;先确定一下&#xff0c;项目能够正常的打成JAR包&#xff0c;并且启动之后能够正常的访问。这一步看似是可有可无&#xff0c;但是能避免后期的一些无厘头问题。 二、Dockerfile 项目打包成功之后&#xff0c;需要编写Doc…

GitLab基础环境部署:Ubuntu 22.04.5系统在线安装GitLab 17.5.2实操手册

文章目录 GitLab基础环境部署&#xff1a;Ubuntu 22.04.5系统在线安装GitLab 17.5.2实操手册一、环境准备1.1 机器规划1.2 环境配置1.2.1 设置主机名1.2.2 停止和禁用防火墙1.2.3 更新系统 二、GitLab安装配置2.1 安装GitLab所需的依赖包2.2 添加GitLab存储库2.2.1 将GitLab存储…

【前端开发】HTML+CSS+JavaScript前端三剑客的基础知识体系了解

前言 &#x1f31f;&#x1f31f;本期讲解关于HTMLCSSJavaScript的基础知识&#xff0c;小编带领大家简单过一遍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 …

6. 一分钟读懂“抽象工厂模式”

6.1 模式介绍 书接上文&#xff0c;工厂方法模式只能搞定单一产品族&#xff0c;遇到需要生产多个产品族时就歇菜了。于是&#xff0c;在需求的“花式鞭策”下&#xff0c;程序员们再次绷紧脑细胞&#xff0c;创造出了更强大的抽象工厂模式&#xff0c;让工厂一次性打包多个产品…

数仓技术hive与oracle对比(五)

附录说明 附录是对测试过程中涉及到的一些操作进行记录和解析。 oracle清除缓存 alter system flush shared_pool; 将使library cache和data dictionary cache以前保存的sql执行计划全部清空&#xff0c;但不会清空共享sql区或者共享pl/sql区里面缓存的最近被执行的条目。刷…

CEEMDAN-CPO-VMD二次分解(CEEMDAN+冠豪猪优化算法CPO优化VMD)

CEEMDAN-CPO-VMD二次分解&#xff08;CEEMDAN冠豪猪优化算法CPO优化VMD&#xff09; 目录 CEEMDAN-CPO-VMD二次分解&#xff08;CEEMDAN冠豪猪优化算法CPO优化VMD&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 首先运用CEEMDAN对数据进行一次分解&#xff…