作者/机构: Edward Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, Weizhu Chen (Microsoft Corporation)

A1 主要贡献

本文针对大型预训练语言模型在适应下游任务时面临的挑战,提出了一种名为“低秩适应”(Low-Rank Adaptation, LoRA)的高效方法。

  • 核心问题:随着预训练模型(如GPT-3 175B)的规模越来越大,全量微调(fine-tuning)变得不可行。为每个下游任务部署一个独立的、拥有1750亿参数的微调模型,其成本是极其高昂的。现有的高效适应方法,如Adapter层或前缀调整(prefix-tuning),要么会引入额外的推理延迟,要么会缩短模型可用的序列长度,并且在模型质量上往往无法与全量微调相媲美。

  • 研究目标与核心思想

    • 本文的目标是提出一种既参数高效、计算高效,又不影响模型质量和推理速度的适应方法。
    • 受到先前研究【索引1: Armen Aghajanyan, Luke Zettlemoyer, and Sonal Gupta. Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning. 2020. arXiv】、【索引29: Chunyuan Li, Heerad Farkhoor, Rosanne Liu, and Jason Yosinski. Measuring the Intrinsic Dimension of Objective Landscapes. 2018. arXiv】的启发,即过参数化模型实际上存在于一个低的内在维度上,本文假设模型适应过程中的权重变化量($\Delta W$)也具有一个低的“内在秩”。
    • 基于此假设,LoRA方法冻结预训练模型的权重,并在Transformer架构的每一层中注入可训练的、成对的秩分解矩阵($A$和$B$),以此来间接训练模型中密集层的权重更新。
  • 创新点与优势

    • 极高的参数效率:与使用Adam优化器进行全量微调的GPT-3 175B相比,LoRA可将可训练参数的数量减少10,000倍,并将GPU内存需求降低3倍。
    • 无额外的推理延迟:LoRA的线性设计允许在部署时将可训练的秩分解矩阵($A$和$B$)与其对应的冻结权重合并($W = W_0 + BA$),从而在结构上保证了与全量微调模型相比,不会引入任何额外的推理延迟。这是与Adapter等方法相比的一个关键优势。
    • 高效的任务切换与存储:一个预训练模型可以被共享,用于为不同任务构建许多小型的LoRA模块。通过简单地替换矩阵$A$和$B$,就可以高效地切换任务,极大地减少了存储需求和任务切换的开销。
    • 与全量微调相当或更好的性能:尽管可训练参数更少,训练吞吐量更高,LoRA在RoBERTa、DeBERTa、GPT-2和GPT-3上的模型质量与全量微调相当,甚至更好。
    • 方法正交性:LoRA与许多先前的方法(如prefix-tuning)是正交的,可以与之结合使用。

图1 我们的重参数化方法。我们只训练 A 和 B。
图1 我们的重参数化方法。我们只训练 A 和 B。

A3 背景知识与设计原则

现有解决方案的不足之处

本文旨在解决的问题并非全新。自迁移学习出现以来,已有数十项工作试图使模型适应在参数和计算上更高效。以语言模型为例,存在两种主要的高效适应策略:添加Adapter层【索引22: Neil Houlsby, et al. Parameter-Efficient Transfer Learning for NLP. 2019. arXiv】、【索引49: Sylvestre-Alvise Rebuffi, Hakan Bilen, and Andrea Vedaldi. Learning multiple visual domains with residual adapters. 2017. arXiv】或优化某种形式的输入层激活【索引30: Xiang Lisa Li and Percy Liang. Prefix-Tuning: Optimizing Continuous Prompts for Generation. 2021. arXiv】、【索引28: Brian Lester, Rami Al-Rfou, and Noah Constant. The Power of Scale for Parameter-Efficient Prompt Tuning. 2021. arXiv】。然而,这两种策略都有其局限性,尤其是在大规模和对延迟敏感的生产环境中。

Adapter层引入推理延迟。尽管Adapter层可以通过小瓶颈维度来限制其增加的FLOPs,但大型神经网络依赖硬件并行来保持低延迟,而Adapter层必须按顺序处理。这在批量大小通常为1的在线推理场景中会产生显著影响。例如,在单个GPU上对GPT-2 medium进行推理,即使瓶颈维度很小,使用Adapter也会导致延迟明显增加。

