ICML 2024 | 深入探寻LoRA的本质:一种对全量梯度的低秩投影

13455682c7a222c47f4af0653c809bf6.gif

©作者 | 何浩楠

单位 | 中国科学技术大学

研究方向 | AI4Science

4b0c20a1b891b719ac636c764f0c1917.png

文章题目:

FLORA: Low-Rank Adapters Are Secretly Gradient Compressors

文章地址:

https://arxiv.org/pdf/2402.03293

这篇论文不仅带来了一种全新的高秩高效微调的算法,而且深入解读了 LoRA 的本质:LoRA 是一种对全量梯度的低秩投影。其实这种观点并不让人吃惊,我们在过去的许多论文中都可以看到这种观点的影子。 比如,LoRA-FA  提出不微调 LoRA中的 A 矩阵仅微调 LoRA 中的 B 矩阵;LoRA+ 提出使用更大的学习率微调 LoRA 中的 B 矩阵;ReLoRA/PLoRA/CoLA 等提出定期合并 LoRA 权重重新初始化。其实他们的本质都是本文的标题。

本文提出的方法实际上并没有比 LoRA 更加优秀,因为 LoRA 省显存的本质是,在使用 Adam 优化器时可以避免计算全量权重的一阶动量和二阶动量(这两个都必须用 fp32 表示,非常占显存),而本文提出的方法实际上是对梯度累积的优化,能够避免在梯度累积过程中累积梯度带来的额外显存开销。在使用 Adam 训练时,FLoRA 实际上是不可以节省显存的。但是本文对 LoRA 的分析非常精彩。

0b63a7e202e119d8972653c667a2e656.png

LoRA中的B矩阵主导了权重的更新

1.1 LoRA的梯度

首先我们定义以下符号:权重 和 矩阵 以及 矩阵。

那么我们有 LoRA 的公式为: 

对损失 求导有:

00b8973a28ce8cba08d2fdad7c8e4f33.png

1.2 权重的更新量

得到梯度后,对于反向传播第 t+1 步有:

36a70f84eb7ab70b0e24bddd19411b96.png

其中 为学习率,矩阵 B 的更新同理。由于矩阵 B 的初始化方式为全 0 初始化,矩阵 A 的初始化为正态分布初始化(peft 库中为 kaiming 初始化,与 LoRA 原文不同)。所以对训练过程中的任意一步 T 有:

e0b5900da7cc5455fb2792e60e51cb74.png

其中 ,。具体定义会在附录提出,这里的意思是在训练中的任意一步 T 有,A 和 B 的值基于对正态分布初始化的 矩阵的投影得到的。有了 A 和 B 的值之后,可得,对于训练过程中的任意一步 T:

e75be52fb2f70170ec19c04808a49a48.png

由于 是全 0 矩阵,所以:

02199fe65c5e0d5093f0f090f944687d.png

带入 和 的值:

43e528558a6563651649b40fc88cda9d.png

该式中,第三项为小项,可以忽略,所以我们有:

703bcd2f7ed37daf18b0c0fe04ef2a10.png

第三项可以忽略说明使用 LoRA 训练时将矩阵 A 冻结不训练,可以获得近似的效果(这就是 LoRA-FA 的思想,也是 LoRA + 的思想,因为矩阵 B 主导了参数的更新所以需要更大的学习率),当我们将 A 矩阵冻结时有:

4fa529a7b5e05f62d30e30ed87cadf5a.png

也就是说,LoRA-FA 实质是通过对权重 W 梯度的一次随机降维投影来更新权重 W 的。而 LoRA 与 LoRA-FA 近似,我们可以认为这个观点在很大程度上仍然成立。

a20dd5a24f5b74b756b6e19e76ab7a1b.png

▲ LoRA-FA 与 LoRA 效果对比,可以看到性能非常近似

3b30551d83314f1ffd483886a3570c42.png

FLoRA算法

基于以上insight,作者团队提出了一种新的训练算法:

f1c93f0a537594ece9f4e9e0aba0f4e8.png

▲ 该算法实际上是一种梯度累积的变体。给定梯度累积步数 T,在 T 步中计算参数 W 的梯度,并且每一步都随机初始化一个降维矩阵将梯度降维,通过累计降维梯度的值来实现参数的低秩更新。

对于使用动量机制的优化器如 Adam 有:

2560b4876f424a61efe0fcabc8296d90.png

▲ 通过以上算法能够实现动量的低秩累积


e41c38939314e89c8debcf6fa37ae71e.png

附录

这里作者使用数学归纳法证明了:

be62a40cbd2a64de13a5e4cf73b4a029.png

并且在证明过程中得到了 和 的形式:

1840f642576fc90ab9f43ac577984181.png

5d27e7ebb629c3b0bf5de29ea55721c7.png

更多阅读

cb1cbc411afdc101849d46d3685df973.png

b2fde48ad0133538c0a9fd5d2963c268.png

1784efce1aa4ce514c8b52ca1979a270.png

152c04493fe63e0bba040de04cd3ae8a.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

9cf8ebfe57a74ae05d0cfa30429d0e48.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

·

20d67cf3d47fe068612d7181ef5a0775.jpeg

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值