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

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

3天内不再提示

一个基于参数更新的迁移学习的统一框架

深度学习自然语言处理 来源:NLP日志 作者:NLP日志 2022-09-26 10:29 次阅读

1 简介

在下游任务对大规模预训练模型进行finetune已经成为目前NLP一种流行的学习方法,然而传统的finetune方法会更新预训练语言模型的全部参数,这种方式随着模型尺寸跟下游任务数量的增加会变得难以承受。

于是乎,出现了一系列高效的更新参数的迁移学习方式,通过只更新少量模型参数来保证下游任务的效果,例如前面章节提及的prompt learning,Adapter,LoRA,BitFit等方法。

这些方法虽然有效,但他们成功的原因跟彼此之间的联系却不明所以,这对我们理解这些关键设计造成了阻碍。

在这个章节,我们介绍一篇ICLR2022相关的论文,它提出一个基于参数更新的迁移学习的统一框架,建立多种参数优化方法之间的联系,从而方便理解不同方法背后的关键设计,进而设计出只更新更少参数同时取得更好效果的参数优化方法。

2 背景

在这个篇章,我们从另一种角度去回顾之前提及的多种高效的参数优化方法,通过一种更加抽象的方式去解析其中的原理跟细节,从而比对彼此之间的共性与差异,构建一个统一的框架。

2.1 Prefix tuning

Prefix tuning会在每层transformer的多个attention的key跟value向量中插入l个用于更新参数的prefix向量,每个attention的计算公式如下,其中的Pk,Pv就是新插入的prefix向量。

57a4453a-3cdb-11ed-9e49-dac502259ad0.png


图1:prefix tuning

而等式的前半部分是不加入prefix向量的初始attention计算的公式,后半部分则是跟上下文向量C无关的部分,通过一个类似门的机制来计算前后两部分的比重,如果用h表示原本的attention模块输出,那么prefix tuning的attention计算可以写成如下形式,加入prefix的attention模块输出等于原本attention模块输出和一个的与上下文无关的增量之间的加权平均。

57cbab66-3cdb-11ed-9e49-dac502259ad0.png

2.2 Adapter

Adapter方法在transformer层子模块之间插入一些新的模块,在Adapter内部,它的输入h通过矩阵乘法Wdown,先将特征维度缩小,然后通过一个非线形层f,再通过矩阵乘法Wup将特征维度放大到跟adapter输入一样的尺寸,最后通过一个跨层连接,将adapter的输入跟上述结果加到一起作为最终adapter的输出,即下图形式。

57e7f262-3cdb-11ed-9e49-dac502259ad0.png


同样包括前面两部分,前面部分还是原先的输入h,而后面部分则是h的一个增量变化,但是相比prefix tuning这里用于计算的前面两部分的权重的门的机制,同样可以把上式改写为以下形式。

57f9314e-3cdb-11ed-9e49-dac502259ad0.png


2.3LoRA

LoRA在transformer的权重矩阵旁插入了一个低秩矩阵,用于近似权重更新,对于预训练模型的权重矩阵W,LoRA通过低秩分解将其表示为如下形式,其中s是一个可训练的参数,在形式跟LoRA极其相似,只是少了一个中间非线性运算和多了一个标准化参数s。

5811bc00-3cdb-11ed-9e49-dac502259ad0.png


3.1 The unified framework

通过对上述几种方法的抽象表示,不难发现这几种方法存在一定的共性,隐藏层的最终表征都由两部分组成,分别是原始的语言模型的输出跟新的增量两部分,虽然很多关键设计有所不同,但是这几种方法都在学习应用于各种隐藏表征的一个修正向量,也就是后半部分。

为了建立统一的框架去理解这些不同方法背后的关键设计,论文定义了以下四个设计维度,并分析了不同方法在这四个维度之间的差异跟联系。

a) Functional Form,修正向量的计算方式,下图中的第二列。

b) Modified Representation,直接调整的隐藏表征位置,作用于attetnion模块还是FFN模块?

c) Insertion Form,新增模块如何插入语言模型中?序列化还是并行化?

如果输入是语言模型的输入,输出是语言模型的输出,则属于并行化,类似于Prefix tuning,如果输入跟输出都是语言模型的输出,则属于序列化,类似于Adapter.

d)Composition Form,修正向量跟原本的隐藏层表征如何结合到一起去构建新的隐藏层表征?

582e41cc-3cdb-11ed-9e49-dac502259ad0.png

图2:不同方法在4个设计维度下的具体信息

在提出上述统一的框架后,通过调整某些设计维度下的信息,论文提出了3种新的迁移学习方法的设计,具体细节可以参考下图理解。

a)Parallel Adapter,

