LORA 与全微调:等效假象

Paper是MIT发表在Arxiv 2024的工作

Paper Title:LORA VS FULL FINE-TUNING: AN ILLUSION OF EQUIVALENCE

ABSTRACT

微调是将预训练的大型语言模型适应下游任务的关键范例。最近,低秩自适应 (LoRA) 等方法已被证明可以在各种任务上与完全微调模型的性能相匹配,同时可训练参数的数量大大减少。即使在两种方法都学习到类似准确模型的环境中,它们学到的解决方案真的等价吗?我们通过分析模型的权重矩阵的谱特性,研究不同的微调方法如何改变预训练模型。我们发现,完全微调和 LoRA 产生的权重矩阵的奇异值分解表现出非常不同的结构;此外,在自适应任务分布之外进行测试时,微调模型本身表现出不同的泛化行为。更具体地说,我们首先表明,用 LoRA 训练的权重矩阵具有新的高秩奇异向量,我们将其称为入侵者维度。入侵者维度在完全微调期间不会出现。其次,我们表明,尽管具有入侵者维度的 LoRA 模型在目标任务上实现了与完全微调相似的性能,但会成为预训练分布的较差模型,并且对连续多个任务的适应性较差。即使在相同任务上的表现与低秩 LoRA 模型相当,较高等级、等级稳定的 LoRA 模型也与完全微调非常相似。这些结果表明,使用 LoRA 和完全微调更新的模型访问参数空间的不同部分,即使它们在微调分布上的表现相同。最后,我们研究了入侵者维度出现在 LoRA 微调模型中的原因、它们为什么不受欢迎以及如何将其影响降至最低。

1 INTRODUCTION

图1

图 1:完全微调和 LoRA 之间的频谱差异。权重矩阵的微调前后奇异向量的相似性矩阵,用于表征微调时引入的频谱差异,这是在 Magicoder 上微调的 LLaMA-2 的代表性示例。完全微调保留了大部分预训练结构;LoRA 中的对角线偏移对应于入侵者维度的引入。颜色显示余弦相似性。

通过微调将大型预训练模型适应下游任务是一种计算和数据效率高的方法,可用于为各种任务创建特定领域的模型。最简单的方法是根据下游任务数据对预训练模型的所有参数进行微调(Devlin 等人,2019 年;Ouyang 等人,2022 年)。然而,随着预训练模型变得越来越大,全面微调变得越来越具有挑战性和成本。最近,参数高效微调 (PEFT) 方法,尤其是低秩自适应 (LoRA;Hu 等人,2021 年),已被证明仅使用可训练参数的一小部分即可进行微调。但即使使用 LoRA 进行微调的性能与全面微调相当,这两种方法学到的解决方案真的等同吗?

虽然完全微调将每个参数视为可训练的,但 LoRA 将学习到的权重矩阵更新视为两个低秩矩阵的乘积(Hu 等人,2021 年;Dettmers 等人,2023 年)。虽然这种参数化在经验上是有效的,但它与完全微调性能相匹配的机制的原则性解释仍然难以捉摸。内在维度假设提供了一种解释(Li 等人,2018 年;Aghajanyan 等人,2021 年),该假设认为通过微调学习到的更新具有内在的低内在秩,这表明 LoRA 可能会恢复与完全微调大致相当的解决方案。然而,先前的研究观察到 LoRA 和完全微调在独立改变神经元转换其输入的角度和幅度的能力方面存在差异(Liu 等人,2024 年)。此外,其他研究也发现,LoRA 在代码生成(Biderman 等人,2024 年;Zhuo 等人,2024 年)和长文本生成(Ivison 等人,2023 年)等更复杂的任务上难以达到完全微调的性能。因此,尚不清楚这些发现是否表明 LoRA 适应特定下游任务的能力有限,或者这些方法是否学习了本质上不同的解决方案。

