Low-Rank Adaptation (LoRA) — 低秩自适应
Low-Rank Adaptation (LoRA) 是一种参数高效微调 (Parameter-Efficient Fine-Tuning, PEFT) 方法,它能够以最小的计算成本使大型语言模型 (LLM) 适应新任务。该技术由Edward Hu及其同事于2021年首次提出[1]。
对 LLaMA 或 GPT 等大型模型进行全量微调 (full fine-tuning) 需要巨大的资源,这使得大多数研究人员和开发人员无法承担。LoRA 通过只微调模型的一小部分参数来解决这个问题,同时保持了与全量微调相媲美的高质量和性能[2]。
工作原理
LoRA 的核心思想是不改变预训练模型的原始权重,而是为其增加一个小的“校正”矩阵。LoRA 并不直接训练巨大的权重矩阵 `W`,而是将其变化量表示为两个低秩小矩阵的乘积。
形式上,如果原始层权重矩阵 `W_0` 的维度为 `d × k`,其更新量可以表示为 `ΔW = BA`,其中 `B` 是一个 `d × r` 维的矩阵,`A` 是一个 `r × k` 维的矩阵。秩 `r` 是一个超参数,且远小于 `d` 和 `k` (`r << d, k`)。在微调过程中,原始权重 `W_0` 被冻结,只有矩阵 `A` 和 `B` 参与训练。最终的权重矩阵计算公式为 `W = W_0 + BA`。
这使得可训练参数的数量减少了数千倍。例如,在微调 GPT-3(1750亿参数)时,LoRA 将可训练参数数量减少了10000倍,并将GPU显存需求降低了3倍[1]。
关键优势
- 节省资源:显著减少可训练参数的数量(高达90%或更多),从而大幅降低显存(VRAM)消耗并加速训练过程。
- 无推理(inference)延迟:训练完成后,矩阵 `B` 和 `A` 可以通过计算 `W = W_0 + BA` 与主权重矩阵 `W_0`“合并”。这样,在模型推理期间不会增加任何额外的计算或延迟[1]。
- 模块化与任务快速切换:训练好的 LoRA 适配器是小文件(仅几MB大小)。这使得为不同任务存储数十个适配器并快速切换变得容易,而无需更改基础模型[3]。
局限性与变体
尽管 LoRA 非常高效,但其低秩特性对于需要记忆大量新信息的任务可能成为一个限制。为了解决这个问题以及其他挑战,研究人员提出了多种变体。
QLoRA
QLoRA (Quantized Low-Rank Adaptation) 是最流行的变体之一,于2023年被提出。它将 LoRA 与基础模型的4位量化相结合[4]。这可以进一步降低内存需求,使得在单个消费级GPU上微调拥有数百亿参数的模型(例如65B模型)成为可能。基于QLoRA技术,研究人员创建了Guanaco模型,其表现可与ChatGPT相媲美。
其他变体
- MoRA (High-Rank Updating): 针对LoRA因秩限制而性能不佳的任务而提出。MoRA采用的方法可以在保持参数效率的同时实现高秩权重更新[5]。
实现与应用
LoRA 技术因其高效性和易于集成而得到广泛应用。Hugging Face 公司的 PEFT (Parameter-Efficient Fine-Tuning) 库在其推广中发挥了关键作用。PEFT 提供了一个统一的接口,可将 LoRA 和其他 PEFT 方法应用于 Transformers 生态系统中的模型[6]。
LoRA 被广泛用于:
- 适配聊天机器人和对话系统(例如微调 LLaMA、Mistral)。
- 在特定领域创建用于文本分类和生成的模型。
- 根据特定风格或数据格式对模型进行个性化定制。
链接
参考文献
- Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
- Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
- Zhang, Q. et al. (2023). AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning. arXiv:2303.10512.
- Chen, Y. et al. (2023). LongLoRA: Efficient Fine-Tuning of Long-Context Large Language Models. arXiv:2309.12307.
- Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
- Jiang, T. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
- Liu, Z. et al. (2024). ALoRA: Allocating Low-Rank Adaptation for Fine-Tuning Large Language Models. arXiv:2403.16187.
- Liu, J. et al. (2025). RoRA: Efficient Fine-Tuning of LLM with Reliability Optimization for Rank Adaptation. arXiv:2501.04315.
- Albert, P. et al. (2025). RandLoRA: Full-Rank Parameter-Efficient Fine-Tuning of Large Models. arXiv:2502.00987.
- Tastan, N. et al. (2025). LoFT: Low-Rank Adaptation That Behaves Like Full Fine-Tuning. arXiv:2505.21289.
注释
- ↑ 1.0 1.1 1.2 Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [1]
- ↑ Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [2]
- ↑ Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [3]
- ↑ Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [4]
- ↑ Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [5]
- ↑ «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [6]