0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍两种高效的参数更新方式LoRA与BitFit

深度学习自然语言处理 来源:NLP日志 作者:zelong 2022-11-24 10:28 次阅读

1 简介

NLP一个重要的范式包括在通用领域数据上的大规模预训练和在特定任务或者领域上的微调。目前大规模语言模型在诸多任务上取得sota效果,Finetune全模型参数以适配下游任务虽然能取得不错的效果,但是却是一种低效的参数更新方式,归因于模型的庞大模型参数量带来的训练成本,从而限制了在诸多下游任务的应用。

在这个章节我们介绍另外两种高效的参数更新方式,LoRA与BitFit,一种通过在transformer结构中固定原本的模型参数同时引入可训练的分解矩阵,另一种通过只更新模型中的bias参数,都能极大程度的减少下游任务需要训练的参数数量,提高训练速度并且取得不错的效果。

2 LoRA

神经网络包含很多全连接层,借助于矩阵乘法得以实现,很多全连接层的权重矩阵都是满秩的。当针对特定任务训练时,预训练模型具有low intrinsic dimension,尽管随机投影到较小的子空间,仍然可以有效的学习,可以理解为针对特定任务这些权重矩阵就不要求满秩。

基于此,LoRA(Low-Rank Adaptaion)被提出,它的想法也很朴素直观。在原始的PLM旁边增加一个新的通路,通过前后两个矩阵A,B相乘,第一个矩阵A负责降维,第二个矩阵B负责升维,中间层维度为r,从而来模拟所谓的intrinsic rank。在下游任务训练时,固定模型的其他参数,只优化新增的两个矩阵的权重参数,将PLM跟新增的通路两部分的结果加起来作为最终的结果(两边通路的输入跟输出维度是一致的),即h=Wx+BAx。

通常第一个矩阵的A的权重参数会通过高斯函数得到,而第二个矩阵的B的参数则是零矩阵,这样能保证训练开始时新增的通路BA=0从而对mo xing 结果没有影响。在推理时,将左右两部分的结果加到一起即可,h=Wx+BAx=(W+BA)x,所以只要将训练完成的矩阵乘积BA跟原本的权重矩阵W加到一起作为新权重参数替换原本PLM的W即可,不会增加额外的计算资源。

7426080c-3d84-11ed-9e49-dac502259ad0.png

图1:LoRA框架

一般情况下,r会远小于模型原本的维度m,所以LoRA训练的模型参数相比于模型原本的参数而言非常轻量,对于下游任务而言,原本的模型参数可以公摊到多个下游任务中去,每个下游任务只独立维护自身的LoRA的矩阵BA参数,从而省下了大量内存跟存储资源。同时,冻结语言模型原本的参数,只更新新增通路的少量参数也能节省大量计算资源跟IO成本,从而提升模型训练速度。

通过实验也发现,在众多数据集上LoRA在只训练极少量参数的前提下,达到了匹配训练全部参数的finetune方式,是一种高效的参数更新方法。相比其他高效的参数训练方式,类似Adapter, BitFit,LoRA在较少训练参数时就能保证比较稳定的效果。而prefix等方式则会由于插入了更多token导致输入的分布偏离预训练数据分布,从而导致精度下降。

74f36f54-3d84-11ed-9e49-dac502259ad0.png

图2:LoRA的效果

7566ca58-3d84-11ed-9e49-dac502259ad0.png

图3:各种参数更新方法下模型效果跟可训练参数量的关系

此外,Transformer的权重矩阵包括attention模块里用于计算query, key, value的Wq,Wk,Wv以及多头attention的Wo,以及MLP层的权重矩阵,LoRA只应用于attention模块中的4种权重矩阵,而且通过消融实验发现其中Wq,Wk两者不可缺失。同时,保证权重矩阵的种类的数量比起增加隐藏层维度r更为重要,增加r并不一定能覆盖更加有意义的子空间,这也显示了低秩的中间矩阵A跟B对于LoRA已经足够了。

3 BitFit

这是一种稀疏的finetune方法,它只在训练时更新bias的参数(或者部分bias参数)。对于transformer模型而言,冻结大部分模型参数,只训练更新bias参数跟特定任务的分类层参数。涉及到的bias参数有attention模块中计算query,key,value跟合并多个attention结果的涉及到的bias,MLP层中的bias,Layernormalization层的bias参数。像Bert base跟Bert large这种模型里的bias参数占模型全部参数量的0.08%~0.09%。

通过实验可以看出,Bitfit在只更新极少量参数下在多个数据集上都达到了不错的效果,虽不及训练全部参数的finetune,但是远超固定全部模型参数的Frozen方式。同时,通过比起Bitfit训练前后的参数对比,发现很多bias参数没有太多变化,例如跟计算key所涉及到的bias参数。发现其中计算query与将特征维度从N放大到4N的FFN层的bias参数变化最为明显,只更新这两类bias参数也能达到不错的效果,反之,固定其中任何一者,模型的效果都有较大损失。

75c811fa-3d84-11ed-9e49-dac502259ad0.png