在本文中,我们展示了完全微调和 LoRA 学习到的不同解决方案,这些解决方案的谱特性具有特征差异(如图 1 所示),并且在目标任务分布之外具有不同的泛化行为。我们观察到:

  1. LoRA 和完全微调会产生结构上不同的参数更新,其特点是存在入侵者维度。这些是奇异向量,具有较大的相关奇异值,与预训练权重矩阵中的奇异向量大致正交。 相比之下,完全微调模型在谱上与预训练模型保持相似,并且不包含入侵者维度。

  2. 从行为上看,与完全微调相比,具有入侵者维度的 LoRA 微调模型会忘记更多的预训练分布,并且表现出较差的稳健持续学习能力:具有入侵者维度的 LoRA 微调模型在适应任务分布之外的表现不如完全微调模型,尽管分布准确度相当。但是,具有相同适应任务性能的较高等级 LoRA 微调模型在这些指标上更接近完全微调模型。非常高等级的 LoRA 模型(例如全等级 LoRA)也会忘记更多的预训练分布 — 突显出 LoRA 不能免于表达能力和泛化之间的一般权衡。

  3. 即使低秩 LoRA 在目标任务上表现良好,更高秩的参数化可能仍然是更好的选择。虽然我们观察到我们的低秩 LoRA(r ≤ 8)适合我们的下游任务分布以及完全微调和高秩 LoRA,但使用高秩(r = 64)会导致模型表现出更好的泛化能力和强大的适应性。然而,为了利用更高的等级,LoRA 更新模型必须是等级稳定的(Kalajdzievski,2023 年)。

2 BACKGROUND & RELATED WORK

微调方法。预训练语言模型为下游应用提供了基础,无需从头开始训练(Ouyang 等人,2022;Devlin 等人,2019)。完全微调,即更新预训练模型的每个参数,已用于自适应(Devlin 等人,2019;Liu 等人,2019)。低秩自适应(LoRA;Hu 等人,2021)将权重的更新表示为两个低秩矩阵的乘积,与完全微调相比,它减少了计算和内存要求。过去的研究表明,LoRA 在序列分类(Hu 等人,2021)、指令调整(Dettmers 等人,2023;Ghosh 等人,2024)和聊天(Dettmers 等人,2023)等任务上的性能与完全微调相当。其他研究表明,在代码生成等更复杂的任务上,完全微调和 LoRA 的性能存在差距(Biderman 等人,2024 年;Zhuo 等人,2024 年)。虽然我们关注的是训练到相似准确度的模型,但我们对结构差异的观察甚至适用于 LoRA 不适合适应任务以及完全微调的情况。

LoRA的形式化定义 给定一个预训练的权重矩阵 W0∈Rm×nW_0 \in \mathbb{R}^{m \times n}W0Rm×n,完全微调将学习的矩阵更新视为 ΔW∈Rm×n\Delta W \in \mathbb{R}^{m \times n}ΔWRm×n。相反,LoRA 将 ΔW\Delta WΔW 分解为两个矩阵的乘积:
ΔW=BA \Delta W = B A ΔW=BA
其中,B∈Rm×rB \in \mathbb{R}^{m \times r}BRm×rA∈Rr×nA \in \mathbb{R}^{r \times n}ARr×n,且秩 rrr 通常满足 r≪min⁡(m,n)r \ll \min (m, n)rmin(m,n)。在预测过程中:
Y=Wtuned X=(W0+αrBA)X Y = W_{\text {tuned }} X = \left(W_0 + \frac{\alpha}{r} B A\right) X Y=Wtuned X=(W0+rαBA)X

  • BBB 初始化为全零矩阵。
  • AAA 从各向同性的高斯分布中采样。
  • BBBAAA 中的所有参数在训练过程中可学习。

从上述公式可以看出,与完全微调的每个权重矩阵拥有 m⋅nm \cdot nmn 个可训练参数不同,LoRA 仅有 m⋅r+r⋅nm \cdot r + r \cdot nmr+rn 个可训练参数。关于梯度的推导,请参阅附录 D。

