13 天前
LoRA:大语言模型的低秩适应
Edward J. Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, Weizhu Chen

摘要
自然语言处理领域的一个重要范式是:在通用领域数据上进行大规模预训练,随后将模型适配至特定任务或领域。随着预训练模型规模的不断增大,传统全量微调(即重新训练模型所有参数)的方式变得日益不可行。以 GPT-3 175B 为例,若为每个下游任务部署独立的微调实例,每个模型均包含 1750 亿参数,其计算与存储成本将难以承受。为此,我们提出低秩适配(Low-Rank Adaptation,简称 LoRA),该方法冻结预训练模型的原始权重,并在 Transformer 架构的每一层中注入可训练的低秩分解矩阵,从而显著减少下游任务所需的可训练参数数量。与使用 Adam 优化器对 GPT-3 175B 进行全量微调相比,LoRA 可将可训练参数数量减少 10,000 倍,同时降低 GPU 显存占用约 3 倍。尽管可训练参数更少,LoRA 在 RoBERTa、DeBERTa、GPT-2 和 GPT-3 等多个模型上的性能表现与全量微调相当,甚至更优;同时具备更高的训练吞吐率,且与适配器(adapters)不同,LoRA 在推理阶段不引入额外延迟。此外,我们还对语言模型适配过程中的秩不足(rank-deficiency)现象进行了实证研究,为 LoRA 方法的有效性提供了理论与实践依据。我们已开源一个支持 LoRA 与 PyTorch 模型集成的工具包,并在 GitHub 上发布了 RoBERTa、DeBERTa 和 GPT-2 的实现代码及预训练模型检查点,详见:https://github.com/microsoft/LoRA。