论文link:https://arxiv.org/pdf/2106.09685
code:https://github.com/microsoft/LoRA
LoRA:Low-Rank Adaptation of Large Language Models
Abstract
自然语言处理的一个重要范例是对通用领域数据进行大规模预训练,并适应特定任务或领域。随着我们对更大的模型进行预训练,完全微调(重新训练所有模型参数)变得不太可行。以 GPT-3 175B 为例 - 部署经过微调的模型的独立实例(每个实例具有 175B 个参数)的成本过高。我们提出了低秩自适应(LoRA),它冻结了预训练的模型权重,并将可训练的秩分解矩阵注入 Transformer 架构的每一层,大大减少了下游任务的可训练参数数量。与使用 Adam 微调的 GPT-3 175B 相比,LoRA 可以将可训练参数的数量减少 10,000 倍,并将 GPU 内存需求减少 3 倍。尽管 LoRA 的可训练参数更少、训练吞吐量更高,并且与适配器不同,没有额外的推理延迟,但其在 RoBERTa、DeBERTa、GPT-2 和 GPT-3 上的模型质量表现与微调相当或更好。我们还对语言模型自适应中的秩缺陷进行了实证研究,这揭示了 LoRA 的有效性。我们发布了一个软件包,以促进 LoRA 与 PyTorch 模型的集成,并在 https://github.com/microsoft/LoRA 上提供了我们对 RoBERTa、DeBERTa 和 GPT-2 的实现和模型检查点。
1 INTRODUCTION
自然语言处理中的许多应用都依赖于将一个大规模、预训练的语言模型适配到多个下游应用。这种适配通常通过微调来完成,微调会更新预训练模型的所有参数。微调的主要缺点是新模型包含的参数与原始模型一样多。由于每隔几个月就要训练一次更大的模型,这从 GPT-2(Radford 等人,b)或 RoBERTa large(Liu 等人,2019)的单纯“不便”变成了 GPT-3(Brown 等人,2020)的关键部署挑战,该模型拥有 1750 亿个可训练参数。1 许多人试图通过仅调整一些参数或为新任务学习外部模块来缓解这种情况。这样,除了每个任务的预训练模型之外,我们只需要存储和加载少量特定于任务的参数,从而大大提高部署时的运行效率。然而,现有技术通常会通过扩展模型深度或减少模型的可用序列长度(Li & Liang,2021;Lester 等人,2021;Hambardzumyan 等人,2020;Liu 等人,2021)(第 3 节)来引入推理延迟(Houlsby


2181

被折叠的 条评论
为什么被折叠?