LoRA 变体。LoRA 存在许多变体。方法通过使用底层权重矩阵的主成分进行初始化 (Meng et al, 2024)、使用量化进行训练 (Dettmers et al, 2023)、自适应地分配不同的等级 (Zhang et al, 2023) 或顺序训练多个 LoRA (Xia et al, 2024) 来提高 LoRA 的性能或内存效率。其他方法提出了类似但替代的架构 (Liu et al, 2024; Kopiczko et al, 2024; Koohpayegani et al, 2024)。在这里,我们专注于原始的 LoRA 设置,如 Hu et al (2021) 中所述。
我们将对这些变化及其对我们的发现的影响进行严格的分析,留待未来的工作。
从经验上看,设置 α = 2r 已被证明可以提高更高等级的结果(Biderman 等人,2024 年),并且理论上有很好的动机。(Kalajdzievski,2023 年)。我们在论文中的大多数实验中都采用了这种参数化。

解决方案分析。由 Li 等人 (2018) 引入的内在维度度量被 Aghajanyan 等人 (2021) 用来论证预训练 LLM 的微调更新具有较低的内在秩,这解释了为什么只需要少量可训练参数即可达到 90% 的完整微调性能。这一发现促使 Hu 等人 (2021) 假设 LoRA 之所以有效,是因为存在低内在秩的解决方案。但据我们所知,过去没有研究比较过 LoRA 和完全微调在性能匹配的任务上的秩(或权重矩阵的其他属性)。虽然 Liu 等人 (2024) 表明 LoRA 难以独立改变神经元的方向和幅度分量,而完全微调则不然,但目前尚不清楚这种差异是否是由于 LoRA 无法像完全微调那样适应适应任务。

最近将 LoRA 与完全微调进行比较的研究发现,LoRA 对先前学习的信息的遗忘较少(Biderman 等人,2024),并且更接近预训练模型(Ghosh 等人,2024)。令人惊讶的是,当前研究中的一些实验显示出相反的趋势。然而,用于评估的数据集存在显着差异——(Biderman 等人,2024)研究了语言生成的指令调整,而我们主要研究序列标记任务。重要的是,Biderman 等人(2024)研究了 LoRA 微调模型无法像完全微调模型那样适应适应任务的情况,因此也忘记了较少的预训练分布。然而,我们研究了 LoRA 实现与完全微调相同性能的模型,比较了固定目标任务准确度下的泛化行为。

奇异值分解(Singular Value Decomposition) 奇异值分解(SVD)将一个矩阵 M∈Rm×nM \in \mathbb{R}^{m \times n}MRm×n 分解为以下形式:
M=UΣVT M = U \Sigma V^T M=UΣVT
其中:

  • U∈Rm×mU \in \mathbb{R}^{m \times m}URm×mV∈Rn×nV \in \mathbb{R}^{n \times n}VRn×n 是正交矩阵,其列向量分别表示矩阵 MMM 的左奇异向量和右奇异向量。
  • Σ∈Rm×n\Sigma \in \mathbb{R}^{m \times n}ΣRm×n 是一个对角矩阵,其中包含矩阵 MMM 的奇异值。

性质

  1. UUUVTV^TVT 表示矩阵 MMM 执行的旋转变换。
  2. Σ\SigmaΣ 表示沿这些轴的缩放操作。

重要性

  • 奇异向量按其对应的奇异值排序。排名靠前的奇异向量对应着矩阵最重要的变换方向。
  • 奇异值提供了矩阵变换的重要轴的尺度信息。

这种分解为分析矩阵的几何特性提供了强大的工具。

图2

图 2:描述通过 LoRA 与完全微调学到的解决方案之间的结构差异。a) 我们测量微调过程中对预训练权重的 SVD 所做的更改。
我们观察到 LoRA 在排名靠前的奇异向量中引入了入侵者维度,但通过完全微调。b) 比较使用完全微调或 LoRA 微调的矩阵。c) 将正常奇异维度与入侵者维度与所有预训练奇异向量进行比较。

3 MODEL DIFFERENCES BETWEEN LORA AND FULL FINE-TUNING

