LoRA:为解决大语言模型微调而开发

微软的研究人员于2021年推出LoRA(Low-Rank Adaptation of Large Language Models,大语言模型的低阶适应),这是为解决大语言模型微调而开发的一项技术,用于大语言模型在特定任务或领域上的高效适应。

随着大语言模型规模的不断扩大,对所有参数进行全面微调的方法变得越来越不切实际。以GPT-3 175B为例,部署针对不同任务独立微调后的模型副本非常昂贵,因为每个副本都包含1750亿个待训练参数。

LoRA的核心思路是冻结预训练模型的权重,并在Transformer架构的每一层注入可训练的低秩分解矩阵,从而极大地减少了下游任务中需要训练的参数数量。与使用Adam优化器进行完全微调的GPT-3 175B相比,LoRA能够将可训练参数的数量减少1万倍,同时降低GPU内存需求3倍,且在RoBERTa、DeBERTa、GPT-2和GPT-3上展现出与全面微调相当甚至更好的性能表现,而其训练吞吐量更高,并且在推理时没有额外的延迟,这一点优于引入了额外推理延迟的适配器技术。

主要功能:

LoRA的核心功能是在不改变预训练模型权重的情况下,通过引入可训练的低秩分解矩阵来适应特定任务。这样,它能够在保持模型质量的同时,显著减少可训练参数的数量和GPU内存需求。

主要特点:

  1. 参数效率: LoRA通过使用低秩矩阵来表示权重更新,从而大幅减少了需要训练的参数数量。
  2. 无额外推理延迟: 在部署时,LoRA可以合并训练得到的矩阵与预训练权重,不引入额外的推理延迟。
  3. 易于集成: LoRA可以与现有的PyTorch模型集成,并且提供了与RoBERTa、DeBERTa和GPT-2的实现和模型检查点。
  4. 灵活性: LoRA可以应用于Transformer架构中的任何密集层,实验主要集中在自注意力模块的权重上。

工作原理:

LoRA的工作原理是将预训练模型的权重矩阵W0与一个低秩分解矩阵BA相加,其中B和A是可训练的参数,而W0在训练过程中保持不变。这样,模型在适应新任务时,只需要更新B和A,而不是整个权重矩阵W0。这种方法允许模型在保持预训练知识的同时,学习新任务所需的特定表示。

应用场景:

LoRA可以应用于多种自然语言处理任务,如文本摘要、机器阅读理解(MRC)、自然语言到SQL(NL2SQL)等。它可以在不牺牲模型性能的情况下,提高模型部署的效率,降低硬件成本,并允许快速在不同任务之间切换。这对于需要处理大量数据和快速响应的应用场景特别有用,例如在线客服系统、内容推荐引擎和自动化文档处理等。

0

评论0

没有账号?注册  忘记密码?