LoRA Learns Less and Forgets Less

📄 arXiv: 2405.09673v2 📥 PDF

作者: Dan Biderman, Jacob Portes, Jose Javier Gonzalez Ortiz, Mansheej Paul, Philip Greengard, Connor Jennings, Daniel King, Sam Havens, Vitaliy Chiley, Jonathan Frankle, Cody Blakeney, John P. Cunningham

分类: cs.LG, cs.AI, cs.CL

发布日期: 2024-05-15 (更新: 2024-09-20)

备注: Final version with new experiments and analyses, as accepted to Transactions on Machine Learning Research, August 2024 (Featured Certification). https://openreview.net/forum?id=aloEru2qCG&noteId=Jb3PQNQDI2


💡 一句话要点

LoRA在特定领域微调中表现欠佳,但能有效缓解灾难性遗忘

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: LoRA 参数高效微调 灾难性遗忘 大语言模型 指令微调 持续预训练 低秩适应

📋 核心要点

  1. 现有参数高效微调方法(如LoRA)在特定领域性能上与全参数微调存在差距,如何缩小这一差距是核心问题。
  2. 该研究发现LoRA虽然在特定领域性能上不如全参数微调,但能更好地保留原始模型的泛化能力,缓解灾难性遗忘。
  3. 实验表明,全参数微调学习到的扰动秩远高于LoRA的典型配置,这可能是性能差异的原因,并为LoRA的改进提供了方向。

📝 摘要(中文)

本文对比了LoRA(低秩适应)和全参数微调在编程和数学两个目标领域的大语言模型上的性能。研究考察了指令微调(约10万个prompt-response对)和持续预训练(200亿无结构token)两种数据模式。结果表明,在标准低秩设置下,LoRA的性能明显低于全参数微调。然而,LoRA在保持基础模型在目标领域之外的任务上的性能方面表现更好,能有效缓解灾难性遗忘,优于权重衰减和dropout等常见正则化技术,并有助于维持生成的多样性。此外,研究发现全参数微调学习到的扰动秩比典型的LoRA配置高10-100倍,这可能解释了两者之间的性能差距。最后,本文提出了使用LoRA进行微调的最佳实践。

🔬 方法详解

问题定义:论文旨在研究LoRA(Low-Rank Adaptation)这种参数高效微调方法在特定领域(编程和数学)的性能表现,并与全参数微调进行对比。现有方法的痛点在于,虽然LoRA节省了计算资源,但在特定领域的性能上通常不如全参数微调,并且对于LoRA缓解灾难性遗忘的机制缺乏深入理解。

核心思路:论文的核心解决思路是深入分析LoRA和全参数微调在特定领域任务上的性能差异,并探究LoRA在缓解灾难性遗忘方面的优势。通过实验分析全参数微调学习到的扰动秩,揭示LoRA性能差距的潜在原因,并提出LoRA微调的最佳实践。

技术框架:论文采用实验对比的方式,在编程和数学两个领域,分别使用指令微调和持续预训练两种数据模式,对LoRA和全参数微调进行评估。评估指标包括目标领域的性能以及在其他任务上的泛化能力,用于衡量灾难性遗忘的程度。同时,分析全参数微调学习到的扰动矩阵的秩,与LoRA的秩进行比较。

关键创新:论文最重要的技术创新点在于揭示了全参数微调学习到的扰动秩远高于LoRA的典型配置,这为理解LoRA的性能瓶颈提供了新的视角。与现有方法相比,该研究不仅关注LoRA的性能,更深入地探究了其内在机制,特别是其在缓解灾难性遗忘方面的优势。

关键设计:论文的关键设计包括:1) 选择编程和数学作为目标领域,因为它们对模型的推理能力有较高要求;2) 使用指令微调和持续预训练两种数据模式,以覆盖不同的微调场景;3) 采用多种评估指标,包括目标领域的性能和泛化能力,以全面评估LoRA和全参数微调;4) 分析全参数微调学习到的扰动矩阵的秩,以揭示LoRA性能差距的潜在原因。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,在标准低秩设置下,LoRA在编程和数学领域的性能明显低于全参数微调。然而,LoRA在保持基础模型在目标领域之外的任务上的性能方面表现更好,能有效缓解灾难性遗忘,优于权重衰减和dropout等常见正则化技术。此外,研究发现全参数微调学习到的扰动秩比典型的LoRA配置高10-100倍。

🎯 应用场景

该研究成果可应用于大语言模型的参数高效微调,尤其是在需要保持模型泛化能力和避免灾难性遗忘的场景下。例如,在医疗、金融等专业领域,可以利用LoRA进行微调,同时保证模型在通用任务上的性能。此外,该研究提出的LoRA微调最佳实践,可以指导实际应用中LoRA参数的设置和优化。

📄 摘要(原文)

Low-Rank Adaptation (LoRA) is a widely-used parameter-efficient finetuning method for large language models. LoRA saves memory by training only low rank perturbations to selected weight matrices. In this work, we compare the performance of LoRA and full finetuning on two target domains, programming and mathematics. We consider both the instruction finetuning (approximately 100K prompt-response pairs) and continued pretraining (20B unstructured tokens) data regimes. Our results show that, in the standard low-rank settings, LoRA substantially underperforms full finetuning. Nevertheless, LoRA better maintains the base model's performance on tasks outside the target domain. We show that LoRA mitigates forgetting more than common regularization techniques such as weight decay and dropout; it also helps maintain more diverse generations. Finally, we show that full finetuning learns perturbations with a rank that is 10-100X greater than typical LoRA configurations, possibly explaining some of the reported gaps. We conclude by proposing best practices for finetuning with LoRA.