Sharma 等人 (2024) 的研究发现奇异值分解 (SVD, Klema & Laub, 1980) 可用于选择性修剪奇异向量以提高模型性能,受此启发,本文采用神经网络参数的 SVD 作为理解微调对预训练权重所做改变的视角。了解这些维度如何变化可以让我们洞悉特定的微调方法如何改变预训练模型。具体来说,我们使用它们的余弦相似度来测量用 LoRA 微调或完全微调的权重矩阵中的奇异向量与预训练权重中的奇异向量的映射程度。这些关系如图 1 和图 3 所示,颜色代表预训练和微调奇异向量之间的余弦相似度。

图3

图 3:微调模型与预训练模型中排序奇异向量之间的余弦相似度。(右)使用 LoRA 微调的矩阵的奇异向量发生了偏移,如空白列所示,这是由于入侵者维度(与预训练的奇异向量不同)造成的。
(左)然而,在通过完全微调训练的模型中没有发现这种偏移。

从视觉上看,我们在图 2(b) 中观察到,LoRA 和完全微调的奇异向量与预训练奇异向量的相似度非常不同:与完全微调相比,使用 LoRA 微调的模型的奇异向量与预训练奇异向量的平均余弦相似度似乎要低得多。有趣的是,在 LoRA 微调模型中,我们还观察到存在与任何预训练奇异向量的余弦相似度都很低的高排名奇异向量。 在图 2© 中,我们展示了这些与预训练奇异向量的余弦相似度较低的向量与微调权重的正常奇异向量之间的差异。这个“新”维度可以在图 2(b) 中看到,即左下角的单个红点。我们将这些“新”维度命名为入侵者维度,其正式定义如下:

定义 1:入侵维度(Intruder Dimension) 一个来自微调权重矩阵 WtunedW_{\text{tuned}}Wtuned 的奇异向量 yjy_jyj 被称为入侵维度,当且仅当满足以下条件:
max⁡i(cos⁡(yj,xi))<ϵ \max_i\left(\cos \left(y_j, x_i\right)\right) < \epsilon imax(cos(yj,xi))<ϵ
其中:

  • ϵ\epsilonϵ 是相似性阈值。
  • xix_ixi 是预训练权重矩阵 W0W_0W0 的奇异向量。

说明
入侵维度是指在微调权重矩阵 WtunedW_{\text{tuned}}Wtuned 中的奇异向量,与所有预训练奇异向量的余弦相似度均低于阈值 ϵ\epsilonϵ 的那些奇异向量。

可视化示例
在图 3 中可以看到入侵维度的示例:

  1. 我们绘制了预训练矩阵和微调矩阵中排名前 10 的奇异向量(按奇异值排序)之间的相似性矩阵。
  2. 对于完全微调,奇异向量之间呈现明确的一一对应关系。
  3. 对于 LoRA,映射中出现了“空白”列,这些是入侵维度,与所有预训练奇异向量的余弦相似度都很低。

入侵维度的存在揭示了 LoRA 微调过程中权重矩阵奇异值结构的差异。

值得注意的是,在完全微调的情况下,映射到具有高余弦相似度的预训练奇异向量的奇异向量也具有相似的奇异值。从这些初始测量结果来看,LoRA 和完全微调在对预训练权重所做的更改方面存在结构差异:虽然完全微调似乎对现有奇异向量和奇异值进行了微小更改,但 LoRA 引入了新的奇异向量,这些向量对更新后的参数矩阵的范数有很大贡献。

设置。我们研究了 RoBERTa-base(Liu et al, 2019),这是一个经过预训练的仅编码器语言模型,在六种不同的序列分类任务上进行了微调。我们训练这些模型在各自的下游任务上获得相似的性能,以研究在相似的性能水平下,完全微调和 LoRA 微调模型有何不同。有关更多微调详细信息,请参阅附录 A。我们计算了这些模型中的入侵者维度总数。

LoRA 微调模型包含高排名入侵者维度,而完全微调模型则不包含。为了量化特定权重矩阵的入侵者维度集的大小,我们使用图 4 中描述的算法。具体来说,我们首先计算预训练和得到的 LoRA 和完全微调权重的 SVD。之后,对于排名前 k 的奇异向量中的每一个,我们测量其与所有预训练奇异向量的最大余弦相似度。如果这个最大余弦相似度小于某个阈值 ϵ,我们将这个奇异向量分类为入侵者维度。请注意,k(要检查的微调奇异向量的数量)和 ϵ(余弦相似度阈值)都是超参数;我们分别在图 5 和图 11 中验证了我们的研究结果对各种 ϵ 和 k 值的稳健性。为了确定特定模型中入侵者维度的数量,我们对模型中的每个权重矩阵运行该算法并计算总数。

