LORA 综述:大语言模型低秩适配技术研究与实战

论文:https://link.springer.com/article/10.1007/s11704-024-40663-9
年份:2025

0.综述概要

#picture_center

摘要

近年来,大语言模型(LLMs)参数量持续膨胀,使得全量微调在算力与存储方面成本高昂。LORA(Low-Rank Adaptation)作为参数高效微调(PEFT)中最具代表性的技术,通过对模型权重矩阵进行低秩分解,实现仅训练少量新增参数的目标,大幅降低显存与计算消耗,现已成为工业界部署大模型的主流方案。本文对 LORA 原理、性能优势、研究趋势与典型改进方向进行梳理,并结合 HuggingFace PEFT 框架给出相关代码示例,旨在为大模型实际落地提供系统参考。

1.引言

随着模型规模不断扩张,参数高效微调方法受到越来越多关注,其中 LORA 由于其高效率与灵活性,已成为大型语言模型适配的主流选择。
尽管 LoRA 在部分下游任务上表现出良好的适配性能,但在数学推理 等诸多任务中,其性能仍与全量微调存在差距。为填补这一差距,研究者提出了多种优化方法,主要从以下四个角度提升 LoRA 的下游适配性能:
(1)突破低秩瓶颈
(2)为不同 LoRA 模块动态分配秩
(3)优化 LoRA 的学习过程;
(4)结合其他学习范式。

2.LORA的技术原理及提升方法

LORA 通过对模型参数更新部分进行低秩分解,仅训练新增矩阵参数,从而减少适配成本。 #picture_center
对于线性层收重 W 0 ,  LoRA 不直接更新权重,而是学习低秩更新 : W = W 0 + a B A \text{对于线性层收重}W_0,\text{ LoRA 不直接更新权重,而是学习低秩更新}:W=W_0+aBA 对于线性层收重W0, LoRA 不直接更新权重,而是学习低秩更新:W=W0+aBA

2.1突破低秩瓶颈

低秩更新赋予 LoRA 参数高效性的同时,也限制了 LLM 对下游知识的记忆能力和泛化能力。这种低秩限制导致 LoRA 在代码、数学等知识密集型和技能密集型领域的性能显著低于全量微调。为提升 LoRA 的秩并优化性能,研究者提出了多种方法 ,主要通过以下三种方式增加秩:
(1)沿学习迭代过程堆叠 LoRA 模块
(2)将 LoRA 作为梯度压缩器更新
(3)微调过程中联合更新 LLM 和 LoRA 模块。

2.1.1沿微调过程堆叠 LoRA

核心基础:秩的次可加性
对于两个同尺寸矩阵 M 1 和 M 2 M_1和M_2 \mathrm{} M1M2,其和的秩满足 r a n k ( M 1 + M 2 ) ≤ r a n k ( M 1 ) + r a n k ( M 2 ) 。 rank(M_1+M_2)\leq rank(M_1)+rank(M_2)\mathrm{。} rank(M1+M2)rank(M1)+rank(M2)
这一特性意味着:多个 LoRA 矩阵的 “堆叠”(总和)的秩,理论上不超过各 LoRA 秩的总和。因此,通过聚合多个 LoRA 模块,有可能突破单个 LoRA 的低秩瓶颈,提升整体更新的秩。在微调过程中定期将 LoRA 模块合并至 LLM,然后重新初始化 LoRA 模块,相当于沿微调过程堆叠多个 LoRA 模块,从而提升整体更新的秩。(ReLoRA)

2.1.2作为梯度压缩器更新

FLoRA(Flexible LoRA)的核心创新,就是针对 LoRA 的 “固定投影” 问题,提出 “动态重新采样随机投影矩阵”,具体逻辑如下:
1.不再固定投影矩阵:FLoRA 会在训练过程中(如每迭代一定步数后),重新随机生成投影矩阵,而不是像 LoRA 那样从训练开始到结束用同一个投影矩阵。
2。突破固定低秩子空间:重新采样投影矩阵,相当于每次更新时 “换一条新的直线” 来探索更新方向 —— 虽然每次仍在低秩子空间内移动,但通过 “动态切换子空间”,整体上覆盖了更接近 “全二维平面”)的探索范围。
3.兼顾效率与性能:FLoRA 仍保持 “低秩梯度压缩” 的优势(计算 / 存储成本远低于全矩阵 SGD),同时通过动态投影打破了 LoRA 的性能瓶颈。

2.1.3联合更新 LLM 和 LoRA

