【论文阅读】Lora

概述

  • 目的在原有大模型上进行fine tune,训练个性化模型

  • idea:将pretrained model参数冻住,额外训练一个module进行调整,最终输出是原始输出+经过module的输出。
    在这里插入图片描述

  • 技巧:通过低秩分解大大降低了需要训练参数的数量。矩阵分解:对于一个 m ∗ n m*n mn的矩阵,若它的秩是r,则可以通过 m ∗ r m*r mr r ∗ n r*n rn的矩阵近似

方法

在这里插入图片描述

  • W 0 W_0 W0是预训练模型的参数, △ W \triangle W W是添加module的参数, x x x是输入。注意这里 A A A为高斯随机初始化, B B B初始化为0,这样一开始 △ W = 0 \triangle W=0 W=0,整个模型的输出与预训练模型一样,有利于模型的收敛
  • 这里只对attention层中的参数进行矩阵分解,包括 W q , W k , W v , W o W_q, W_k, W_v, W_o Wq,Wk,Wv,Wo
  • 当r=d的时候,就相当于对所有参数进行微调
  • 没有额外的inference延迟,因为最后计算的时候可以先让 W 0 W_0 W0 △ W \triangle W W相加,然后再乘x,与之前直接和x相乘的计算量差不多

实验

  • 为什么lora效果好?即使是fine tune所有的参数,得到的 △ W \triangle W W矩阵的秩也是很低的,因此可以做低质分解降低需要训练的参数量
  • 矩阵分解的位置。实验发现在总参数量保持一致的情况下施加在4个参数上效果最好,单独施加效果最差
    在这里插入图片描述
  • r的选择。在nlp任务上,r取4能够得到较好的效果。作者也通过实验说明当r较小时与较大的r能够有很高的相似性。q矩阵的秩高于v矩阵的秩
    在这里插入图片描述
  • △ W \triangle W W放大了 W W W在某些方向上的表达(下游任务中需要的某些方向)

注意

  • 在实验中作者为了简单只对 w q w_q wq W v W_v Wv进行分解
  • lora在小样本fine tune上的效果很好(10k以下)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值