图4

图 4:用于计算模型中引入的入侵者维度总数的程序概述。

为了表征微调方法的差异,我们首先评估排名前 10 位的奇异向量(k = 10)中入侵者维度总数的差异。我们对 ϵ 值范围(我们的余弦相似度阈值)重复此过程。结果如图 5a 所示。我们发现,当使用 LoRA 训练的模型的排名 r ≤ 16 时,它们始终包含入侵者维度,尤其是对于较低的 ϵ 值。有趣的是,我们观察到,在不同设置下,对于大约 0.6 到 0.9 的 epsilon 值,完全微调的模型几乎从不在其前 10 个奇异向量中包含入侵者维度。这意味着完全微调对同一组高贡献预训练奇异向量的更改较小。重要的是,随着等级增加到某个阈值以上,入侵者维度的数量似乎会下降,这表明低等级性质以及 LoRA 的更新规则会导致它们的发生。

即使在 LoRA 微调模型学习效果不如完全微调的任务中,入侵者维度也存在。为了测试我们的研究结果对更大模型和更困难任务的有效性,我们研究了在各种指令跟踪数据集上微调的 LLaMA7B(Touvron 等人,2023a)和 LLaMA2-7B(Touvron 等人,2023b)模型。这些模型涵盖数学、代码和聊天,比我们的序列分类任务难得多。有关这些模型的更多详细信息,请参阅附录 H。

查看图 5b、5c 和 5d,我们可以清楚地看到 LoRA 高排名奇异向量集中的入侵者维度,即使排名高达 r = 256。重要的是,MetaMath 的 r = 2048 情况没有入侵者维度,而是具有与完全微调非常相似的曲线。这支持了先前的发现,即随着排名超过阈值,入侵者维度消失,LoRA 开始类似于完全微调。

图5

图 5:余弦相似度阈值 ϵ 对入侵者维度数量的影响。在这里,我们设置 k = 10,并测量 ϵ 对测量的入侵者维度数量的影响。LoRA 在排名前 10 的奇异向量中引入了许多入侵者维度,而完全微调则没有。顶行是 RoBERTa-base。

有趣的是,完全微调的 Magicoder 模型在较高的 ϵ 值下也具有入侵者维度。这可能是因为,正如 Biderman 等人 (2024) 所提到的,与其他自然语言任务相比,编码任务和预训练数据之间的域偏移更大。这种差异可能会导致完全微调对模型进行更积极的更改。但即使在这种情况下,LoRA 模型在其前 10 个奇异向量中的入侵者维度也比完全微调多得多(见图 1)。

完全微调更新的有效秩比 LoRA 更新高,即使 LoRA 是使用全秩矩阵执行的。我们可以通过另一种方式检查 LoRA 和完全微调之间的差异,即计算微调期间对权重所做更改的有效秩 (Roy & Vetterli, 2007)。如图 6 所示,当我们计算这个值时,我们观察到完全微调解决方案的有效秩比 LoRA 学习到的解决方案的有效秩高得多,即使 LoRA 具有高秩。即使在高适配器秩和秩稳定的情况下,我们也发现跨层 LoRA 更新的有效秩不到完全微调的一半和适配器秩的四分之一。例如,RoBERTa 的等级高达 r = 768,而 LoRA 更新的平均有效等级为 300。这表明 LoRA 未充分利用其全部容量 r,并且可能有助于解释在编码等具有挑战性的任务上观察到的 LoRA 与完全微调之间的差距(Biderman 等人,2024 年;Zhuo 等人,2024 年)。

图6

图 6:非常高等级的 LoRA 更新的有效等级仍然低于全微调。这适用于所有矩阵类型和层。(左)有效等级 LoRA 和全微调。(右)仅放大 LoRA。