不直接更新 LLM 主模型,而是通过 “连续两次迭代中 LoRA 模块的参数差异(ΔLoRA)”,间接更新 LLM 的高秩参数。整个过程无需额外存储主模型的梯度或更新参数,因此保持了内存效率。
具体更新公式(核心): W L L M , t + 1 = W L L M , t + α ⋅ Δ A ⋅ Δ B ; \text{具体更新公式(核心):}W_{\mathrm{LLM},t+1}=W_{\mathrm{LLM},t}+\alpha\cdot\Delta A\cdot\Delta B; 具体更新公式(核心):WLLM,t+1=WLLM,t+αΔAΔB; 其中 α 是“更新系数” , 用于控制 L L M 主模型的更新幅度 ( 避免更新过大导致过拟合 ) ; 其中\alpha 是“更新系数”,用于控制LLM主模型的更新幅度(避免更新过大导致过拟合); 其中α更新系数,用于控制LLM主模型的更新幅度(避免更新过大导致过拟合); Δ A ⋅ Δ B  是低秩差异的“乘积” \Delta A\cdot\Delta B\text{ 是低秩差异的“乘积”} ΔAΔB 是低秩差异的乘积

2.2 动态秩分配

LoRA 的秩并非越高越好 —— 过多的秩可能导致性能和效率下降。此外,微调过程中 Transformer 不同层的权重重要性存在差异,需为各层分配不同的秩 。因此,为所有层的 LoRA 模块分配相同秩并非最优选择,需自适应分配秩。现有方法主要从以下三个角度实现动态秩分配:
(1)奇异值分解(SVD);
(2)单秩分解(SRD);
(3)秩采样。

2.2.1基于 SVD 的方法

任意矩阵BA可分解为(维度为d×d): B A = P Λ Q T BA=P\Lambda Q^T BA=PΛQT,其中:
P : P{: } P: d × r d\times r d×r正交矩阵(列向量两两正交),代表“下行投影方向”;
Q T : r × d Q^T:r\times d QT:r×d正交矩阵(行向量两两正交),代表“上行投影方向”;
Λ : \Lambda {: } Λ: r × r r\times r r×r非负对角矩阵,对角元素为奇异值(按从大到小排序),奇异值的大小直接反映该维度对 B A BA BA贡献的“重要性”———奇异值越大,对应维度对模型微调效果的影响越关键

2.2.2基于 SRD 的方法

SVD 的正交性正则化会带来不可忽视的计算成本,降低 LoRA 效率。为此,部分方法省略正交性要求,通过单秩分解(SRD)将 LoRA 参数矩阵BA分解为单秩组件,再通过筛选组件分配秩。

2.2.3基于秩采样的方法

DyLoRA(Dynamic Low-Rank Adaptation)是一种基于秩采样的动态低秩适应方法,旨在解决传统基于分解的微调方法(如 LoRA)在秩选择上的计算成本高和灵活性不足的问题。其核心思想是通过随机采样动态分配秩,避免了全局搜索最优秩的额外开销,同时通过参数共享和冻结策略保持高效性。

2.3学习过程优化

实际应用中,LoRA 的收敛速度慢于全量微调,且对超参数敏感、易过拟合 —— 这些问题影响了 LoRA 的效率和下游适配性能。为此,研究者提出多种方法优化 LoRA 的学习过程,主要分为三类:
(1)初始化优化;
(2)梯度更新优化;
(3)过拟合缓解。

2.3.1初始化优化

LoRA 的初始化围绕低秩矩阵 A 和 B 的初始值设计,核心目标是让 “初始扰动” 既能启动训练,又不破坏预训练模型的基础能力。主流有两种简单方案:Init [A] 的做法是对矩阵 A 进行高斯噪声随机初始化,同时将矩阵 B 全零初始化。这是更优的选择:由于 B 初始为零,初始阶段的低秩扰动 BA 接近零,对预训练权重的影响极小,模型能以 “温和调整” 的方式启动训练,因此可兼容更大的学习率,避免因初始扰动过大导致的训练崩溃,学习效率更高。不过它也有缺陷 —— 随机初始化会导致初始梯度较小,收敛速度偏慢。另一种方案是 Init [B],即对矩阵 A 全零初始化,矩阵 B 用高斯噪声随机初始化。这种方案虽同样能让初始扰动为零,但由于反向传播时梯度传播路径不同,无法适配大学习率,训练稳定性较差,学习效率也低于 Init [A],因此通常不被优先选择。

2.3.2梯度更新优化

