备注好友:方向-学校/公司-姓名/昵称
【AIGC 先锋科技】交流群
低秩适配(LoRA)是一种广泛采用的参数高效微调(PEFT)方法,它将两个可训练的低秩矩阵(A和B)注入冻结的预训练模型中。虽然高效,但LoRA将更新约束在固定的低秩子空间
内,这可能会限制表示能力并阻碍下游性能。
作者通过基于重要性的融合和重新初始化,引入了低秩适配中的子空间重组(SRLoRA)这一新方法,在不牺牲其轻量级结构的前提下增强了LoRA的表达能力。
SRLoRA为每个LoRA对(B的列和A的对应行)分配重要性分数,并在训练过程中动态重组子空间。重要性较低的对会被融合到冻结的主干网络中,从而释放容量以沿预训练权重的奇异值分解导出的未使用主方向重新初始化新的对。
这种机制能够实现子空间的持续刷新和更丰富的随时间推移的适配,而无需增加可训练参数的数量。作者在语言和视觉任务上评估了SRLoRA,包括GLUE基准和各种图像分类数据集。
SRLoRA始终在标准LoRA上实现了更快的收敛和更高的准确率,展示了其通用性、效率和更广泛的PEFT应用的潜力。
引言
微调大型预训练模型是视觉和语言领域取得最先进结果的关键[1][12],但完整的微调更新所有参数,导致高昂的计算和存储成本[5]。这限制了其在多任务适应和资源受限环境中的应用。
为应对这些挑战,参数高效微调(PEFT)方法[6]已成为一种引人注目的替代方案。这些方法通过引入轻量级模块[4][7]或对模型进行修改[8][16]来减少可训练参数的数量,从而在保留大部分预训练权重的同时实现高效适应。其中,
低秩适配(LoRA)[5]因其简单性和强大的经验性能而脱颖而出。LoRA引入了两个低秩可训练矩阵
和
,以生成更新
,同时保持原始权重
冻结。这允许模型通过仅修改少量参数进行微调。
尽管LoRA效率很高,但它存在一个关键限制:参数更新被限制在一个固定的低维子空间中。这种限制可能导致表达能力不足和性能下降,特别是在需要更丰富适应能力任务中[5]。一旦低秩方向被初始化,LoRA在训练过程中缺乏探索或扩展其更新空间的机制。
为克服这一限制,作者提出基于重要性融合与重新初始化的子空间重组低秩适配(SRLoRA)。llm-SRLoRA_2505通过在训练过程中动态修改其更新子空间,增强了LoRA的灵活性,同时不改变LoRA的结构简单性,也不增加可训练参数数量(见图1进行比较)。核心思想是识别重要性较低的更新方向(即B中的列对和A中对应的行),将其贡献合并到冻结的预训练权重中,并使用从原始权重矩阵的奇异值分解(SVD)中得到的未使用的主方向重新初始化它们。然后对这些重新初始化的对进行调整,以保持与冻结主干的一致性,使SRLoRA能够回收并探索参数空间中的新方向。
通过这种子空间重构机制,SRLoRA显著提升了LoRA的表达能力,同时保持了其效率。作者在视觉和语言任务上对SRLoRA进行了评估,
包括使用视觉Transformer进行图像分类和使用DeBERTa-v3-base进行自然语言理解,展示了更快的收敛速度和性能提升。作者的贡献如下:
i. 作者识别并解决了一个LoRA的核心限制:其无法扩展更新子空间以超出初始低秩方向,这限制了其微调能力。
ii. 作者提出了SRLoRA,一种通过融合信息量较少的组件到冻结权重中,并使用未使用的SVD方向重新初始化它们,从而动态重组LoRA更新空间的新方法,且不增加可训练参数数量。
iii. 作者在视觉和语言任务上实证验证了SRLoRA,结果表明其在收敛速度和最终精度上均优于标准LoRA,突显了其通用性和有效性。
2 相关工作
参数高效微调(PEFT)方法[15]已成为有效策略,用以降低大规模预训练模型全量微调所关联的过高的计算和存储成本[2]。PEFT方法并非更新所有模型参数,而是引入轻量级可训练组件,同时冻结模型的大部分参数,从而实现跨不同任务的规模化适应。
低秩适配。在参数高效微调(PEFT)方法中,LoRA [5] [18][10] 因其简单性和强性能而广受欢迎。LoRA用低秩可训练矩阵A和B替换全秩权重更新,生成更新量
。这导致最终输出形式为:
,其中
是冻结的预训练权重矩阵。通过显著减少可训练参数数量,LoRA能够在实现接近或等同于全量微调的性能的同时,实现高效的微调。
然而,LoRA的表达能力从根本上受到适应矩阵固定秩
的限制。一旦初始化,更新子空间在整个训练过程中保持静态,这可能会限制其捕捉多样化任务特定变化的能力。
自适应秩方法。为解决表达能力 Bottleneck 问题,已有几种方法[18][13]探索了自适应秩策略。AdaLoRA[18]基于敏感性评分机制在训练过程中动态调整秩,从而更有效地在层间分配参数容量。DyLoRA[13]在一系列秩范围内训练LoRA模块,通过分析训练过程中不同秩下的表征来识别最优配置。这些方法突出了子空间灵活性的重要性,表明静态低秩近似在某些任务中可能存在局限性。
初始化策略。另一个活跃的研究方向是通过更智能的低秩矩阵初始化来改进LoRA [5][10][14]。不良的初始化会阻碍收敛并限制适应能力(例如,用
初始化
,用0初始化
)。PiSSA [10] 引入了一种基于SVD的、对敏感性感知的初始化方法,使低秩子空间与预训练权重的最重要方向对齐。具体来说,它将LoRA矩阵初始化为:
其中U、S和
是从原始权重矩阵
的SVD分解中获得的。残差分量表示为:-
确保适应权重和冻结权重之间的互补性。类似地,LoRA-GA [14] 使用从
的奇异向量中派生的基于梯度的信息来指导
和
的初始化,促进适应子空间与任务相关梯度的对齐。
作者的观点:动态子空间重组。尽管现有工作集中于调整秩或改进初始化,但这些策略并未解决LoRA更新子空间在初始化后保持固定的核心限制。相比之下,llm-SRLoRA_2505SRLoRA引入了一个新方向:在固定的参数预算内进行动态子空间重组。具体而言,SRLoRA定期识别信息量较低的适应方向(即B和A中的低重要性列行对),将它们融合到冻结的预训练权重中以保留其贡献,并使用先前未使用的SVD分量重新初始化相应参数。这使得模型能够回收低秩能力,从而在整个训练过程中持续探索新子空间。与自适应秩方法不同,llm-SRLoRA_2505保持了可训练参数的恒定数量,在效率和表达能力之间取得了更好的平衡。
3 方法
SRLoRA通过在训练过程中动态重组更新子空间来解决固定秩LoRA的表达能力 Bottleneck 。与静态分配固定子空间的现有方法不同,SRLoRA识别出未充分利用的LoRA组件,将它们融合到基础模型中,并使用预训练权重矩阵中未使用的奇异方向重新初始化它们的子空间。这种机制使LoRA能够在不增加可训练参数总数的情况下探索更大的功能子空间。
该方法分为四个关键阶段:(i) 对冻结的预训练权重执行SVD以提取排序的基(见图2(a));(ii) 使用基于敏感性的标准估计每个秩为1的LoRA组件的成对重要性分数;(ii) 将低重要性组件融合到基础模型中并丢弃其可训练参数(见图2(b));以及(iv) 使用下一个未使用的SVD方向重新初始化这些秩,同时从基础权重中减去它们的贡献以防止冗余。作者现在介绍llm-SRLoRA_2505。
预训练权重的SVD。给定一个冻结的预训练权重矩阵
,作者计算其SVD:
其中
和
分别是包含左奇异向量和右奇异向量的正交矩阵,而
按降序包含奇异值。这里,
。LoRA 引入了一个秩为
的可训练更新
,其中
和
。作者采用 PissA [10] 初始化方法,使自适应子空间与
的前
个奇异方向对齐。
这种初始化确保低秩投影
从与预训练参数空间中最重要的轴对齐开始,从而促进快速收敛和稳定性。
3.1 基于重要性的融合与重新初始化
基于敏感性的重要性估计。模型参数的敏感性通常通过梯度权重乘积来估计,该指标最初在[11]中提出,并在后续的[9]和[17]中进行了改进。该分数量化了训练损失受模型中每个单独参数影响的程度。位置为
的参数的敏感性定义为:
其中
是模型参数的值,
表示损失函数
相对于该参数的梯度。绝对值确保了重要性始终为非负值,无论梯度方向如何。这种公式提供了一种一阶泰勒近似,用于表示当参数
被置零时损失的增加。直观上,如果移除一个参数会导致损失大幅增加,则称模型对该参数高度敏感。因此,
作为参数重要性的 Agent 指标[9, 11, 17]。
然而,当在单个mini-batch上计算时,这种敏感性度量可能会表现出很高的方差。这是由于批次采样中的固有随机性以及训练动态的随机性质所导致的。因此,依赖原始敏感性分数可能导致噪声或不稳定的重要性估计[17]。为了缓解这个问题,Zhang等人[17]引入了一种平滑技术,通过敏感性及其不确定性的指数移动平均(EMA)来稳定重要性估计。
其中
是一个平滑系数,用于平衡过去和当前重要性值的贡献。这里,
表示
在迭代
时的瞬时重要性,而
则代表其指数平滑估计值。这种公式将历史重要性信号进行聚合,从而得到一个更稳定和鲁棒的随时间变化的度量。
除了跟踪平滑敏感性外,作者还使用独立的指数移动平均法估计每个参数重要性的局部不确定性:
其中
控制对近期变化的适应速率。该不确定性估计捕捉了重要性分数的短期波动性,衡量参数贡献在平滑值
周围波动的稳定性。为了计算参数
在迭代
时的最终重要性分数,作者将其平滑敏感性与不确定性估计值相乘:
这种公式鼓励模型优先考虑那些不仅始终重要(体现在高
上),而且稳定可靠的参数(由低偏差
所指示)。虽然AdaLoRA[18]在SVD三元组上计算重要性,但llm-SRLoRA_2505保留了原始的LoRA分解,其中低秩更新被建模为
,其中
和
。作者不是评估三元组,而是评估B和A中每个列-行对推导出的秩-1分量的重要性。对于第
个秩-1分量,其重要性得分是通过聚合
中相应列和A中相应行的权重的重要性得分来计算的:
其中
是矩阵 B 中第 k 列的第 i 个元素,而
是矩阵 A 中第 k 行的第 j 个元素。该分数提供了一个稳健且可解释的度量标准,用于识别后续可以融合或重新初始化的低重要性 LoRA 组件。
融合低重要性对。在预定义的间隔内,作者根据重要性分数
对LoRA组件进行排序,并识别出排名最低的子集。作者定义融合比率
,并令
表示要回收的排名数量,其中
。作者将更新拆分为:
此处
和
分别表示低重要性和高重要性索引集。低重要性更新被融合到冻结权重矩阵中:
随后,相应的LoRA参数
和
被丢弃,从而减少了活跃参数的数量。
LoRA组件的重新初始化。在识别并融合低重要性LoRA组件后,作者重新初始化相应的低秩矩阵以探索先前未使用的子空间。这种重新初始化由冻结预训练权重矩阵
的SVD指导。在训练开始时,作者使用PiSSA方法初始化LoRA矩阵A和B,该方法选择
的前
个主成分,以提供有信息的起始子空间。在子空间重组阶段,作者识别低重要性组件对
,并将它们的贡献融合到当前的冻结权重
中。
作者随后使用
的SVD中下一个未使用的奇异方向重新初始化这些排名。具体来说,如果
,并且
表示最后使用的奇异方向的索引,作者选择下一个
奇异向量来构建新的基:
是被重新初始化的秩的数量。
为了避免重复子空间贡献,作者从当前冻结的权重矩阵中减去新初始化的低秩投影:
这种减法确保新添加的方向与当前激活的子空间正交,从而保持模型的表示多样性。最后,作者将所有LoRA组件的重要性分数重置,为下一个训练间隔做准备。
3.2 子空间重构LoRA
作者现引入SRLoRA,这是一种动态低秩自适应策略,通过识别并融合不重要的高秩分解(LoRA)组件到预训练模型权重中,并使用先前未使用过的奇异方向重新初始化它们,从而迭代地重组低秩子空间。这使得模型能够逐步探索新的、正交的低秩子空间,从而更好地捕捉特定任务的信息。SRLoRA在算法1中详细描述。
为了量化SRLoRA扩展其表示子空间的程度,作者定义了一个超参数
,表示SRLoRA可以探索的最大允许子空间秩。基于此,切换操作的数量计算如下:
其中
是初始LoRA秩,
是回收秩的数量。因此,切换间隔
定义为:
间
隔
总
开
关
其中
表示训练步骤总数,
表示切换事件总数。在由切换迭代集
指定的定期间隔内,SRLoRA 计算LoRA组件的重要性分数,并将重要性最低的组件选择性融合到冻结的预训练权重中。随后,使用原始预训练权重的SVD分解中未使用的奇异向量重新初始化释放的排名。为保持正交性并防止重复,新初始化的组件会从冻结权重中减去。在切换间隔之间,标准训练以基于梯度的更新进行,期间使用指数移动平均跟踪基于敏感性的重要性分数。这些分数指导下一次融合和重新初始化周期。
在下一节中,作者展示作者的实验和结果。
4 实验
4.1 设置
GLUE基准测试。作者在六个具有代表性的GLUE任务上进行评估,涵盖单句分类(SST-2用于情感分类,CoLA用于语法可接受性分类)、句子对分类(MRPC用于释义检测,QNLI用于问答,RTE用于文本蕴涵)以及句子对回归(STS-B用于语义相似度)。详细信息汇总于表1。
杨浩东、王雷和Md Zakir Hossain:研究报告
图像基准测试。llm-SRLoRA_2505也在CIFAR-100、STL-10和MNIST上进行了测试,涵盖了不同的分辨率和复杂度。CIFAR-100包含10个类别共60,000张彩色图像;STL-10提供10个类别共5,000张 Token 图像以及100,000张 未标注 样本;MNIST包含70,000张灰度手写数字图像。这些数据集为模型适应性提供了广泛的评估。
实现细节。作者在GLUE基准测试的子集上使用DeBERTa-v3-base模型[3]比较SRLoRA、LoRA和PiSSA。实验在单个AMD Instinct MI250X GPU上使用PyTorch(FP32)和PEFT库运行。所有方法均一致使用AdamW。学习率、批大小和训练轮数等超参数列于表2。
对于所有GLUE任务,最大序列长度固定为128个token,低秩维度
,缩放因子
,不使用dropout以确保公平比较。SRLoRA在每个切换步骤中进行子空间融合,融合比率为
。作者采用文献[18]中的默认设置
,设置预热步骤为500,不使用权重衰减。每500步评估模型,选择验证损失最低的预训练权重作为最终模型。为验证泛化能力,作者还使用Vision Transformers进行图像分类评估。作者使用在ImageNet-21K上预训练的ViT-B/16(vit-b16-224-in21k),使用PyTorch Lightning 2.0.2和16位混合精度在单个GPU上进行训练。LoRA秩和缩放因子固定为
和
。训练步骤为5000步,使用SGD优化器、余弦学习率调度器和500步预热。每500步进行评估。
4.2 评估
使用SRLoRA实现更快更有效的早期训练。图3(a)展示了在相同超参数下,使用LoRA、PiSSA和所提出的SRLoRA微调DeBERTa-v3-base时的训练损失曲线。值得注意的是,SRLoRA在初始阶段显著加速了训练损失的降低,在最初的2,000步内就收敛到更低的损失,相比之下LoRA和PiSSA表现较差。这种加速收敛反映了SRLoRA通过其子空间重组策略,在训练早期就能更有效地利用低秩子空间的能力,该策略将低重要性分量动态融合回预训练权重,并用未使用的特征方向重新初始化它们。这种对低秩表示的持续刷新使得子空间更具表达能力,并实现高效的梯度更新,从而推动更快的优化。
高秩奇异向量在子空间自适应中的主导作用。图4量化了SRLoRA组件在各个层中活跃区间的方差,该数据源自图5中详细的对偶分析。每个SRLoRA增强模块维护32对候选秩对,这些秩对对应于按奇异值降序排列的SVD初始化奇异向量。作者观察到,与较大奇异值相关的对在训练过程中始终活跃于更长的区间,这与式(3)中定义的重要性评分一致。活跃区间的较高方差表明,高秩奇异向量主导了自适应过程,导致子空间聚焦范围更窄。相反,较低的方差反映出各秩之间参与度更均匀,表明在高秩处具有更大的子空间灵活性和自适应能力。这一见解展示了SRLoRA如何选择性地强调关键主成分,同时动态管理表征能力。
在具有挑战性的视觉任务上取得稳健的性能提升。将评估范围扩展至自然语言处理之外,作者将LoRA和SRLoRA在在CIFAR-100、STL10和MNIST数据集上微调的ViT模型上进行比较(表4)。SRLoRA在复杂任务中展现出明显的优势。
CIFAR-100,其中动态重新分配表征能力对于提升性能至关重要。虽然传统的LoRA在MNIST等简单或饱和任务上仍然具有竞争力,但SRLoRA的自适应重新初始化和融合机制使其在更具挑战性的数据集上能够实现更低的训练损失和更好的收敛稳定性。
值得注意的是,在训练4000步之后,尽管不同方法之间的损失值趋于收敛,SRLoRA始终保持着微弱的优势,这凸显了其通过持续子空间重组所实现的训练稳定性和效率提升。
5 结论
作者提出了SRLoRA,一种通过将不重要的高秩适配(LoRA)组件重新融合回冻结权重并使用预训练权重的SVD中未使用的特征方向重新初始化来动态增强低秩适配的新方法。与PiSSA等静态方法不同,SRLoRA在训练过程中回收未充分利用的子空间维度,从而在不增加可训练参数的情况下实现持续适配。作者在GLUE基准测试和视觉Transformer图像分类任务上的实验表明,SRLoRA具有有效性,尤其是在静态低秩方法不足的复杂任务上。虽然简单数据集上的收益不太明显,但SRLoRA提供了一种通用且高效的方法来提高LoRA微调的适应性。未来的工作包括开发一种自适应切换调度策略,该策略根据训练动态(如重要性分数收敛或损失停滞)触发融合和重新初始化,以确保每个子空间组件的最优训练,并提高整体效率和稳定性。
郝东杨在 Lei Wang 和 Md Zakir Hossain 的指导下进行了这项研究,作为他在澳大利亚国立大学(ANU)硕士毕业研究项目的一部分。这项工作得到了澳大利亚政府资助的高性能计算设施——Pawsey超级计算中心提供的计算资源支持。
参考
[1]. SRLoRA: Subspace Recomposition in Low-Rank Adaptation via Importance-Based Fusion and Reinitialization.