入侵者维度分布在高奇异值和低奇异值上。我们检查入侵者维度在整个权重矩阵中的存在程度以及它们的分布方式。为此,我们保持ϵ固定并测量入侵者维度的数量,同时改变我们检查的微调奇异向量的比例。我们在图 11a 中报告了这些结果。在这里,我们可以看到,无论我们检查奇异值的多少部分,LoRA 始终具有比完全微调更多的入侵者维度。唯一的警告是,对于某些数据集,在检查最后 20% 的微调奇异向量时,完全微调会以等级 1 通过 LoRA。这可能是由于等级 1 更新的表达能力有限,并且很有趣,因为它表明在这些情况下,完全微调可能会比 LoRA 更多地改变低等级的奇异向量。

随着微调的进行,入侵者维度的幅度和方向都会增加。为了进一步了解在使用 LoRA 进行微调时如何引入特定的入侵者维度,我们测量了微调过程中许多中间步骤中顶部单个微调奇异向量与所有预训练奇异向量之间的最大余弦相似度,如图 7(左)所示。同时,我们跟踪其相关奇异值的变化,如图 7(右)所示。从图中可以看出,入侵者维度似乎随着其奇异值的增加(右侧)而逐渐增加其“等级”(左侧),同时随着训练的进行而改变方向。

图7

图 7:入侵者维度随训练迭代的演变。(左)微调期间 LoRA 微调权重矩阵中的入侵者维度及其排名。(右)它们相关的奇异值。这清楚地表明,在训练步骤中,由其奇异值决定的入侵者维度的影响会增加。

使用 LoRA 更新的秩缩放 α 会减少入侵者维度的数量,同时增加矩阵的有效秩。根据 (Biderman et al, 2024),我们设置 α = 2r。但是,我们进行了额外的实验,固定 α = 8,就像大多数早期的 LoRA 研究一样。这具有随着秩的增加而缩小 LoRA 贡献的效果。我们在附录 18 中报告了这些结果。对于两种 α 设置,模型在目标任务上获得了相同的性能(见表 1)。然而,在固定 α 的情况下,LoRA 的所有秩(即使是非常大的秩)都表现出入侵者维度。此外,当我们测量这些模型的有效秩时,它们的有效秩比 α = 2r 时小得多。这表明,在恒定 α 的情况下,LoRA 会收敛到低秩解。这提供了额外的证据,表明 α = 2r 可以改善 LoRA 高秩解决方案(Kalajdzievski,2023;Biderman 等,2024):当 LoRA 的秩较高时,它可以降低入侵者维度并提高解决方案的有效秩。

入侵者维度的总数与微调数据集的大小成比例增加。使用附录 A 中描述的训练,我们对不同大小的数据子集上的模型进行了微调。我们使用等级为 1 和 8 的 LoRA(我们最初看到入侵者维度的情况)在 MNLI 上训练了 RoBERTa-base。然后,我们再次测量入侵者维度的数量以及 ϵ 和 k 的影响,并在附录 12 中报告我们的结果。对于 r = 8,随着我们在更多数据上进行训练,会引入更多入侵者维度。然而,有趣的是,无论数据集大小如何,等级为 1 的 LoRA 似乎都会收敛到相似数量的入侵者维度。这可能是因为 r = 1 的模型的表达能力有限。

推测:入侵者维度作为高阶奇异向量,对参数矩阵的范数和稳定性有显著贡献。与从大型预训练语料库中学习到的预训练奇异向量相比,LoRA 引入了仅从微调任务的较小数据集中学习到的入侵者维度,这压倒了预训练向量,正如迄今为止的实验所见。另一方面,完全微调在同样有效地适应微调任务的同时,有效地保留了预训练模型的谱特性。由此,我们推测 LoRA 模型中入侵者维度的存在会对模型在微调任务分布之外的性能产生不利影响,而这种影响在完全微调模型中不太明显。我们将在下一节中探讨这一猜想。

4 BEHAVIORAL DIFFERENCES BETWEEN LORA AND FULL FINE-TUNING