将prefix tuning的并行插入方式迁移到Adapter,也就是把Adapter的insertion form的属性改成prefix tuning。

b)Multi-head Parallel Adapter

将Parallel Adapter应用到multi head attention的位置,也就是把Parallel Adapter的modified representation的属性改成prefix tuning。

c)Scaled Parallel Adapter

将LoRA的复合函数跟插入方式迁移到Adapter,也就是把Adapter的composition form跟insertion form的属性改成LoRA

5844c460-3cdb-11ed-9e49-dac502259ad0.png


图3:多种参数优化方法结构对比

4 实验

为了探索不同的设计维度所隐藏的特性,以及哪些设计维度尤为重要,论文在4个不同类型的下游任务上进行了实验,包括文本总结,文本翻译,文本推断以及情感分类任务,相应的数据集分别为XSum, en-ro, MNLI, SST2。至于语言模型的选择,为了更贴合当前实际,论文使用了encoder-decoder结构的语言模型在前两者上做实验,而使用encoder结构的语言模型在后两者上进行实验。

a)当下主流方法的表现

在文本推断跟情感分类任务的数据集上,现存的几种主流方法在只更新小于1%的参数量条件下可以达到媲美更新全部模型参数的效果,但在文本总结跟翻译任务数据集上,即便增加要更新的参数量,这几种参数优化的方法距离更新全部模型参数的方法在效果上仍有一定差距。

这也说明那些宣称可以媲美finetune全部参数方法效果的参数优化方法,其实是在只包含encoder的模型并在GLUE上取得,或者是基于encoder-decoder的模型在相对简单的文本生成任务上取得媲美finetune全部参数的效果,不能泛化到其他标准评测任务。

58766e2a-3cdb-11ed-9e49-dac502259ad0.png

图4:目前几种主流方法的效果对比

b)Insertion Form

下图中,SA指的是Adapter,相应的insertion form是sequential,PA则是Parallel Adapter,相应的insertion form跟prefix tuning一样,都是parallel。

从实验结果看,使用parallel作为插入方式的prefix tuning跟PA效果明显优于SA,从而说明parallel的插入形式更优。

58ab34de-3cdb-11ed-9e49-dac502259ad0.png

图5:Insertion Form对比

c)ModifiedRepresentation

从下图可以看出,直接作用于FFN层的方法的效果明显优化作用于attention层,这些结果显示FFN层可以更高效的利用新增的参数进行调整。这可能是由于FFN层学习的是具体任务的文本模式,而attention层学习的是文本不同位置之间的交互,具有一定泛化能力,不需要特地为新任务做太多调整导致的。

58d80ebe-3cdb-11ed-9e49-dac502259ad0.png


图6:modified representation对比

当更新的参数量从3.6%减少到0.1%时,作用于attention模块的MH PA(attn)跟prefix tuning的方法在效果上领先于其他方法。

5904a0c8-3cdb-11ed-9e49-dac502259ad0.png

图7:multi head attention的有效性

结合上述实验效果,当目标参数量非常少时,作用于attention层的方法可以取得更好效果,反之,则优先选择作用于FFN层的方法。

d) Composition Function

不难看出,scaling的复合函数效果优于简单相加的复合函数。

5927d8a4-3cdb-11ed-9e49-dac502259ad0.png

图8:不同composition function对比

5 总结

基于前面的实验结论,论文有以下重大发现:

a) Scaled parallel adapter是作用于FFN层的最好变体。

b) FFN层可以通过更多的参数从而更好优化下游模型表现。

c)类似于prefix tuning的作用于attention的方式可以在仅更新0.1%比例参数量的前提下得到不错效果。

于是论文提出一种新的方法Mix-And-Match adapter(MAM Adapter),它包括作用于attention模块30个prefix tuning向量,以及引入更多参数量的scaled parallel adapter,在诸多任务上取得了SOTA效果。融合prefix tuning跟scaled parallel adapter的结构,并根据它们的特点分配合适的优化参数,从而达到一个整体的更优。

之前在学习怎么高效的参数优化方法时总是感觉里面有很多神似的地方,但是建立不了其中的联系,看到这篇论文后,有一种茅塞顿开的领悟,这篇文章提出的统一框架能够帮助大家更好的理解这些参数优化方法,从而更好理解这些关键设计带来的价值。具体到个人,可以根据自己的任务和场景,设计出更加灵活的参数优化的迁移学习方案了。




审核编辑:刘清

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

    关注

    0

    文章

    69

    浏览量

    34971
  • GLUE
    +关注

    关注

    0

    文章

    4

    浏览量

    7322
  • LoRa技术
    +关注

    关注

    3

    文章

    92

    浏览量

    16204