这个问题在需要对模型进行分片【索引53: Mohammad Shoeybi, et al. Megatron-lm: Training multi-billion parameter language models using model parallelism. 2020】、【索引27: Dmitry Lepikhin, et al. Gshard: Scaling giant models with conditional computation and automatic sharding. 2020】时会变得更糟,因为额外的深度需要更多的同步GPU操作(如AllReduce和Broadcast),除非冗余存储Adapter参数。

直接优化Prompt很困难。另一个方向,如前缀调整(prefix tuning)【索引30: Xiang Lisa Li and Percy Liang. Prefix-Tuning: Optimizing Continuous Prompts for Generation. 2021. arXiv】,面临着不同的挑战。我们观察到前缀调整难以优化,并且其性能随着可训练参数的增加而非单调变化,这证实了原始论文中的类似观察。更根本的是,为适应性调整保留一部分序列长度必然会减少可用于处理下游任务的序列长度,我们怀疑这使得调整Prompt的性能不如其他方法。

表1 GPT-2 medium单次前向传播的推理延迟(以毫秒为单位),在100次试验中取平均值。我们使用NVIDIA Quadro RTX8000。“|Θ|”表示Adapter层中的可训练参数数量。AdapterL和AdapterH是Adapter tuning的两种变体。在在线、短序列长度的场景中,Adapter层引入的推理延迟可能非常显著。
表1 GPT-2 medium单次前向传播的推理延迟(以毫秒为单位),在100次试验中取平均值。我们使用NVIDIA Quadro RTX8000。“|Θ|”表示Adapter层中的可训练参数数量。AdapterL和AdapterH是Adapter tuning的两种变体。在在线、短序列长度的场景中,Adapter层引入的推理延迟可能非常显著。

A2 方法细节

4.1 低秩参数化的更新矩阵

核心假设与低秩分解。一个神经网络包含许多执行矩阵乘法的密集层,这些层中的权重矩阵通常是满秩的。Aghajanyan等人(2020)【索引1: Armen Aghajanyan, Luke Zettlemoyer, and Sonal Gupta. Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning. 2020. arXiv】的研究表明,预训练语言模型具有低的“内在维度”,并且尽管通过随机投影到一个更小的子空间,仍然可以高效学习。受此启发,我们假设在适应过程中权重的更新也具有低的“内在秩”。对于一个预训练的权重矩阵$W_0 \in \mathbb{R}^{d \times k}$,我们通过用低秩分解来表示其更新来约束它:$W_0 + \Delta W = W_0 + BA$,其中$B \in \mathbb{R}^{d \times r}$,$A \in \mathbb{R}^{r \times k}$,并且秩$r \ll \min(d, k)$。在训练期间,$W_0$是冻结的,不接收梯度更新,而$A$和$B$包含可训练的参数。注意,$W_0$和$\Delta W = BA$都与相同的输入相乘,它们各自的输出向量是按坐标相加的。对于$h = W_0x$,我们修改后的前向传播过程为:

公式1
公式1

我们在图1中展示了我们的重参数化方法。

初始化与缩放。我们对$A$使用随机高斯初始化,对$B$使用零初始化,因此在训练开始时$\Delta W = BA$为零。然后我们用$\frac{\alpha}{r}$来缩放$\Delta W x$,其中$\alpha$是$r$中的一个常数。当使用Adam进行优化时,调整$\alpha$大致与调整学习率相同,如果我们适当地缩放初始化。因此,我们简单地将$\alpha$设置为我们尝试的第一个$r$的值,并且不调整它。这种缩放有助于减少当改变$r$时重新调整超参数的需要【索引61: Greg Yang and Edward J. Hu. Feature Learning in Infinite-Width Neural Networks. 2021. arXiv】。