我们已经确定了 LoRA 和完全微调解决方案中的结构差异。在这里,我们研究 LoRA 和完全微调是否会在微调模型行为中产生可测量的差异。虽然我们已经看到它们在分布内测试集上的表现几乎相同,但我们会评估这些行为相似性是否在其他分布下成立。

在较低级别中,LoRA 在持续学习过程中的适应性较差,因为它们会忘记更多先前的任务。我们按顺序在多个任务上训练 RoBERTa,并测量在学习新任务时性能发生了多大变化。我们使用与以前相同的训练方法和数据集,但现在在持续学习环境中进行微调,数据集顺序如下:MNLI、QQP、SST-2、SIQA、Winogrande、FEVER。在序列中的某个数据集上进行训练后,我们将 LoRA 权重合并到模型中并在下一个任务上进行训练之前重新初始化它们,以便它们不受先前任务的影响。在特定任务上进行训练后,我们会对所有任务进行测试,对于每个任务,我们先单独重新训练其分类头,然后再在其测试集上进行测试。这使我们能够检查模型在这些任务上的表现,而无需实际更改模型本身。

图8

图 8:RoBERTa 完全微调和 LoRA 的持续学习性能。我们从左到右依次训练六个任务。水平虚线表示基线预训练性能。垂直实线表示何时对特定数据集进行微调。灰色区域表示模型在该任务上进行训练之前的性能。我们感兴趣的是这些方法在训练后(垂直黑线处)和之后(白色区域)的准确度差异。我们发现,低等级的 LoRA 会忘记更多以前学过的任务。

结果如图 8 所示。虽然 LoRA 最初与完全微调的性能相匹配,但等级较低的 LoRA 在持续学习过程中性能下降幅度始终较大。特别地,我们注意到,对于前三个训练数据集,当 r = 1 时,LoRA 的性能低于预训练基线。随着我们提高 LoRA 的等级,我们可以看到这种遗忘行为减少,更接近完全微调,甚至在完成持续学习后在 MNLI 上遗忘更少。Biderman 等人(2024)描述了一系列任务和训练程序,在这些任务和训练程序下,LoRA 的遗忘少于完全微调,这些结果表明完整的情况是微妙的:虽然在某些情况下 LoRA 似乎忘记得更少,但对于某些任务和某些等级,LoRA 实际上可能会忘记更多。

对于微调到等效测试准确度的 LoRA 模型,我们看到一条 U 形曲线,该曲线标识了适合下游任务的最佳等级,同时尽量少忘记预训练分布。我们测量了经过微调的模型(训练到等效测试准确度)对其预训练数据分布的性能变化。虽然我们无法直接测量仅编码器样式模型的真实困惑度,因为它们不是自回归语言模型,但我们仍然可以测量它们在预训练数据上的伪似然性,如 Salazar 等人 (2020) 中所述。我们在 RoBERTa 在预训练期间使用的四个数据集(openwebtext(Gokaslan 和 Cohen,2019)、cc news(Hamborg 等,2017)、stories(Trinh 和 Le,2019)和 bookcorpus(Zhu 等,2015))中测量了所有经过微调的 RoBERTa 模型的“伪损失”,并按刘等人(2019)所述的贡献比例加权。我们在图 9 中报告了我们测量的伪损失分数。在其中,我们可以看到完全微调和 LoRA 之间的 U 形趋势,r = 768。由于所有模型都达到了相同的测试准确率,因此特定数据集中的这种 U 形趋势确定了适合下游任务分布的最佳等级,并且似乎指向 r = 64 是最大限度减少预训练分布遗忘的选择。我们可以看到,与完全微调相比,非常低的排名(r = 1)和非常高的排名(r = 768)都会导致预训练分布的遗忘量更大,而对于 r = 64,遗忘量较少。也就是说:当 r = 1 时,使用 LoRA 进行微调的模型会受到入侵者维度的影响,并且似乎比没有入侵者维度的 r = 64 具有更多的遗忘量。然而,当 r = 768 时,使用 LoRA 进行微调的模型也表现出更糟糕的遗忘量,这表明由于它们的过度参数化,它们对适应任务过度拟合。使用更频繁的 r = 8 和 r = 64 时,遗忘量少于完全微调,而两个极端的排名都比完全微调遗忘量多。

