将预训练的基础模型适应于各种下游任务在人工智能中已经变得普遍。由于任务数量庞大且成本高昂,调整所有参数变得不切实际。为了缓解这一问题,已经开发出几种微调技术,以更资源高效的方式更新预训练模型的权重,例如通过低秩调整。 然而,几乎所有这些方法都专注于线性权重,忽视了在如4D等更高维度参数空间中的复杂性。另外,一些方法可以通过将原始空间中的变化压缩到二维,然后使用低秩矩阵分解来适应高维参数空间。 然而,这些方法破坏了涉及的高维空间的结构完整性。 为了应对不同基础模型间维度空间的多样性,并提供这些空间内部变化的更精确表示,本文引入了一种通用的参数高效微调框架FLoRA,专为各种维度参数空间设计。 具体来说,利用Tucker分解,FLoRA认为每个维度参数空间的变化基于一个保持与原始空间一致拓扑结构的低秩核心空间。然后,它通过这个核心空间以及相应的权重来建模原始空间中的变化。FLoRA有效地保持了原始N维参数空间变化的结构完整性,同时通过低秩张量分解来分解它。 在计算机视觉、自然语言处理和多模态任务上的大量实验验证了FLoRA的有效性。 代码可在https://github.com/SJTU-DeepVisionLab/FLoRA获取。
近期基础模型Brown等人(2020年);Kirillov等人(2023年);Devlin等人(2018年);Liu等人(2019年)的引入,在人工智能的多个领域展示了无与伦比的性能和潜力。传统上,为下游任务适配预训练模型是通过完全微调所有参数Ma等人(2024年);Raffel等人(2020年);Qiu等人(2020年)。然而,随着这些基础模型参数数量的增加,传统的完全微调方法在各个方面都变得过于昂贵。
为了应对这一挑战,近期的研究Chen等人(2024年);Guo等人(2020年);He等人(2021年);Hu等人(2021年)专注于参数高效微调(PEFT)的概念,旨在最小化所需的可调整参数数量,同时实现最优的任务性能。这些研究特别探索了在经济型参数方面对预训练权重的增量更新进行建模的方法,无需改变模型的架构Zaken等人(2021年);Guo等人(2020年);Hu等人(2021年)。在这些研究中,LoRA Hu等人(2021年)是一项开创性的努力,它提出在原始权重上采用一个具有低秩结构的附加项。具体来说,原始权重矩阵保持冻结,同时将一个可学习的低秩添加到,形式为
其中和,。鉴于远小于的维度,LoRA仅需更新数量有限的训练参数,同时实现可比较的性能。在LoRA之后,近期的研究He等人(2021年);Bershatsky等人(2024年);Zhang等人(2022年)努力探索关于矩阵更高效的低秩矩阵分解方法。
然而,作者观察到了一个有趣的现象:现有工作中有很大一部分仅关注二维参数空间(即线性层),忽视了其他维度空间的存在,如2D卷积(四维)层等。但在实践中,对于下游任务中的各种模型而言,并非所有层都是线性的。例如,ConvNeXt Liu等人(2022年)和Stable Diffusion Carreira和Zisserman(2017年)是两个主要利用2D卷积层的模型。另外,一些方法可以通过直接采用低秩矩阵分解来适应高维参数空间。它们将高维空间中的变化转化为二维,同时忽视了原始空间的结构复杂性。
例如,在第3.1节和图1中详细说明,LoRA Hu等人(2021年)将卷积中的变化,这个四维参数空间,压缩到二维。随后对二维空间应用低秩矩阵分解,意图表示原始四维参数空间的变化。然而,如第3.2节所述,这种变换未能捕捉到卷积操作所特有的内在复杂性和空间局部性。结果是,一个 Reshape 的二维结构损害了原始参数空间的完整性,导致一个不能完全封装卷积变化参数空间的表示。
为此,在本文中,作者提出了一种基于低秩张量分解的方法,FLoRA,表示为基本低秩适应(Fundamental LOw-Rank Adaptation)。
作为LoRA的更优替代品,基于Tucker分解的FLoRA满足了以下三个特性:
具体来说,由于比参数空间的直接秩低得多的秩就足以表示原始空间(Aghajanyan等人,2020;Li等人,2018),FLoRA断言,无论是2D还是4D的每个维度参数空间的变换都有一个相应的核心空间。这个核心空间是低秩的,并保留了与原始参数空间相同的空间维度(即2D或4D),这表明它们共享一致拓扑结构。FLoRA然后使用这个核心空间结合一系列权重来重建原始参数空间中的变换。
得益于核心空间结构中的内在属性,FLoRA有效地保持了原始参数空间的结构完整性。在计算机视觉、自然语言处理和多模态任务上对几个预训练模型进行了大量实验,验证了无论模型、下游任务的类型,还是参数空间的维度,FLoRA的性能都超过了LoRA和其他现有方法。
本文的贡献如下:
参数高效微调(PEFT)方法旨在减轻与大规模模型微调相关的大量计算成本。这种经济化是通过精心调整总体参数的一小部分,这些参数是战略性地为适应各种下游任务而选择的。当前的PEFT技术可以分为三个不同的类别:Liu等人(2024),Ding等人(2023):基于 Adapter 的方法Houlsby等人(2019),Chen等人(2022),Luo等人(2023),He等人(2021),Mahabadi等人(2021),Karimi Mahabadi等人(2021),基于提示的方法Lester等人(2021),Razdaibiedina等人(2023),Wang等人(2023),Shi和Lipani(2023),Fischer等人(2024)以及基于低秩矩阵分解的方法Hu等人(2021),Liu等人(2024),Hyeon-Woo等人(2021),Qiu等人(2023),Renduchintala等人(2023),Kopiczko等人(2023),YEH等人(2023),Zhang等人(2022)。
第一类方法通过顺序或同时与现有层集成线性模块来提高性能,第二类方法在初始输入中引入额外的软 Token (提示),并专门关注这些可训练向量的改进。最后一类方法,由LoRA Hu等人(2021)提出,采用低秩矩阵分解来模拟微调期间权重变化,并能够与预训练权重合并。
然而,如引言中所述,这些方法只关注线性权重或破坏高维参数空间的结构完整性。为此,在本文中,作者提出了一种新颖的PEFT方法,旨在解决各种维度的参数空间问题。
Hu等人(2021年)提出的LoRA模型通过两个小矩阵的乘积和来建模预训练权重矩阵的增量更新,其中。对于,修改后的前向传播为
矩阵用随机高斯分布初始化,而用零初始化,训练时初始设为零。LoRA的应用直接针对线性层,而对于由权重表示的卷积层,其中 / 分别表示输入/输出的维度,表示核大小,LoRA基于矩阵分解进行适配:
其中和。这里,涉及将的维度改变以匹配的维度。很明显,LoRA将原始的4维参数空间展开到2维空间,随后利用这个2维空间的低秩近似来表示原始的4维结构。如后文所示,这种基于低秩矩阵分解的方法将破坏卷积层的结构完整性。
可以根据方程(3)基于低秩矩阵分解对高维张量进行分解。然而,在 Reshape 过程中,卷积核内相邻的元素可能会散布在矩阵的各个位置。更具体地说,原本在卷积核内部局域的元素现在可能跨越 Reshape 矩阵的多行或多列。这种偏移对于学习位于不同位置元素间的空间相关性提出了重大挑战。
因此,这种变换破坏了原始卷积操作固有的局部性原则,在该原则中,每个输出元素由输入的一个小区域决定。
Tucker分解(Tucker, 1966)是一种被广泛研究的代数张量分解方法。形式上,给定一个张量 ,其中 是张量的阶数(即维数或模式的数量),Tucker分解将 表示为一个核心张量 与每个模式 上的矩阵的乘积,,其中 可以被视为核心张量在第 个模式上的维度。分解可以紧凑地写为:
其中 表示张量与矩阵之间的第 模式乘积。核心张量 表示不同模式之间的交互作用,而矩阵 在每个相应模式内部类似于主成分。选择维度 可以在所需的近似质量和计算效率之间达到平衡,适应手头特定任务的需求。Tucker分解将任意维空间分解为一个核心张量与一组与维度相关的矩阵,而不改变原始结构。特别是,这些矩阵仅转换不同维度的表示,这意味着只要核心张量准确地捕捉到这些维度之间的关系,原始参数空间的性质可以通过这种分解得到保留。
在本节中,作者首先介绍在N维参数空间中FLoRA的公式化表述。具体来说,对于一个具有N维的预训练权重,作者将其更新建模为
不失一般性。这里和,其中。FLoRA将张量视为一个低秩核心空间,其拓扑结构与原始参数空间一致,表示与每个维度相关的权重。然后作者通过常数缩放。在后续的小节中,作者将详细说明其在卷积和线性层中的具体表现。
在深度学习中,卷积操作的特点是由一个四维参数空间组成,封装在一个权重张量中,其中/分别表示输入/输出的维度,表示核大小。在中要考虑的一个关键属性是空间局部性,它在卷积层编译和处理输入矩阵信息的能力中起着至关重要的作用。这一过程由核的空间维度()促进,它决定了每次卷积操作审查的输入数据范围。为了保持空间局部性的属性并维护卷积参数空间的完整性,FLoRA为卷积层的更新建模如下
其中,,以及。是远小于的秩。是小于卷积层核大小的秩。鉴于卷积在卷积基础模型Woo等人(2023年),Rombach等人(2022年),Wang等人(2023年)中是一种普遍的配置,因此被设定为。
FLoRA中的核心张量可以被看作是压缩的卷积参数空间。本质上,它作为卷积的核心空间。这意味着在任何卷积层中,都存在一个卷积核心,而FLoRA旨在为每个卷积空间确定这个卷积核心,并配置相应的权重,,和来重构该空间。与基于低秩矩阵分解的方法不同,FLoRA不需要改变卷积的结构。相反,通过学习卷积核心,FLoRA有效地保持了卷积的空间局部性属性。
此外,在保持或可能增强卷积过程的表达力的同时,FLoRA相比于LoRAs在可训练参数数量上实现了显著减少。假设输入和输出维度的秩是统一的(),FLoRA的参数需求计算为个参数,而LoRAs至少需要训练个参数。鉴于通常,因此,随着核数量的增加,FLoRA比LoRA具有更好的参数效率。
对于一个具有权重 的线性层,FLoRA将更新 模型化为
其中 , 和 。与卷积层类似,核心矩阵 可以被视为二维参数空间的核心空间, 和 是用于在线性空间中重构变化的相应权重。
作者进行了跨计算机视觉(CV)、自然语言处理(NLP)和多模态(MM)任务的全面实验。
图2:FLoRA相对于其他 Baseline 的标准化性能提升
具体来说,对于CV任务,作者使用FLoRA对ConvNeXt-V2-L Woo等人(2023年)进行微调,并在MS COCO Lin等人(2014年)上使用Mask R-CNN He等人(2017年)进行评估,该R-CNN实现在MMDetection Chen等人(2019年)中;在远程遥感图像数据集DOTA Xia等人(2018年)上,使用基于MMRotate Zhou等人(2022年)的Oriented R-CNN Xie等人(2021年);在ADE20K Zhou等人(2017年)数据集上,通过集成在MMSegmentation Contributors(2020年)中的UperNet Xiao等人(2018年)。作者还使用FLoRA对大型视觉基础模型,即InternViT-6B Chen等人(2023年),在ADE20K数据集上进行微调。详细的超参数设置可以在附录中找到。
对于NLP任务,作者在通用语言理解评估(GLUE)Wang等人(2018年)基准上评估了带有FLoRA的DeBERTaV3-base He等人(2021年),该基准包括两个单句分类、三个相似度和释义以及四个自然语言推理数据集。关于GLUE数据集的更多细节可以在附录中找到。
对于多模态任务,作者使用FLoRA对LLaVA-1.5-7B Liu等人(2024年)进行微调,该模型由语言模型Vicuna-1.5-7B Peng等人(2023年)和视觉编码器CLIP ViT-L/336px Radford等人(2021年)组成,在视觉指令调整任务上进行微调,这些任务包括七个视觉-语言基准:VQAGoyal等人(2017年),GQA Hudson和Manning(2019年),VisWiz Gurari等人(2018年),SQA Lu等人(2022年),VQASingh等人(2019年),POPE Li等人(2023年),以及MMBench Liu等人(2023年)。
此外,作者还将在附录中对Stable Diffusion Rombach等人(2022年)使用FLoRA进行微调。
作者比较了FLoRA与几种最先进的方法:完全微调、BitFit Zaken等人(2021年)、HAdapter Houlsby等人(2019年)、PAdapter Pfeiffer等人(2020年)、AdaLoRA Zhang等人(2022年),最具代表性的低秩方法LoRA Hu等人(2021年),以及最先进的低秩适应方法DoRA Liu等人(2024年)。特别是,HAdapter被策略性地放置在自注意力模块和FFN模块之间,并包括后续的残差连接。相反,PAdapter引入了更加精简的设计,仅在FFN模块和LayerNorm模块之后实现 Adapter 。此外,遵循Zhang等人(2022年)的做法,作者将AdaLoRA、LoRA和DoRA应用于所有权重矩阵或张量。关于 Baseline 方法的更多细节,请参考它们的原始论文。
表1:使用不同数据集对ConvNeXt-V2-L Woo等人(2023)进行微调的结果。最佳性能以粗体显示。“Base”代表预训练的主干网络,权重被冻结。
作者在不同的参数预算下将FLoRA与其他PEFT方法进行比较。Adapters的隐藏维度从{8, 16, 32, 64}中选择,AdaLoRA的预算从{144, 288, 567}中选择,而LoRA和DoRA的秩从{2, 4, 8, 16, 32}中选择。其他超参数根据它们原始论文进行初始化。此外,作者简单地为FLoRA设置。对于不同的基础模型,比例从{0.04, 0.4, 4}中选择。作者使用公开可用的PyTorch Paszke等人(2019)实现来执行所有 Baseline 比较,所有实验都在NVIDIA A100 GPUs上进行。对于NLP任务,报告了使用不同随机种子进行的5次运行的平均值,所有增益都通过了成对-检验,显著性为0.05。张量初始化为零,而其他权重矩阵初始化为随机高斯。更多训练细节请参考附录。### 主要结果
作者在不同的参数预算下将FLoRA与其他 Baseline 进行比较。特别是,ConvNeXt-V2-L基于卷积,而其他大型基础模型主要基于线性层。作者评估了FLoRA在CV任务中对高维空间的效力,以及在CV和NLP任务中对线性参数空间的效力。结果展示在表1-3和附录中的表中,归一化性能如图2所示。
对于CV任务,在ConvNeXt-V2-L上应用的FLoRA与其它 Baseline 相比实现了更优的性能。平均而言,在不同参数预算下,FLoRA至少比LoRA和DoRA高出**15%。在参数预算减少近80%的情况下,FLoRA(12.77M)仍然显著优于LoRA(51.78M)和DoRA(51.95M),这验证了FLoRA成功保持了卷积的结构完整性。具体来说,FLoRA在所有参数预算下与完全微调的性能相当甚至更优,而其他方法则远远落后。此外,作者观察到,在预训练数据与任务领域差距较大的情况下,例如遥感图像(DOTA),LoRA和DoRA的性能显著下降,而FLoRA保持了始终如一的优越性。这进一步验证了FLoRA的鲁棒性,即使面对领域差距较大的任务时也是如此。此外,当FLoRA用于微调InterViT-6B时,FLoRA在所有不同参数预算下一致优于 Baseline 。值得注意的是,仅微调0.66%**的参数,FLoRA甚至比完全微调取得了更好的性能。
对于NLP任务,FLoRA在所有数据集上的所有不同参数预算下都达到了与现有方法相当或更好的性能。特别是,在极端低参数预算下,FLoRA甚至比具有更高参数计数的方法表现更佳。例如,使用0.3M参数,FLoRA在SST-2、QNLI、RTE、MRPC和STS-B上的性能都优于具有更大参数预算的 Baseline 。
对于多模态任务,FLoRA与 Baseline 相比也实现了SOTA性能。因此,在这一点上,作者可以得出结论,总体而言,FLoRA在各种任务、模型主干和参数空间的维度上取得了显著性能。
表2:在ADE20K数据集上对Chen等人[2023]的InternViT-6B进行微调的结果。
表3:在GLUE数据集上对He等人[2021]的DeBERTaV3-base进行微调的结果。
在本节中,作者探讨了当FLoRA应用于下游任务时与其他 Baseline 如LoRA相比的性质。
作者进行了一系列实证研究,以回答以下问题:
作者展示了在不同等级(即,参数预算)下FLoRA的性能,在ConvNeXt-V2-L和DeBERTaV3-base上进行测试。结果如图3所示。很明显,FLoRA在低等级时的性能与高等级相当,甚至有时超过高等级。这一发现与Hu等人(2021年)的观察结果一致。它表明,在不同的多维空间中确实存在一个核心空间,且该核心空间的等级相对较小。当设置的等级小于核心空间的等级时,模型的性能不是最优的。相反,当它超过这个等级时,核心空间被完全覆盖,这引入了一些无意义的冗余和噪声。此外,作者观察到对于卷积参数空间,其核心空间的等级要大得多,因为卷积空间具有更复杂的拓扑结构,需要更大的等级来充分描述它。
尽管像FLoRA和LoRA这样的方法可以使用低秩表示在原始参数空间中表示变化,但FLoRA的表现更佳,这表明其低秩表示优于其他形式的低秩表示。下面作者将解释原因。
在线性参数空间中,LoRA衍生物方法所建模的变更也可以简单地被视为,其中是一个对角矩阵。然而,FLoRA没有对施加任何约束,这带来了几个优点:首先,它拓宽了参数调整的范围,增强了参数学习的灵活性。其次,FLoRA去除了对的强烈正交性约束。由于正交性并不是所有下游任务的特征,在学习过程中强制正交约束可能会潜在地降低性能,如表1-3所示。最后,由于在FLoRA中初始化为零,在某些条件下,也可能学会表现出正交性质。这表明像LoRA这样的方法的低秩表示是FLoRA的一个特例,FLoRA具有更稳健的低秩表示能力,从而产生更好的性能。
对于高维参数空间,正如之前讨论的,其他方法妥协了原始参数空间的结构完整性。相比之下,FLoRA保留了它们拓扑结构,导致了更优的性能结果。
为了进一步证实对FLoRA理论优势的分析,作者在训练期间记录了DeBERTaV3-base在CoLA上的所有层的的Frobenius范数的平均值以及_Hu等人(2021年)提出的特征放大因子。这里和是的奇异值分解(SVD)的左奇异矩阵和右奇异矩阵。特征放大因子衡量了放大了多少任务特定信息。如图4所示的结果表明,在早期阶段,LoRA和DoRA可以比FLoRA放大更多的任务特定特征。正如6.2.1节所讨论的,这两种方法在开始时显示出强烈的正交性,导致它们具有更大的初始值。然而,强烈的正交性可能并不总是适合下游任务,由于下游数据集可能具有各种性质,它们在收敛时的放大因子小于FLoRA。
此外,作者发现Frobenius范数的趋势与特征放大因子惊人地一致。这可能表明较大的值可以容纳更多的任务特定信息,因此在冻结权重中更有效地放大任务特定信息。
作者还观察到,最初,LoRA和DoRA的的Frobenius范数也大于FLoRA的,因为它们可以快速捕捉到下游数据集的正交信息。然而,在收敛时,它们都小于FLoRA的,这表明FLoRA可以包含更多种类的任务特定信息属性。
作者评估了在各种配置下的训练成本。所有训练超参数(如批大小和周期)保持一致,结果如表4所示。显然,与SOTA方法DoRA相比,FLoRA在训练时间和内存占用方面更为高效,DoRA需要的时间和GPU内存显著更多。
作者报告了针对尺度在ConvNeXt-V2-L和DeBERTaV3-base上的敏感性,结果如图5所示。很明显,FLoRA的性能在合理范围内的尺度变化中相当稳定,这是实际应用中希望拥有的特性。
在本文中,作者提出了一种基于广义低秩张量分解的PEFT方法,名为FLoRA,旨在N维参数空间。FLoRA认为,每个维度参数空间中的变化在结构上与原始空间一致,包含一个低秩的核心空间。它使用这个核心空间以及相应的权重来建模更新,以重建原始变化空间。通过这种方式,FLoRA在通过低秩张量分解分解N维参数空间的同时,有效地保持了原始空间的完整性。在计算机视觉、自然语言处理和多模态领域的广泛实验证实了FLoRA的有效性。
FLoRA仍存在一些局限性。对于特定的 Backbone 网络,当缩放因子在一个宽范围内变化时,FLoRA可以在不同的数据集上实现稳定且优越的性能。然而,对于不同的 Backbone 网络,如ConvNeXt-V2-L、InternViT-6B和DeBERTaV3-base,它仍然需要不同的缩放尺度。理解在不同模型中缩放尺度的作用,并设计一个统一的尺度,是一个值得进一步研究的课题。
[1].FLoRA: Low-Rank Core Space for N-dimension