对全量微调的泛化。一种更通用的微调形式允许训练预训练参数的一个子集。LoRA更进一步,不要求在适应过程中权重矩阵的累积梯度更新具有满秩。这意味着,当我们将LoRA应用于所有权重矩阵并训练所有偏置时,通过将LoRA的秩$r$设置为预训练权重矩阵的秩,我们大致可以恢复全量微调的表达能力。换句话说,随着我们增加可训练参数的数量,训练LoRA大致收敛到训练原始模型,而基于Adapter的方法收敛到一个MLP,基于前缀的方法收敛到一个不能接受长输入序列的模型。

无额外的推理延迟。在生产环境中部署时,我们可以显式地计算和存储$W = W_0 + BA$,并像往常一样执行推理。注意,$W_0$和$BA$都在$\mathbb{R}^{d \times k}$中。当我们需要切换到另一个下游任务时,我们可以通过减去$BA$然后加上一个不同的$B'A'$来恢复$W_0$,这是一个内存开销非常小的快速操作。关键是,这保证了我们与微调模型相比,在推理过程中不会引入任何额外的延迟。

4.2 将LoRA应用于Transformer

在Transformer中的应用范围。原则上,我们可以将LoRA应用于神经网络中的任何权重矩阵子集,以减少可训练参数的数量。在Transformer架构中,自注意力模块中有四个权重矩阵($W_q, W_k, W_v, W_o$),MLP模块中有两个。我们将$W_q$(或$W_k, W_v$)视为一个维度为$d_{model} \times d_{model}$的单个矩阵,尽管输出维度通常被切分成多个注意力头。为了简化和参数效率,我们的研究仅限于调整注意力权重以适应下游任务,并冻结MLP模块(因此它们在下游任务中不被训练)。我们在第7.1节中进一步研究了在Transformer中调整不同类型注意力权重矩阵的效果。关于调整MLP层、LayerNorm层和偏置的实证研究留给未来的工作。

实际优势。最显著的好处来自于内存和存储使用量的减少。对于一个用Adam训练的大型Transformer,如果$r \ll d_{model}$,我们将VRAM使用量减少了高达2/3,因为我们不需要为冻结的参数存储优化器状态。在GPT-3 175B上,我们将训练期间的VRAM消耗从1.2TB减少到350GB。当$r=4$并且只调整查询和值投影矩阵时,检查点大小减少了大约10,000倍(从350GB到35MB)。这使我们能够用显著更少的GPU进行训练,并避免I/O瓶颈。另一个好处是,我们可以通过仅交换LoRA权重而不是所有参数,以更低的成本在部署时切换任务。这允许创建许多定制模型,这些模型可以在将预训练权重存储在VRAM中的机器上即时换入换出。我们还观察到,在GPT-3 175B上,与全量微调相比,训练速度提高了25%,因为我们不需要为绝大多数参数计算梯度。

局限性。LoRA也有其局限性。例如,如果选择将$A$和$B$吸收到$W$中以消除额外的推理延迟,那么在一个前向传播中,将不同任务的不同$A$和$B$的输入进行批处理并不直接。不过,在延迟不那么关键的场景中,可以不合并权重,并为批次中的样本动态选择要使用的LoRA模块。

A4 实验环境

  • 数据集
    • GLUE Benchmark:用于评估RoBERTa和DeBERTa的自然语言理解(NLU)任务集合,包括MNLI(推理)、SST-2(情感分析)、MRPC(释义检测)、CoLA(语言可接受性)、QNLI(推理)、QQP(问题对)、RTE(推理)和STS-B(文本相似性)。
    • E2E NLG Challenge:用于GPT-2的数据到文本(data-to-text)生成任务评估。
    • DART:一个比E2E更大、更复杂的开放域数据到文本数据集,用于GPT-2评估。
    • WebNLG:一个常用的数据到文本数据集,包含已见和未见类别,用于GPT-2评估。
    • WikiSQL:用于GPT-3的自然语言到SQL查询的生成任务。
    • SAMSum:用于GPT-3的对话摘要任务。
  • 模型架构
    • RoBERTa-base (1.25亿参数) 和 RoBERTa-large (3.55亿参数)。
    • DeBERTa-XXL (15亿参数)。
    • GPT-2 medium (3.55亿参数) 和 GPT-2 large (7.74亿参数)。
    • GPT-3 (1750亿参数)。
  • 硬件配置
    • 所有实验均使用 NVIDIA Tesla V100 GPU。
    • 推理延迟测试使用了 NVIDIA Quadro RTX8000 GPU。
  • 软件配置
    • 实现基于 HuggingFace Transformers 库【索引59: Thomas Wolf, et al. Transformers: State-of-the-art natural language processing. EMNLP 2020】。
    • 优化器为 AdamW【索引38: Ilya Loshchilov and Frank Hutter. Decoupled weight decay regularization. 2019】。
    • 作者发布了一个促进LoRA与PyTorch模型集成的软件包,并提供了RoBERTa、DeBERTa和GPT-2的实现和模型检查点,可在 https://github.com/microsoft/LoRA 获取。