图4:BitFit效果

4 总结

上述这两种参数优化方法都是在Adapter之后提出的,相比adapter需要在原模型基础上加入了额外模块,虽然减少了训练成本跟存储资源,但在推理时却也不可避免的增加了计算资源从而增加了耗时。但LoRA跟Biffit在推理时跟原语言模型结果保持一致,没有额外的计算资源。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PLM
    PLM
    +关注

    关注

    2

    文章

    121

    浏览量

    20868
  • LoRa技术
    +关注

    关注

    3

    文章

    101

    浏览量

    16330
  • nlp
    nlp
    +关注

    关注

    1

    文章

    488

    浏览量

    22035
  • MLP
    MLP
    +关注

    关注

    0

    文章

    57

    浏览量

    4244

原文标题:Parameter-efficient transfer learning系列之LoRA与BitFit

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    两种高效能电源设计及拓扑分析

    两种高效能电源设计及拓扑分析,在本文中,我们将提出个能符合更高效能要求,并可控制目标成本的设计方式,并将之和传统的拓扑结构进行比较。
    发表于 11-24 11:11 1830次阅读
    <b class='flag-5'>两种</b><b class='flag-5'>高效</b>能电源设计及拓扑分析

    两种采样方式

    两种采样方式.....................................
    发表于 08-08 15:04

    Linux实现输入参数求和的两种方式

    Linux实现输入参数求和(两种方式
    发表于 03-26 11:44

    编译环境的两种搭建方式

    编译环境的两种搭建方式putty工具的使用winscp工具的使用
    发表于 12-22 08:00

    两种典型的ADRC算法介绍

    前言  上篇中详细阐述了经典的自抗扰控制算法的原理,本篇将围绕两种ADRC算法展开,针对扩张状态观测器的参数整定问题进行详解,同时,对跟踪微分器的几个重要应用进行介绍两种典型的ADR
    发表于 09-07 08:02

    SQL语言的两种使用方式

    SQL语言的两种使用方式在终端交互方式下使用,称为交互式SQL嵌入在高级语言的程序中使用,称为嵌入式SQL―高级语言如C、Java等,称为宿主语言嵌入式SQL的实现方式源程序(用主语言
    发表于 12-20 06:51

    vnc和xrdp两种远程连接的方式

    [zju嵌入式]树莓派之远程桌面 之前介绍了通过串口和ssh登陆到树莓派的方法,这两种方式的有点在于连接方面,响应速度快,但是也有不够直观的缺点,没办法看到图形界面.在这篇博文中,
    发表于 12-24 07:54

    NB-IOT与LoRa未来两种技术在国内的发展究竟如何呢?

    备受争议,但随着广电,铁塔及互联网巨头腾讯,阿里相继加入LoRa阵营,无疑又为LoRa在国内的发展注入一支“强心剂”。那未来两种技术在国内的发展究竟如何呢?   NB-IOT( Narrow Band
    发表于 05-11 10:14

    基于传呼的PDA信息更新方式

    交通信息系统PDA 为了使内部信息具有实时性,并为降低服务成本,不使用GPRS 或其它更新方式,而是使用传呼接收电路,实时更新铁路、民航交通信息。本文简要介绍了此功能实
    发表于 09-07 15:57 8次下载

    逆变器的两种电流型控制方式

    逆变器的两种电流型控制方式 摘要:研究分析了逆变器的两种双环瞬时反馈控制方式——电流型准PWM控制方式和三态DPM
    发表于 07-10 11:21 4003次阅读
    逆变器的<b class='flag-5'>两种</b>电流型控制<b class='flag-5'>方式</b>

    Wincc如何与PLC进行通讯两种常用的方式介绍

    西门子WINCC与SiemensPLC通讯连接有多种方式,下面介绍两种常用的通讯方式
    的头像 发表于 02-17 09:27 3w次阅读
    Wincc如何与PLC进行通讯<b class='flag-5'>两种</b>常用的<b class='flag-5'>方式</b><b class='flag-5'>介绍</b>

    在MATLAB/simulink中建模时的两种不同实现方式

    导读:本期文章主要介绍在MATLAB/simulink中建模时的两种不同实现方式,一是直接用现成的文件库中的模块进行搭建,一是用Sfun
    的头像 发表于 09-15 10:07 1889次阅读

    MATLAB/simulink中两种实现建模方式的优势

    导读:本期文章主要介绍在MATLAB/simulink中建模时的两种不同实现方式,一是直接用现成的文件库中的模块进行搭建,一是用Sfun
    的头像 发表于 09-15 10:10 5048次阅读

    介绍两种常见的移相器电路原理

    移相器的电路原理可以有多种实现方式,以下是两种常见的移相器电路原理
    的头像 发表于 09-19 11:01 2239次阅读

    redis两种持久化方式的区别

    的完整性和一致性。 Redis提供了两种持久化方式:RDB(Redis Database)和AOF(Append Only File)。这两种方式各有优劣,下面我们将详细
    的头像 发表于 12-04 11:12 523次阅读