图9

图 9:RoBERTa 在特定任务上进行微调后在其预训练数据分布上的表现。我们按照 Salazar 等人 (2020) 描述的方法测量伪损失。针对特定任务的所有模型都经过训练,性能相当。我们看到一条 U 形曲线,它标识了学习下游任务的最佳排名,同时最少忘记预训练分布。

正确设置 α 会显著影响模型性能。我们继续进行案例研究,将 α = 8 而不是前面章节中描述的 α = 2r。我们重复持续学习和预训练遗忘实验,使用固定(而非按等级缩放)的 α,并在附录 16 和 17 中报告它们。无论等级如何,LoRA 模型在持续学习过程中都会忘记更多的预训练分布(MNLI、QQP、FEVER)和之前学习的任务,这突出表现在前两个数据集的所有 LoRA 等级都低于基线性能。
这些结果类似于 r = 1 的早期发现,并进一步表明,当 α = 8 而不是 α = 2r 时,解决方案会收敛到一个在结构上具有更多入侵者维度的解决方案,并且在行为上类似于低等级 LoRA 设置。

5 WHY DO INTRUDER DIMENSIONS EXIST?

添加随机向量引入入侵维度 向预训练矩阵添加一个随机向量会引入入侵维度。为了直观理解 LoRA 如何通过奇异值分解(SVD)引入新的奇异向量,我们研究了导致其产生的数学条件。

具体来说,当比较 SVD(W+λvvT)SVD(W + \lambda v v^T)SVD(W+λvvT)SVD(W)SVD(W)SVD(W) 时:

  • WWW 是预训练权重矩阵,W∈Rn×nW \in \mathbb{R}^{n \times n}WRn×n
  • vvv 是在 Rn\mathbb{R}^nRn 中随机采样的向量。
  • λ\lambdaλ 是大于 WWW 的最大奇异值的标量。

由于 vvv 以高概率几乎正交于 WWW 的现有奇异向量,因此这种更新会创建一个入侵维度。数学解释
通过向矩阵 WWW 添加 λvvT\lambda v v^TλvvT,我们引入了一个新的方向(vvv)。当 λ\lambdaλ 足够大时,vvv 对矩阵变换的贡献变得显著,并打破了预训练权重的原始奇异值结构。这种干扰通常会导致生成的奇异向量与原始奇异向量的余弦相似度较低,从而形成入侵维度。

更新规则的差异 如附录 D 所述,LoRA 和完全微调在更新规则上存在本质差异,即使针对相同的训练样本。关键点如下:

  • LoRA
    • 使用较大的学习率。
    • 梯度被投影到低秩空间中(Hao 等人,2024)。

这种特性导致 LoRA 的更新条件与上述玩具例子类似,即:

  • 通过限制更新方向(低秩空间的约束)和放大更新量(较大的学习率),更容易引入新的方向,进而生成入侵维度。

相比之下,完全微调由于没有低秩约束,更新规则更加自由,能更好地与原始权重的奇异值结构对齐。

LoRA 的产品参数化:将矩阵相乘会放大它们的频谱差异(它们的奇异值),并且在大多数情况下会导致有效等级降低。为了测试产品 BA 对引入入侵者维度的影响,我们随机初始化 A,使其所有奇异值均为 1 并将其冻结。我们只调整 B,并保持其余微调配方不变。将其与原始 LoRA 进行比较是公平的,因为 Zhu 等人 (2024) 发现,与 A 相比,调整 B 对泛化的影响更大、更重要,而 Hao 等人 (2024) 表明,只有调整 B 才能有效地近似 LoRA。如图 10 所示,与图 5 中分别训练 A 和 B 的原始 LoRA 情况相比,仅调整 B 时高排名入侵者维度的数量急剧下降。这表明 LoRA 的矩阵积是引入入侵者维度的重要组成部分,因为它放大了 B 和 A 的光谱差异。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