A4 实验结果

本文通过在RoBERTa、DeBERTa、GPT-2和GPT-3上的一系列NLU和NLG任务,将LoRA与全量微调(FT)及其他参数高效的适应方法进行了广泛比较。

  • RoBERTa 和 DeBERTa 在 GLUE 上的表现 (表2)
    • 实验内容:在GLUE基准测试上,比较了LoRA、全量微调、Adapter(多种变体)和BitFit(仅训练偏置)等方法的性能。
    • 实验结果:在RoBERTa-base、RoBERTa-large和DeBERTa-XXL模型上,LoRA(秩r=8)的性能与全量微调相当或略优。例如,在RoBERTa-large上,LoRA仅用0.7M可训练参数就达到了与355M参数的全量微调相匹配的性能。同时,LoRA显著优于其他参数高效方法,如AdapterH和AdapterL。
    • 分析结论:LoRA在保持高性能的同时,极大地减少了可训练参数的数量,证明了其在NLU任务上的有效性。

表2 RoBERTa-base、RoBERTa-large和DeBERTa-XXL在GLUE基准测试中使用不同适应方法的表现。我们报告了MNLI的总体准确率,CoLA的马修斯相关系数,STS-B的皮尔逊相关系数,以及其他任务的准确率。所有指标越高越好。
表2 RoBERTa-base、RoBERTa-large和DeBERTa-XXL在GLUE基准测试中使用不同适应方法的表现。我们报告了MNLI的总体准确率,CoLA的马修斯相关系数,STS-B的皮尔逊相关系数,以及其他任务的准确率。所有指标越高越好。

  • GPT-2 在 NLG 任务上的表现 (表3)
    • 实验内容:在E2E NLG Challenge任务上,比较了LoRA、全量微调、Adapter、prefix-tuning等方法的性能。
    • 实验结果:LoRA在所有评估指标(BLEU、METEOR、ROUGE-L等)上均优于或持平于其他基线方法,包括全量微调。例如,在GPT-2 medium上,LoRA (r=4) 使用0.5M参数,其性能优于使用355M参数的全量微调和使用0.8M参数的prefix-tuning。
    • 分析结论:LoRA同样适用于NLG模型,并且在参数效率和模型质量上都表现出色。

表3 GPT-2 medium (M) 和 large (L) 在E2E NLG Challenge上使用不同适应方法的表现。所有指标越高越好。LoRA在可训练参数相当或更少的情况下优于多个基线。
表3 GPT-2 medium (M) 和 large (L) 在E2E NLG Challenge上使用不同适应方法的表现。所有指标越高越好。LoRA在可训练参数相当或更少的情况下优于多个基线。

  • GPT-3 175B 上的扩展实验 (表4, 图2)
    • 实验内容:在WikiSQL、MultiNLI和SAMSum三个任务上,对1750亿参数的GPT-3进行最终压力测试,比较LoRA、全量微调、prefix-tuning等方法的性能。
    • 实验结果:LoRA在所有三个数据集上都达到或超过了全量微tuning的基线性能。值得注意的是,如图2所示,LoRA的性能随着可训练参数的增加而稳定提升或饱和,而prefix-tuning的性能在参数超过一定数量后会出现显著下降,这证实了prefix-tuning优化困难的问题。
    • 分析结论:LoRA成功地扩展到了迄今为止最大的语言模型,并展示了其优越的性能和可扩展性。