为进一步提升 LoRA 的收敛性和可靠性,多项研究从梯度更新角度进行优化。
1.基于黎曼优化的缩放梯度方法核心创新是在梯度更新步骤中引入(r \times r)的预条件项(可理解为对梯度的 “缩放” 或 “调整” 矩阵),通过黎曼优化框架优化梯度更新过程,最终提升了 LoRA 的收敛速度和对超参数(如秩r)的鲁棒性(即超参数微小变化时,模型性能更稳定)。
2.LoRA+通过理论分析发现,LoRA 中低秩矩阵A(输入投影)和B(输出投影)的学习率设置需成比例,而非统一学习率。这种比例学习率能更稳定地学习数据特征,从而加速模型收敛。
3.ResLoRA在 LoRA 结构中引入残差连接(类似 ResNet 的 “跳跃连接”),优化梯度在训练中的传播路径(避免梯度消失或爆炸),不仅加速了训练收敛,还直接提升了模型的最终性能。
4.SIBO聚焦于缓解 “过平滑” 问题(模型训练中特征逐渐趋同,丧失区分度),通过在 LoRA 的输入中注入初始 token 表示的残差连接(保留原始特征的 “锚点”),维持特征的多样性,缓解过平滑。
5.无梯度优化方法(CMA-ES、FWA 等)为降低计算资源需求,采用无梯度优化算法(如协方差矩阵自适应进化策略 CMA-ES、 fireworks 算法 FWA)替代传统梯度下降来优化 LoRA 参数。在少样本自然语言理解(NLU)任务中表现出竞争力,适合资源受限场景。
6.DoRA(Weight-Decomposed LoRA)将预训练权重分解为 “方向” 和 “幅度” 两个分量,仅对 “方向分量” 应用 LoRA 的低秩更新,约束梯度更新聚焦于参数的方向变化(而非幅度),从而提升训练稳定性(减少更新波动)。

2.3.3过拟合缓解

尽管 LoRA 通过低秩矩阵分解大幅减少了可训练参数,但研究发现其仍易出现过拟合(与早期认为 “参数少则不易过拟合” 的观点相反)。针对这一问题,目前已有多种优化思路:
1.BiLoRA 采用双层优化策略,通过在训练数据的不同子集上交替训练低秩增量矩阵的奇异向量和奇异值,避免在单一数据集上同时优化不同层级的参数,从而缓解过拟合;
2.直接对 LoRA 的参数应用 dropout 技术以抑制过拟合;
3.HiddenKey 则采用更精细的 dropout 策略,对注意力层使用列级 dropout,对前馈层使用元素级 dropout,针对性地缓解过拟合。

3. 跨任务泛化

LoRA 的可插拔特性允许用户积累不同任务的 LoRA 插件 —— 例如在 Hugging Face 平台上,已有超过 20,000 个与各类 LLM 兼容的 LoRA 插件,覆盖不同任务。这些积累的 LoRA 插件不仅可独立使用,还可通过混合实现跨任务泛化 [60]。多 LoRA 插件混合(即 LoRA 混合)已广泛应用于多任务学习、领域适配、持续学习等需要跨任务泛化的场景。现有 LoRA 混合方法主要分为三类:
(1)手动设计权重混合;
(2)学习权重混合;
(3)LoRA 专家混合。

在 GLUE 基准测试中,RoBERTa-base 模型的 LoRA 及其变体的性能。我们报告 CoLA 的马修斯相关系数、STS-B 的皮尔逊相关系数以及其他数据集的准确率。结果根据文献 [9,32,45,89,90] 中报告的结果进行报告
picture_center

picture_center

3.1手动设计权重混合

手动设计权重混合无需额外训练即可快速混合多个 LoRA,具有简洁性和计算高效性,但难以找到最优权重,导致性能不稳定、泛化能力有限。为此,研究者探索基于学习的方法实现更精准、自适应的混合。

3.2学习权重混合

1.任务级方法:聚焦任务迁移能力
可分为有梯度基:基于梯度信息优化权重混合。无梯度基:采用黑箱优化(如 CMA-ES)算法直接优化 LoRA 模块的权重因子,简化训练流程。
2.实例级与 token 级方法:适配复杂输入的灵活策略
实例级:通过实例特征编码动态筛选 LoRA 组件,在 “单个输入” 层面生成专属混合策略。
token 级:通过门控网络结合 token 和层的特征,在 “细粒度单元 + 网络层” 层面分配权重。

3.3LoRA专家混合

LoRA MoE 将每个 LoRA 模块作为 “专家”,通过路由网络为这些专家分配混合权重,实现混合权重与 LoRA 模块的联合学习,从而进一步提升模型性能。目前已在持续学习、视觉 - 语言任务、多任务医疗应用等多个领域被验证有效。
现有研究主要从初始化、任务关系管理、效率三个角度优化 LoRA MoE 的性能。

4. 效率提升

随着 LLM 的普及,LoRA 模块的训练和运行需求快速增长,带来了不可忽视的计算负担 —— 因此,LoRA 的参数规模越小、速度越快越好。为满足这一需求,现有方法从以下三个角度提升 LoRA 的计算效率:
(1)参数缩减
(2)参数量化
(3)并行 LoRA 计算框架

picture_center

4.1参数缩减

LoRA 已显著减少 LLM 微调的可训练参数,但更新低秩矩阵仍需大量激活内存。为进一步降低内存成本,现有方法通过参数冻结、参数剪枝和参数共享,减少 LoRA 的可训练参数。