原文标题:Parameter-efficient transfer learning系列之A Unified View

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

收藏 人收藏

    评论

    相关推荐

    基于稀疏编码的迁移学习及其在行人检测中的应用

    定进展,但大都需要大量的训练数据.针对这问题,提出了种基于迁移学习的半监督行人分类方法:首先基于稀疏编码,从任意的未标记样本中,
    发表于 04-24 09:48

    EXCEL文件,每天更新固定不变; 用新的更新计划和固定标准对比,取出值;这种结构框架怎么弄??

    我想做一个labview程序,简化我的日常工作;现在希望高手给予指点;我手上有两EXCEL文件,份是每天更新的计划,另份是固定不变的参
    发表于 01-28 16:43

    迁移学习训练网络

    keras 之 迁移学习,改变VGG16输出层,用imagenet权重retrain
    发表于 09-09 11:02

    还在为非标项目单独开发视觉软件?你out了!labview通用视觉框架,真香!

    labview视觉非标软件开发直以来面临的问题是:算法复用性差,界面臃肿,软件开发周期长。针对这个问题,构思了种极简易的通用视觉框架,课程核心亮点:界面极简,框架易扩展,
    发表于 07-25 23:55

    【洞幺邦】基于深度学习的GAN应用风格迁移

    `​ GAN 是什么?:Generative Adversarial Network我们可以这样定义:“对抗生成网络(GAN)是种深度学习模型,模型通过框架中至少两
    发表于 07-01 10:53

    【木棉花】学习笔记--分布式迁移

    迁移回原设备。创建工程同样的,我们还是创建java的工程,然后将工程命名为 MyMigrate。具体是怎么实现的就可以参考我的前两篇学习笔记:分布式数据库、轻量级偏好数据库
    发表于 09-05 10:49

    【木棉花】学习笔记--分布式迁移+回迁

    前言我又来啦,相信那些不了解分布式的童鞋,学习过我前几篇学习笔记了之后是不是会更加理解了些呢。当然了,我这星期要整理到学习笔记中的也是和分布式能力相关的
    发表于 09-07 20:09

    迁移学习

    的基本原理和编程思想。理解在新的场景或数据集下,何时以及如何进行迁移学习。利用PyTorch加载数据、搭建模型、训练网络以及进行网络微调操作。给定
    发表于 04-21 15:15

    机器学习简介与经典机器学习算法人才培养

    思想。理解在新的场景或数据集下,何时以及如何进行迁移学习。利用PyTorch加载数据、搭建模型、训练网络以及进行网络微调操作。给定迁移
    发表于 04-28 18:56

    分享种智能网卡对热迁移支持的新思路

    般通过Libvirt这工具来管理。Guest是指里面的RAM区域,不需要内容可见。Deivces主要指设备的工作状态。热迁移的过程分以下几步完成:发起热迁移后,在目的物理机上会启
    发表于 07-05 14:46

    基于迁移深度学习的雷达信号分选识别

    基于迁移深度学习的雷达信号分选识别   来源:《软件学报》 ,作者王功明等   摘要:  针对当前雷达信号分选识别算法普遍存在的低信噪比下识别能力差、特征参数提取困难、分类器模型参数
    发表于 03-02 17:35 1001次阅读

    基于谷歌中长尾item或user预测效果的迁移学习框架

    文中提出的迁移学习框架主要包括model-level transfer和item-level transfer。其中model-level transfer通过学习一个多样本模型和一个
    的头像 发表于 09-19 11:18 916次阅读

    一文详解迁移学习

    迁移学习需要将预训练好的模型适应新的下游任务。然而,作者观察到,当前的迁移学习方法通常无法关注与任务相关的特征。在这项工作中,作者探索了重新聚焦模型注意力以进行
    的头像 发表于 08-11 16:56 3637次阅读
    一文详解<b class='flag-5'>迁移</b><b class='flag-5'>学习</b>

    深度学习框架是什么?深度学习框架有哪些?

    深度学习框架是什么?深度学习框架有哪些?  深度学习框架是一种软件工具,它可以帮助开发者轻松快速
    的头像 发表于 08-17 16:03 1782次阅读

    视觉深度学习迁移学习训练框架Torchvision介绍

    Torchvision是基于Pytorch的视觉深度学习迁移学习训练框架,当前支持的图像分类、对象检测、实例分割、语义分割、姿态评估模型的迁移
    的头像 发表于 09-22 09:49 452次阅读
    视觉深度<b class='flag-5'>学习</b><b class='flag-5'>迁移</b><b class='flag-5'>学习</b>训练<b class='flag-5'>框架</b>Torchvision介绍