表4 不同适应方法在GPT-3 175B上的性能。我们报告了WikiSQL上的逻辑形式验证准确率,MultiNLI-matched上的验证准确率,以及SAMSum上的Rouge-1/2/L。LoRA的表现优于先前的方法,包括全量微调。
表4 不同适应方法在GPT-3 175B上的性能。我们报告了WikiSQL上的逻辑形式验证准确率,MultiNLI-matched上的验证准确率,以及SAMSum上的Rouge-1/2/L。LoRA的表现优于先前的方法,包括全量微调。

图2 GPT-3 175B在WikiSQL和MNLI-matched上的验证准确率与几种适应方法的可训练参数数量的关系。LoRA表现出更好的可扩展性和任务性能。
图2 GPT-3 175B在WikiSQL和MNLI-matched上的验证准确率与几种适应方法的可训练参数数量的关系。LoRA表现出更好的可扩展性和任务性能。

  • 对低秩更新的理解 (第7节)
    • 应该对哪些权重矩阵应用LoRA? (表5):在给定的参数预算下,同时对自注意力模块中的查询权重($W_q$)和值权重($W_v$)应用LoRA,能获得最佳的下游任务性能。
    • LoRA的最佳秩r是多少? (表6):实验表明,一个非常小的秩(在GPT-3上甚至r=1或r=2)就足以达到有竞争力的性能,这支持了权重更新矩阵$\Delta W$具有非常低的“内在秩”这一核心假设。
    • $\Delta W$与$W$的关系 (表7):分析表明,适应矩阵$\Delta W$与预训练权重$W$高度相关,但它并非简单地重复$W$中最重要的方向(即顶部的奇异向量方向)。相反,$\Delta W$放大了那些对于特定下游任务重要、但在通用预训练模型中未被强调的特征方向。这种放大效应非常显著。

表5 在GPT-3中对不同类型的注意力权重应用LoRA后的WikiSQL和MultiNLI验证准确率,给定相同的可训练参数数量。同时调整Wq和Wv的性能最好。
表5 在GPT-3中对不同类型的注意力权重应用LoRA后的WikiSQL和MultiNLI验证准确率,给定相同的可训练参数数量。同时调整Wq和Wv的性能最好。

表6 不同秩r在WikiSQL和MultiNLI上的验证准确率。令人惊讶的是,在这些数据集上,仅为1的秩就足以调整Wq和Wv,而单独训练Wq需要更大的r。
表6 不同秩r在WikiSQL和MultiNLI上的验证准确率。令人惊讶的是,在这些数据集上,仅为1的秩就足以调整Wq和Wv,而单独训练Wq需要更大的r。

A5 结论

本文提出LoRA,一种高效的模型适应策略,它在不引入推理延迟、不减少输入序列长度的情况下,保持了高质量的模型性能,并极大地降低了硬件要求和部署成本。

  • 核心贡献:LoRA通过冻结预训练权重并注入可训练的低秩矩阵,解决了大型语言模型微调的昂贵问题。这使得在服务部署时,可以通过共享绝大多数模型参数并快速切换小型LoRA模块来实现高效的任务转换。
  • 普适性:尽管本文专注于Transformer语言模型,但所提出的原则普遍适用于任何具有密集层的神经网络。
  • 未来工作
    1. 将LoRA与其他高效适应方法结合,可能获得正交的性能提升。
    2. 深入研究微调或LoRA背后的机制,即预训练中学到的特征如何为下游任务转化。LoRA使这类研究更易于进行。
    3. 探索更有原则性的方法来选择应用LoRA的权重矩阵。
    4. 权重更新$\Delta W$的秩亏性表明原始权重$W$本身也可能存在秩亏性,这可能为未来的工作提供灵感。

A6 附录

E LoRA与前缀调整的结合

LoRA与现有方法的正交性。LoRA可以自然地与现有的基于前缀的方法结合。本节评估了LoRA与两种前缀调整变体在WikiSQL和MNLI上的组合效果。

LoRA+PrefixEmbed (LoRA+PE)。此方法将LoRA与前缀嵌入调整相结合,即在输入中插入$l_p + l_i$个特殊token,其嵌入被视为可训练参数。

