大模型低秩适应技术(Low-Rank Adaptation,LoRA)通过可插拔的低秩矩阵更新密集神经网络层,是当前参数高效微调范式中表现最佳的方法之一。此外,它在跨任务泛化和隐私保护方面具有显著优势。因此,LoRA 最近受到了广泛关注,相关文献的数量呈指数增长。对 LoRA 的当前进展进行全面综述是必要的。

预训练语言模型参数规模的迅速增加提升了它们的泛化能力,并带来了新的能力。近年来,预训练语言模型的参数规模增加了数千倍(例如,从具有 3.3 亿参数的 BERT[1] 到具有 5400 亿参数的 PaLM[2])。这些具有大参数规模的预训练语言模型被称为大语言模型(LLMs)。然而,由于 LLMs 的知识边界,它们在某些下游任务中的能力仍然有限。为了扩展知识边界,仍然有必要在下游任务上微调 LLMs。
然而,对 LLM 进行全参数微调(即全量微调)计算开销极其巨大,例如,对 LLaMA2-7B[3] 模型进行全量微调需要大约 60GB 的内存,超出了普通消费级 GPU 的容量 [4]。为了减少计算成本,提出了各种参数高效微调(PEFT)方法 [5]。这些方法通过只微调少量(额外的)模型参数来使 LLMs 适应下游任务。从是否涉及额外参数的角度来看,PEFT 方法可以分为两类:额外参数方法和内部参数方法。额外参数方法冻结 LLM 的所有原始参数,并插入一组可学习的参数来优化模型输入或模型层,如适配器调优 [6] 和提示调优 [7]。相比之下,内部参数方法冻结 LLM 的大部分原始参数,只微调 LLM 的一小部分参数,如 BitFit[8]、LISA[4] 和 LoRA[9]。
在无法修改模型架构的情况下,内部参数方法是理想的。在内部参数方法中,LoRA 是使用最广泛的方法,因为它在多个下游任务上可以实现与全量微调相当或更好的下游适应性能 [9],且易于实施。此外,还提出了许多变体,以进一步提高 LoRA 在更具挑战性的下游任务中的适应能力。
LoRA 通过使用可插拔的低秩矩阵更新 LLM 的密集神经网络层来实现参数效率。这些矩阵(即 LoRA 插件)是独立于 LLM 的,可以存储并在其他相关的下游任务中重用。此外,这些 LoRA 插件可以组合以实现跨任务泛化,从而促进多任务学习、领域适应和 LLMs 的持续学习。
随着 LoRA 插件的累积,管理 LoRA 插件的计算成本也在增加。尽管 LoRA 计算效率高,但管理大量 LoRA 插件的计算成本不可忽视。因此,有必要进一步提高 LoRA 的计算效率。改进可以通过减少单个 LoRA 插件的计算成本和加速多个插件的可扩展服务来实现。这可以促进 LoRA 在现实世界中的应用,如生成即服务(GaaS)云产品。
在某些情况下,训练数据由多个客户端私有且无法集中。为了使用分布式训练数据使 LLMs 适应,我们可以采用联邦学习来保护每个客户端的数据隐私。然而,联邦学习会产生高昂的通信和计算成本。为了降低成本,LoRA 是一个自然的选择。其参数高效特性有助于降低每个客户端的计算成本和跨客户端共享参数的通信成本。此外,LoRA 的可插拔特性有助于在联邦学习中保留每个客户端的参数隐私。因此,LoRA 在隐私保护方面具有巨大潜力。
在本综述中,我们对 LoRA 的当前进展进行了全面概述,包括:(1)提高 LoRA 下游适应性能的方法;(2)混合 LoRA 插件以实现跨任务泛化的方法;(3)提高 LoRA 计算效率的方法;(4)在联邦学习中采用 LoRA 的方法。此外,还简要介绍了 LoRA 的应用。图 1 展示了 LoRA 相关方法的分类。本综述旨在提供 LoRA 的全面背景知识、研究趋势和技术见解。
本综述的其余部分组织如下。第 2 节介绍了 LoRA 的背景知识,第 3 节介绍了旨在提高下游适应性能的 LoRA 变体。在第 4 节中,我们回顾了混合 LoRA 插件以实现跨任务泛化的方法。第 6 节介绍了 LoRA 驱动的联邦学习方法。第 7 节报告了 LoRA 的应用。第 8 节总结了本综述并讨论了未来的研究方向。

低秩适应(LoRA)
低维固有维度假说 [186] 提出,过度参数化模型存在于低固有维度上,这表明我们可以通过仅更新与固有秩相关的参数来实现适当的学习性能。基于这一假说,LoRA[9] 提出用低秩矩阵更新模型中的密集层。它可以同时实现参数和计算效率。在本节中,我们首先介绍 LoRA 的细节,然后介绍现有的聚焦于 LoRA 理论分析的工作。此外,我们展示了 LoRA 在实践中的效率。最后,本节介绍了 LoRA 在微调之外的其他用例。



