秩稳定化缩放因子:rsLoRA

A Rank Stabilization Scaling Factor for Fine-Tuning with LoRA

Damjan Kalajdzievski(Tenyx)· arXiv: 2312.03732 · 2023

摘要(中文)

随着大语言模型日益计算与内存密集,参数高效微调(PEFT)已成为微调 LLM 的常用策略。流行的 PEFT 方法是 低秩适配器(LoRA),它在选定的层添加可训练的低秩"适配器"。每个适配器由一个低秩矩阵乘积构成,并乘上一个依赖秩的缩放因子

该缩放因子(将适配器除以一个秩的因子)会导致高秩适配器的学习变慢、性能受阻,因此实践中 LoRA 通常被限制在非常低的秩。本文研究缩放因子对学习过程的影响,并证明 LoRA 适配器应除以秩的平方根。我们称采用正确缩放因子的方法为秩稳定化 LoRA(rsLoRA),它轻松提供了微调的计算/性能权衡——用更大的秩在训练时换取更好的微调性能,且推理计算成本不变。

English Abstract: This scaling factor, which divides adapters by a factor of the rank, results in slowed learning and stunted performance for LoRA with higher-rank adapters... we prove that LoRA adapters should be divided by a factor of the square root of the rank.

1. 引言

大语言模型在 NLP 领域日益强大,成功应用于机器翻译、疾病预测、机器人控制策略代码生成、聊天助手等。虽然其固有的泛化能力惊人,但下游任务性能往往需要微调,而这会带来巨大的计算资源需求。

为应对这些问题,业界近期提出了大量计算高效的微调方法,旨在优化一组缩减的参数并达到与全模型微调相当的性能。其中最相关的是 低秩适配器(LoRA)——在预训练模型的部分参数矩阵上添加由"低秩矩阵乘积 × 缩放因子"构成的适配器,在微调时优化。

本文分析 LoRA 适配器的缩放因子。我们的分析证明:LoRA 适配器应除以秩的平方根,而非传统 LoRA 实现中除以秩。我们通过实验验证 rsLoRA 相比标准 LoRA 在性能与学习稳定性上的优势。

2. 背景:LoRA 回顾

LoRA 将预训练网络的一个线性子模块(参数 W∈Rd2×d1, b∈Rd2,映射 xout=Wxin+b)用适配器增强为:

xout = (W + γrBA)·xin + b

其中 A∈Rr×d1B∈Rd2×r,γr∈R+ 为缩放因子。微调后,单一矩阵 (W+γrBA) 被存储并替换 W 使用,因此推理时没有额外计算成本。适配器 γrBA 的秩被约束为至多 r(通常远小于 d1,d2)。B 初始化为零(B=0d2×r),A 的条目独立同分布、均值 0。传统 LoRA 设:

γr = α/r(标准 LoRA)

后续方法 AdaLoRA(Zhang et al. 2023)根据可用计算预算在训练中动态分配秩。因 AdaLoRA 使用与 LoRA 相同的 γr,本文提出的缩放因子优化也能改进 AdaLoRA。

我们将证明:LoRA 中 γr=α/r 的设定过于激进,导致梯度坍缩(gradient collapse)——大秩与小秩的性能无差别。这或许误导了原作者得出"极低秩(4,8,16)即可"的结论。

3. rsLoRA:秩稳定化适配器

为推导最优缩放因子,我们沿用 Yang & Hu 2022 的扩散-初始化-更新(scaling-initialization-update)框架分析。需要确保 γr 的选择是"正确"的,使矩阵 γrBA 在训练全过程对所有秩都稳定,同时 γr 又不过于激进以致梯度坍缩或学习变慢。

📌 秩稳定化定义(Definition 3.1): 一个适配器 γrBA 是秩稳定化的,若满足:

1. 若适配器输入独立同分布且第 m 阶矩为 Θr(1),则适配器输出的第 m 阶矩也为 Θr(1);

2. 若损失对适配器输出的梯度为 Θr(1),则损失对适配器输入的梯度也为 Θr(1)。

利用极限 r→∞ 的分析,我们证明:唯一(模一个加法常数)产生秩稳定化适配器的 γr 设定是:

γr = α/√r(rsLoRA)
📌 Theorem 3.2: 考虑形式为 γrBA 的 LoRA 适配器(B 初始化为 0d2×r,A 的条目独立同分布、均值 0)。在初始化期望意义上,所有适配器都秩稳定化当且仅当 γr ∈ Θr(1/√r)。

这解释了为什么 α/√r 正确:LoRA 训练中 ΔW 的谱范数与 √r 成正比,用 α/√r 可使缩放因子与秩解耦,让不同秩的适配器有一致的有效学习率(即"秩稳定化")。

4. 缩放因子对比

秩 rα/r(标准 LoRA)α/√r(rsLoRA)
40.250α0.500α
160.063α0.250α
640.016α0.125α
2560.004α0.063α
📌 为什么有效:

· 标准 LoRA:梯度随秩增大而坍缩,更大秩表现与低秩无异。

· rsLoRA:梯度不坍缩,更高秩带来更好性能。

· 结论:更高秩可在训练时用更多算力换取更好的微调性能,而推理计算成本完全不变(适配器形式与 LoRA 完全相同)。

5. 结论

本文证明 LoRA 适配器应除以秩的平方根(α/√r)而非秩(α/r)。我们的 rsLoRA 方法通过秩稳定化缩放因子,让更大秩真正提升性能,提供了清晰的微调计算/性能权衡。因为适配器形式与标准 LoRA 完全一致,rsLoRA 对任何推理成本都没有额外影响。这也解释了为何此前 LoRA 缩放规律(PLoRA(r) ∝ r0.2 趋于饱和)在 rsLoRA 下变为持续提升(∝ log r)。

📚 本文由 ar5iv 原文翻译为中文,数学公式采用 HTML 上下标 + Unicode 渲染