LoRA+PrefixLayer (LoRA+PL)。此方法将LoRA与前缀层调整相结合。同样插入$l_p + l_i$个特殊token,但这些token在每个Transformer块后的隐藏表示会被一个与输入无关的向量替换。因此,嵌入和后续的Transformer块激活都被视为可训练参数。

实验结果分析。在表15中,我们展示了LoRA+PE和LoRA+PL在WikiSQL和MultiNLI上的评估结果。首先,LoRA+PE在WikiSQL上的表现显著优于单独的LoRA和前缀嵌入调整,这表明LoRA与前缀嵌入调整在某种程度上是正交的。在MultiNLI上,LoRA+PE的组合没有比LoRA表现更好,可能是因为LoRA本身已经达到了与人类基线相当的性能。其次,我们注意到即使有更多的可训练参数,LoRA+PL的表现也略逊于LoRA。我们将其归因于前缀层调整对学习率非常敏感,从而使得在LoRA+PL中优化LoRA权重变得更加困难。

F 额外的实证实验

F.1 GPT-2上的额外实验

DART和WebNLG上的评估。我们遵循Li & Liang (2021)【索引30: Xiang Lisa Li and Percy Liang. Prefix-Tuning: Optimizing Continuous Prompts for Generation. 2021. arXiv】的设置,在DART【索引40: Linyong Nan, et al. Dart: Open-domain structured data record to text generation. 2020. arXiv】和WebNLG【索引15: Claire Gardent, et al. The webnlg challenge: Generating text from rdf data. 2017】数据集上重复了我们的实验。结果如表13和表14所示。与我们在第5节报告的E2E NLG Challenge上的结果类似,在给定相同数量可训练参数的情况下,LoRA的表现优于或至少与基于前缀的方法相当。

表13 GPT-2在DART上使用不同适应方法的表现。所有适应方法的MET和TER方差均小于0.01。
表13 GPT-2在DART上使用不同适应方法的表现。所有适应方法的MET和TER方差均小于0.01。

表14 GPT-2在WebNLG上使用不同适应方法的表现。“U”表示未见类别,“S”表示已见类别,“A”表示测试集中的所有类别。MET和TER的方差均小于0.01。
表14 GPT-2在WebNLG上使用不同适应方法的表现。“U”表示未见类别,“S”表示已见类别,“A”表示测试集中的所有类别。MET和TER的方差均小于0.01。

F.2 GPT-3上的额外实验

性能与参数权衡分析。我们在表15中展示了使用不同适应方法在GPT-3上的额外运行结果。重点是确定性能与可训练参数数量之间的权衡关系。

表15 不同适应方法在WikiSQL和MNLI上的超参数分析。前缀嵌入调整(PrefixEmbed)和前缀层调整(PrefixLayer)的性能随着可训练参数的增加而变差,而LoRA的性能则趋于稳定。性能以验证准确率衡量。
表15 不同适应方法在WikiSQL和MNLI上的超参数分析。前缀嵌入调整(PrefixEmbed)和前缀层调整(PrefixLayer)的性能随着可训练参数的增加而变差,而LoRA的性能则趋于稳定。性能以验证准确率衡量。

F.3 低数据量场景

评估不同适应方法的样本效率。为了评估不同适应方法在低数据量场景下的性能,我们从MNLI的完整训练集中随机抽取100、1k和10k个训练样本,构成低数据量的MNLI-n任务。在表16中,我们展示了不同适应方法在MNLI-n上的性能。令人惊讶的是,PrefixEmbed和PrefixLayer在MNLI-100数据集上表现非常差,其中PrefixEmbed仅略好于随机猜测(37.6% vs. 33.3%)。PrefixLayer表现优于PrefixEmbed,但在MNLI-100上仍显著差于Fine-Tune或LoRA。随着训练样本数量的增加,基于前缀的方法与LoRA/Fine-tuning之间的差距变小,这可能表明基于前缀的方法不适合GPT-3上的低数据量任务。LoRA在MNLI-100和MNLI-Full上都取得了比fine-tuning更好的性能,并且考虑到随机种子带来的(±0.3)方差,在MNLI-1k和MNLI-10K上的结果也具有可比性。

