LoRA: 大语言模型个性化的最佳实践

LoRA是一种在大型语言模型中减少微调成本的方法,通过冻结预训练模型权重并使用秩分解矩阵来适应下游任务,显著降低训练参数和GPU内存需求,同时保持或提高模型性能。这种方法已在RoBERTa、DeBERTa等模型上取得良好效果,并且适用于transformer架构的算法,如stable-diffusion。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出品人: Towhee 技术团队

大型语言模型(LLM)在今年获得了极大的关注。在以往,预训练+微调(finetuning)成为了让模型适配于特定数据的最佳范式。然而随着大型模型的出现,这种完全微调(重新训练所有模型参数)将变得越来越不可行。例如,如果使用GPT-3 175B,部署独立的经微调的模型实例(每个实例都有175B个参数)成本过高。在2021年,微软提出了一个方法叫LoRA(低秩适应),在大模型时代越来越受到重视,并且带来了非常好的效果。该方法冻结预训练模型的权重,并将可训练的秩分解矩阵注入到Transformer体系结构的每个层中,从而大大减少了下游任务所需的可训练参数数量。相对于使用Adam算法微调的GPT-3 175B模型,LoRA可以将可训练参数数量降低10,000倍,GPU内存需求减少3倍。此外,LoRA在RoBERTa、DeBERTa、GPT-2和GPT-3模型的模型质量方面表现与微调相当或更好,尽管它具有较少的可训练参数,更高的训练吞吐量,并且不像适配器(adapters),不会增加推理延迟。

|LoRA's reparametrization: only train A and B. alt alt

|Performance of RoBERTa pretrained with/without LoRA

这个实验结果很好地说明了这个算法的有效性。作者使用了RoBERTa模型在各个下游任务做finetune。FT就是使用全部参数进行训练,BitFit是只训练bias vector冻结住其他全部的权重。可以看出除了完全finetune,几种其他适配方法所训练的参数量都比较小。而LoRA可以训练较少的参数得到更好的结果。

LoRA不仅在NLP可以证明自己是很有效的办法,因为现在越来越多的算法都是基于transformer开发,而这个方法针对transformer非常容易适配。现在很火的stable-diffusion也已经被LoRA所攻陷,让大部分只拥有有限算力的用户可以快速finetune出一个针对自己数据所使用的LoRA模型。随着大模型越来越受到重视,成为各种任务的基线,相信这个方法会成为大模型时代的最常规的操作。

相关资料:

本文由 mdnice 多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值