本文是四两拨千斤,训练大模型的PEFT方法的最后一小节,感兴趣读者可以阅读完整版。
LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 核心思路是对模型参数做低秩分解,仅训练分解后的参数,模型部署也需额外保存低秩参数,计算时加上低秩参数部分。
LoRA的提出在上述PEFT方法之后,来自微软的研究者认为,现有的Adapter Tuning和Prefix Tuning这两种方法均有缺点:
Aghajanyan等研究者在论文Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning提出了关于大模型的一个核心观察点:预训练模型存在一个低秩的“内在维度”(intrinsic dimension)使得其在被随机映射到一个更小的子空间时仍然可以高效学习。基于这种想法,作者假设预训练模型在转换到下游模型过程中也有一个内在维度,提出了下面的方法。
图中的A,B均为可训练参数,参数A=正态分布,B=0是初始化参数的方法
对于预训练模型权重
,引入一个低秩部分
来限制其更新,即:
,其中
,
,但秩
,训练时
被冻结不参与梯度更新,仅有
和
为可训练参数,修改后的前向传播可表示为:
这意味着增加的部分
和原始部分可以并行计算,没有引入任何推理时延。
总结下来,LoRA拥有以下优点:
为预训练权重的秩,基本能够还原全量finetuning同等水平的表征能力。换句话讲,随着我们增大
增加可训练参数的数量,使用LoRA方式训练基本可以收敛到训练原始模型。与之形成对比的是,采用adapter的一系列方法仅能收敛到MLP,而基于prefix的方法不能不处理长输入序列。
来存储和执行推理,迁移到其他任务时,可以减去
,再加上新任务的
,仅需一个占用少量存储的快捷操作即可迁移到新任务。这保证了和采用构建的finetuning方法相比,单任务及多任务都没有引入额外的推理时延。
作者通过实践发现,LoRA实际产生的最大的益处是节省内存和存储消耗,通过设置
能够将一个使用Adam训练的大型transformer的VRAM(即显存)占用最大减少
。具体而言,在GPT-3 175B上,VRAM消耗从1.2TB降低到350GB,在仅采用query和value矩阵映射矩阵的条件下,检查点的大小被降低了10000倍(从350GB到35MB)。假设我们需要100个转化模型,使用LoRA仅需保存
大小的空间,而全量Finetuning则需要
的存储空间。这使得训练需要的GPU数量变少且减少了I/O瓶颈的次数,并且在任务间切换时,仅需在VRAM实时切换LoRA权重而不需要花费大量时间切换全量参数。除此之外,由于不需要计算大多数参数的梯度,训练速度也提升了25%。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有