表16 使用GPT-3 175B在MNLI子集上不同方法的验证准确率。MNLI-n表示一个包含n个训练样本的子集。我们使用完整的验证集进行评估。与其他方法(包括微调)相比,LoRA表现出有利的样本效率。
表16 使用GPT-3 175B在MNLI子集上不同方法的验证准确率。MNLI-n表示一个包含n个训练样本的子集。我们使用完整的验证集进行评估。与其他方法(包括微调)相比,LoRA表现出有利的样本效率。

H 低秩矩阵的额外实验

H.2 秩r对GPT-2的影响

在GPT-2上重复实验。我们在GPT-2上重复了关于秩$r$影响的实验(第7.2节)。以E2E NLG Challenge数据集为例,我们报告了在训练26,000步后不同$r$选择所达到的验证损失和测试指标。结果呈现在表18中。GPT-2 Medium的最佳秩在4到16之间,具体取决于所用指标,这与GPT-3 175B的情况相似。值得注意的是,模型大小与适应的最佳秩之间的关系仍然是一个开放问题。

表18 使用GPT-2 Medium的LoRA在不同秩r下于E2E NLG Challenge上达到的验证损失和测试集指标。与GPT-3上r=1就足以完成许多任务不同,这里的性能在验证损失上于r=16达到峰值,在BLEU上于r=4达到峰值,这表明GPT-2 Medium与GPT-3 175B相比,具有相似的内在适应秩。
表18 使用GPT-2 Medium的LoRA在不同秩r下于E2E NLG Challenge上达到的验证损失和测试集指标。与GPT-3上r=1就足以完成许多任务不同,这里的性能在验证损失上于r=16达到峰值,在BLEU上于r=4达到峰值,这表明GPT-2 Medium与GPT-3 175B相比,具有相似的内在适应秩。

H.3 W和$\Delta W$之间的相关性

子空间相似度分析。图8展示了$W$和$\Delta W$之间随$r$变化的归一化子空间相似度。请再次注意,$\Delta W$不包含$W$的顶部奇异方向,因为$\Delta W$中前4个方向与$W$中前10%方向之间的相似度几乎不超过0.2。这证明$\Delta W$包含了那些在$W$中未被强调的“任务特定”方向。一个有趣的后续问题是,为了使模型适应良好,我们需要多“强”地放大这些任务特定方向?

图8 Wq和∆Wq的奇异方向之间的归一化子空间相似度,随r变化并与随机基线对比。∆Wq放大了那些重要但在W中未被强调的方向。具有较大r的∆W倾向于拾取更多在W中已经被强调的方向。
图8 Wq和∆Wq的奇异方向之间的归一化子空间相似度,随r变化并与随机基线对比。∆Wq放大了那些重要但在W中未被强调的方向。具有较大r的∆W倾向于拾取更多在W中已经被强调的方向。

H.4 放大因子

特征放大因子的定义与分析。我们可以自然地将特征放大因子定义为比率$\frac{\|\Delta W\|_F}{\|U^T W V\|_F}$,其中$U$和$V$是$\Delta W$的SVD分解的左、右奇异矩阵。(回忆一下,$UU^T W VV^T$给出了$W$在$\Delta W$所张成的子空间上的“投影”)。直观地说,当$\Delta W$主要包含任务特定方向时,这个量衡量了它们被$\Delta W$放大了多少。如第7.3节所示,对于$r=4$,这个放大因子高达20。换句话说,在每一层中(在整个预训练模型$W$的特征空间中),有(通常来说)四个特征方向需要被放大一个非常大的因子20,以便为下游特定任务达到我们报告的准确率。并且,对于每个不同的下游任务,应该期望有一组非常不同的特征方向被放大。

高秩下的放大因子。然而,人们可能会注意到,对于$r=64$,这个放大因子仅为2左右,这意味着在$r=64$的$\Delta W$中学到的大多数方向并没有被放大很多。这并不奇怪,实际上再次证明了表示“任务特定方向”(从而用于模型适应)所需的内在秩很低。相比之下,$\Delta W$的秩-4版本(对应于$r=4$)中的那些方向被放大了更大的因子20。