4.1.1参数冻结

参数冻结方法通过冻结部分 LoRA 参数,减少可训练参数数量,分为内部参数法和外部参数法两类。内部参数法仅微调 LoRA 的部分参数,冻结其余参数;外部参数法冻结 LoRA 的原始参数,引入并微调一组额外参数,这类方法大多基于奇异值分解(SVD)。

4.1.2参数剪枝

参数剪枝方法旨在在训练和推理过程中移除不重要的 LoRA 参数,分为独立剪枝 LoRA 和联合剪枝 LoRA 与 LLM 两类。

4.1.3参数共享

参数共享方法通过在 LLM 的不同层或模块间共享参数,减少参数数量。

4.2 参数量化

量化通过降低参数的位宽(例如从 32 位浮点数降至 4 位整数),减少 LoRA 的内存和计算成本。现有量化感知 LoRA 方法分为基于训练后量化(PTQ)的方法和基于量化感知训练(QAT)的方法

4.2.1基于 PTQ 的方法

这类方法先量化 LLM,再微调量化模型(即量化与微调顺序执行)。QLoRA 是首个基于 PTQ 的量化感知 LoRA 方法:微调阶段先将 LLM 量化至 4 位,再以更高精度(如 BFloat16 或 Float16)在量化模型上微调 LoRA 模块;推理阶段需将 LLM 反量化至与 LoRA 相同的精度,再添加 LoRA 更新。

4.2.2基于 QAT 的方法

这类方法联合量化与微调 LLM(即量化与微调同时执行),可缓解 PTQ 方法中的量化偏差。

4.3并行 LoRA 计算框架

LoRA 的参数高效特性允许在单 GPU 或 GPU 集群上微调或推理多个模块,节省计算资源并提升效率。本节分别介绍并行微调框架和并行推理框架。

4.3.1并行微调

在单 GPU 上并行微调多个 LoRA 模块,可降低 GPU 内存占用并提升计算效率。

4.3.2并行推理

LoRA 并行推理框架不仅提升计算效率,还支持多租户服务需求。

5.LORA的优势

论文明确总结了 LoRA 在适配过程中的核心优势:
1.显著减少训练存储需求
2.避免全量微调带来的巨大资源成本
3.插拔式机制可实现模块化部署
4.可适配多种模型结构与任务场景

6.联邦学习中的 LoRA 应用

当 LLM 适配医疗、金融等垂直领域时,训练数据可能归多个客户端私有 —— 此时训练数据无法集中管理,需在数据本地化的前提下微调 LLM,即联邦学习。在联邦学习中,客户端通常在本地计算权重更新,再将更新结果共享给其他客户端以实现 LLM 的全局更新,这给客户端带来了高昂的通信和计算成本。幸运的是,LoRA 的参数高效性和可插拔性可降低通信成本和计算资源需求,提升联邦学习的整体效率和可扩展性。然而,将 LoRA 应用于联邦学习并非易事 —— 联邦学习面临数据异构性、设备异构性和模型异构性等挑战。
picture_center

6.1 数据异构性

数据异构性指客户端间的数据分布差异。在联邦学习中,不同客户端的数据集通常具有不同分布,这种不一致性会影响模型的整体性能。研究表明,随着用户数据多样性的增加,LoRA 与全量微调的性能差距会扩大。

6.2 设备异构性

设备异构性指参与联邦学习的客户端在硬件性能、网络连接等方面的差异。传统联邦学习方法常面临 “木桶效应”—— 系统整体性能受限于性能最差的客户端。具体而言,这些方法采用最小的 LoRA 秩适配所有客户端,导致资源丰富的客户端无法充分发挥潜力。

6.3 模型异构性

模型异构性指客户端间的模型结构差异。传统联邦学习中,客户端使用相同架构的本地模型,其参数可在服务器上聚合为全局模型。但在实际场景中,客户端可能因个性化需求偏好独特的本地模型架构,且通常不愿披露模型细节。

6.4 参数隐私

在联邦学习中,保护客户端特定参数至关重要 —— 这些参数的隐私性间接保障了客户端数据的隐私。作为调整个性化参数的模块化方法,LoRA 可有效整合至联邦学习系统,实现参数隐私保护。

7. 研究挑战与未来展望

论文认为未来 LoRA 的研究将集中在:
1.克服低秩近似带来的表达能力瓶颈
2.在多任务适配中提升泛化性能
3.与隐私计算与联邦优化技术深度结合
4.面向复杂应用场景的适应性增强
5.构建可扩展的模块化智能适配生态

8.总结

本综述严格基于论文内容,对 LoRA 技术进行了:
1.技术原理解析
2.提升方法
3. 优势总结
4. 应用领域
5. 研究挑战与未来趋势展望

更多推荐