梯度视角下的LoRA:简介、分析、猜测及推广

91654136d53723c707f904d0ef600e04.gif

©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 追一科技

研究方向 | NLP、神经网络

随着 ChatGPT 及其平替的火热,各种参数高效(Parameter-Efficient)的微调方法也“水涨船高”,其中最流行的方案之一就是本文的主角 LoRA 了,它出自论文《LoRA: Low-Rank Adaptation of Large Language Models》[1]。LoRA 方法上比较简单直接,而且也有不少现成实现,不管是理解还是使用都很容易上手,所以本身也没太多值得细写的地方了。

然而,直接实现 LoRA 需要修改网络结构,这略微麻烦了些,同时 LoRA 给笔者的感觉是很像之前的优化器 AdaFactor [2],所以笔者的问题是:能否从优化器角度来分析和实现 LoRA 呢?本文就围绕此主题展开讨论。

aae297be5128cdce3cc086a320e21549.png

方法简介

以往的一些结果(比如《Exploring Universal Intrinsic Task Subspace via Prompt Tuning》[3])显示,尽管预训练模型的参数量很大,但每个下游任务对应的本征维度(Intrinsic Dimension)并不大,换句话说,理论上我们可以微调非常小的参数量,就能在下游任务取得不错的效果。

LoRA 借鉴了上述结果,提出对于预训练的参数矩阵 ,我们不去直接微调 ,而是对增量做低秩分解假设:

641d5b57cc15620a25657ac33d9dbf84.png

其中  之一用全零初始化, 固定不变,优化器只优化 。由于本征维度很小的结论,所以  我们可以取得很小,很多时候我们甚至可以直接取 1。所以说,LoRA 是一种参数高效的微调方法,至少被优化的参数量大大降低了。

9f78cc904ec38ed6741750ee2a56b522.png

梯度分析

正如《Ladder Side-Tuning:预训练模型的“过墙梯”》所提到的,很多参数高效的微调实际上只是降低了显存需求,并没有降低计算量,LoRA 其实也不例外。为了认识到这一点,我们

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值