参数高效的迁移学习在自然语言处理中的应用

 人工智能咨询培训老师叶梓 转载标明出处

迁移学习技术,尤其是针对大型预训练模型的微调(fine-tuning),在诸多下游任务中展现出了卓越的性能。然而,当面临众多任务时,传统的微调方法存在参数效率低下的问题,因为它需要为每个新任务训练一个全新的模型。为了解决这一问题,本文提出了一种使用适配器模块(Adapter Modules)进行迁移学习的新方法,该方法由Neil Houlsby、Andrei Giurgiu、Stanisław Jastrzebski等研究者共同提出。

论文链接:https://arxiv.org/pdf/1902.00751

代码地址:GitHub - google-research/adapter-bert

图 1: 展示了适配器调整(Adapter tuning)和微调(Fine-tuning)在训练特定任务参数数量和准确率之间的权衡。图中的y轴以全参数微调的性能为基准进行了归一化,x轴表示每个任务训练的参数数量。显示了在GLUE基准的九个任务上,适配器调整能够以更少的参数数量达到与全参数微调相似的性能。

方法 

适配器调整(Adapter Tuning)策略主要针对大型文本模型在多个下游任务上的调整,具有三个关键特性:良好的性能表现、支持任务顺序训练、以及每个任务只增加少量额外参数。这些特性在云计算服务中尤为重要,因为云服务常常需要在一系列下游任务上训练多个模型,而高度的参数共享是理想的状态。

为了实现这些特性,研究者提出了一种新的瓶颈适配器模块(bottleneck adapter module)。与传统的深度网络微调不同,适配器调整策略通过在原始网络中注入新的层来实现,这些新层被称为适配器层。在适配器调整过程中,原始网络的权重保持不变,而新的适配器层则随机初始化。这种设计允许原始网络的参数在多个任务中共享,从而提高了参数效率。

适配器模块的两大特点:

  1. 参数数量少:适配器模块相比于原始网络的层要小得多,这意味着当添加更多任务时,模型大小的增长相对较慢。
  2. 近恒等初始化:为了模型训练的稳定性,适配器模块需要进行近恒等初始化。初始化时,适配器对原始网络的影响很小,但在训练过程中可以激活适配器来改变网络中激活的分布。

Transformer网络因其在多种NLP任务中的优异表现而受到青睐。适配器模块被设计为可以插入到Transformer的每个层中。具体来说,每个Transformer层包含两个主要的子层:注意力层(attention layer)和前馈层(feed-forward layer)。在这两层之后,会立即进行一个投影,将特征尺寸映射回该层输入的大小。每个子层的输出会进入层归一化(Layer Norm)。

在每个子层之后,研究者插入了两个串联的适配器。适配器直接应用于子层的输出,在将尺寸投影回输入大小之后,但在将跳过连接(skip connection)加回来之前。适配器的输出随后直接进入下一层归一化。为了限制参数数量,适配器采用了瓶颈架构,首先将原始的d维特征投影到更小的维度m,应用非线性激活,然后再投影回d维。每层增加的总参数数量(包括偏置)是2md+d+m。通过设置m≪d,限制了每个任务增加的参数数量;实际操作中使用的参数数量大约是原始模型的0.5-8%。

图2展示了适配器的架构以及其与Transformer的集成方式。适配器模块被添加到每个Transformer层的两个位置:多头注意力(multi-headed attention)后的投影和两个前馈层之后。适配器由一个瓶颈组成,其参数数量相对于原始模型中的注意力层和前馈层要少得多。适配器还包含一个跳过连接。在适配器调整期间,绿色层(包括适配器、层归一化参数和最终分类层)是在下游数据上训练的。

瓶颈维度m 在适配器模块的设计中扮演着至关重要的角色。它为研究者提供了一个权衡性能和参数效率的简单工具。通过调整 m 的值,可以控制每个任务增加的参数数量,从而在保持模型性能的同时减少参数的增加。这种设计使得适配器模块在引入新任务时,对原始模型的改动保持在最低限度,从而有效控制了模型复杂度的增长。

适配器模块内部的跳过连接(skip-connection)是另一个关键设计。这种连接允许模型在处理信息时绕过适配器模块,维持了一定程度的原始网络特性。当适配器的投影层参数初始化接近零时,整个适配器模块初始化为一个近似的恒等函数,这意味着在训练开始时,适配器模块对网络的影响很小。随着训练的进行,适配器模块可以根据任务需求逐渐调整其参数,以优化模型性能。

除了适配器模块本身,研究者还为每个任务训练了新的层归一化参数。层归一化是一种有效的技术,可以稳定和加速神经网络的训练过程。在适配器模块的上下文中,层归一化参数的引入,类似于条件批量归一化(Conditional Batch Normalization)、FiLM和自调制(Self-modulation)等技术,进一步增强了模型对新任务的适应能力。通过这种方式,每层只需要增加 2d 个参数,就能实现有效的特征归一化和模型性能提升。

尽管层归一化参数的引入提高了模型的适应性,但仅依靠这些参数并不足以保证模型在所有任务上都能取得良好的性能(在后面的实验验证了这一点)。尽管层归一化参数有助于模型的调整,但如果不结合适配器模块中的其他参数进行联合训练,模型的整体性能将受到影响。这说明了适配器模块中各部分参数的协同作用对于实现高性能的迁移学习至关重要。

想要掌握如何将大模型的力量发挥到极致吗?2024年10月26日叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。

留言“参加”即可来叶老师的直播间互动,1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

实验

 研究者们使用了公开的预训练BERT Transformer网络作为基础模型。在进行分类任务时,遵循了Devlin等人(2018)的方法,将每个序列中的第一个标记作为一个特殊的“分类标记”,并在该标记的嵌入上附加一个线性层来预测类别标签。训练过程也遵循了Devlin等人(2018)的方法,使用Adam优化器,学习率在前10%的步骤中线性增加,然后线性衰减至零。所有实验都在4个Google Cloud TPUs上进行,批量大小为32。对于每个数据集和算法,研究者们进行了超参数扫描,并根据验证集的准确率选择最佳模型。对于GLUE任务,报告了提交网站提供的测试指标。对于其他分类任务,则报告测试集准确率。

研究者们首先在GLUE基准测试上进行评估。对于这些数据集,他们从预训练的BERT LARGE模型开始迁移,该模型包含24层,总共有330M参数。对于适配器调整,他们进行了小范围的超参数扫描:学习率在{3·10^−5, 3·10^−4, 3·10^−3}中选择,训练周期在{3, 20}中选择。他们测试了使用固定适配器大小(瓶颈中的单元数)和根据任务选择最佳大小{8, 64, 256}。适配器大小是唯一需要调整的适配器特定超参数。由于训练不稳定,他们使用不同的随机种子重跑了5次,并在验证集上选择了最佳模型。表 1汇总了在GLUE测试集上的实验结果,使用GLUE评估服务器的得分。

为了进一步验证适配器产生的模型是否紧凑且性能良好,研究者们在额外的公开可用的文本分类任务上进行了测试。这些任务包含了多样化的数据集:训练样本数量从900到330k不等,类别数量从2到157不等,平均文本长度从57到1.9k字符不等。对于这些数据集,他们使用了32的批量大小。由于数据集的多样性,他们扫描了广泛的学习率范围:{1·10^−5, 3·10^−5, 1·10^−4, 3·10^−3}。由于数据集数量众多,他们根据验证集学习曲线的检查,从集合{20, 50, 100}中手动选择了训练周期的数量。他们为微调和适配器选择了最优值。表 2: 展示了在额外的文本分类任务上的测试准确率。

图4为两个GLUE任务(MNLIm和CoLA)上,训练参数数量与验证集准确率的关系。比较了适配器调整、微调顶层以及仅调整层归一化参数的三种方法。 适配器大小控制了参数效率,较小的适配器引入的参数更少,但可能会影响性能。为了探索这种权衡,研究者们考虑了不同的适配器大小,并与两个基线进行了比较:(i) 微调BERTBASE的顶层k层。(ii) 仅调整层归一化参数。学习率是使用方法中介绍的范围进行调整的。

研究者们通过在SQuAD v1.1上运行来确认适配器不仅在分类任务上有效。给定一个问题和维基百科段落,这项任务要求从段落中选择问题的答案跨度。图5显示了在SQuAD验证集上微调和适配器的参数/性能权衡。对于微调,他们扫描了训练层数、学习率在{3·10^−5, 5·10^−5, 1·10^−4}中选择,以及训练周期在{2, 3, 5}中选择。对于适配器,他们扫描了适配器大小、学习率在{3 · 10^−5, 1 · 10^−4, 3 · 10^−4, 1 · 10^−3}中选择,以及训练周期在{3, 10, 20}中选择。与分类一样,适配器在训练更少参数的同时,达到了与全参数微调相当的性能。大小为64(2%参数)的适配器达到了90.4%的最佳F1分数,而微调达到了90.7%。即使是很小的适配器,如大小为2(0.1%参数)的适配器也达到了89.9的F1分数。

为了确定哪些适配器是具有影响力的,研究者移除了一些训练过的适配器,并在不重新训练的情况下在验证集上重新评估模型。图6显示了在移除所有连续层跨度的适配器时性能的变化。实验是在BERTBASE上使用适配器大小64对MNLI和CoLA进行的。首先,他们观察到移除任何单层的适配器对性能的影响很小。热图的对角线上的元素显示了移除单层适配器的性能,其中最大的性能下降是2%。相比之下,当从网络中移除所有适配器时,性能显著下降:在MNLI上下降到37%,在CoLA上下降到69%——这是通过预测大多数类别得到的分数。这表明尽管每个适配器对整个网络的影响很小,但总体效应是大的。

另外图6表明,较低层次的适配器比高层次的适配器影响要小。在MNLI上移除0-4层的适配器几乎不影响性能。这表明适配器之所以表现良好,是因为它们自动优先考虑更高层次。事实上,专注于上层是一种流行的微调策略。一种直觉是,较低层提取的是不同任务间共享的较低级别的特征,而较高层构建的则是特定于不同任务的特征。这与他们的观察结果相关,即对于一些任务,仅微调顶层的性能就超过了全参数微调,如表2所示。

研究者们调查了适配器模块对神经元数量和初始化规模的鲁棒性。在主要实验中,适配器模块的权重是从均值为零、标准差为10^−2的高斯分布中抽取的,截断到两个标准差。为了分析初始化规模对性能的影响,他们测试了在区间[10^−7, 1]内的标准差。图6总结了结果。他们观察到,在两个数据集上,适配器的性能对于低于10^−2的标准差是鲁棒的。然而,当初始化过大时,性能会下降,在CoLA上更为显著。

为了研究适配器对神经元数量的鲁棒性,研究者们重新检查了实验数据。他们发现,跨适配器大小的模型质量是稳定的,可以在对性能影响很小的情况下为所有任务使用固定的适配器大小。对于每个适配器大小,他们通过选择最优的学习率和训练周期,计算了八个分类任务的平均验证准确率。对于适配器大小8、64和256,平均验证准确率分别为86.2%、85.8%和85.7%。这一信息得到了图4和图5的进一步证实,这些图显示了在几个数量级上稳定的性能。

研究者最后尝试了适配器架构的一些扩展,但没有获得显著的性能提升。他们在这里记录了这些尝试,以供完整性。他们尝试了(i)在适配器中添加批/层归一化,(ii)增加每个适配器的层数,(iii)不同的激活函数,如tanh,(iv)仅在注意力层内插入适配器,(v)将适配器并行添加到主层,并可能与乘法交互。在所有情况下,他们观察到的结果性能与第前面提出的瓶颈相似。因此,由于其简单性和强大的性能,他们推荐原始的适配器架构。

适配器模块为自然语言处理中的迁移学习提供了一种新的视角,它通过在预训练模型中插入轻量级的模块,实现了对新任务的高效适应。这种方法不仅减少了模型的存储和计算需求,还保持了优异的性能,对于需要处理大量任务的应用场景具有重要的实际意义。随着自然语言处理技术的不断进步,适配器模块有望在未来的NLP任务中发挥更大的作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1549424.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Centos8.5.2111(1)之本地yum源搭建和docker部署与网络配置

由于后边可能要启动多个服务,避免服务之间相互干扰,本课程建议每个服务独立部署到一台主机上,这样做会导致资源占用过多,可能会影响系统的运行。服务器部署一般不采用GUI图形界面部署,而是采用命令行方式部署&#xff…

JavaWeb图书借阅系统

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 spring-mybatis.xml3.5 spring-mvc.xml3.5 login.jsp 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优…

【机器学习】——决策树以及随机森林

文章目录 1. 决策树的基本概念与结构1.1 决策树的构建过程 2. 决策树的划分标准2.1 信息增益(Information Gain)2.2 信息增益比(Information Gain Ratio)2.3 基尼指数(Gini Index)2.4 均方误差(…

HJ50-四则运算:栈的运用、中缀表达式转后缀表达式并计算结果

文章目录 题目一、分析1.1表达式预处理1.2中缀表达式转后缀1.3 后缀表达式计算结果 二、答案 题目 一、分析 通过利用栈将中缀表达式转换为后缀表达式,在根据后缀表达式计算运算结果。由于包含负数操作数的情况,并且操作数位数不固定为1,因此…

USB 3.1 标准 B 型连接器的接口定义与引脚分配

连接器 USB 3.1 规范定义了以下连接器: 超速标准 A 插头和插座;超速标准 B 插头和插座;超速 Micro B 插头和插座;超速 Micro A 插头;超速 Micro-AB 插座。 所有超速连接器具有相同的配合接口并且彼此兼容。 下表列…

腾讯云SDK购买流程

音视频终端 SDK 需购买对应 License/套餐获得使用授权,本文将对购买 License/套餐的操作进行详细指引。 您可首先参考计费概述 确认您需要购买的内容,随后参考本文进行购买。本文仅提供 SDK 授权费用所需资源的购买,如果您需要使用其他相关云…

锦天云中秋之夜团圆家宴圆满成功

2024年9月7日,锦天云(深圳)计算机设备有限公司 在中国深圳成功举办了“融创智合•月满锦天 锦天云中秋之夜团圆家宴。本次盛会吸引了来自各行业的精英和合作伙伴,大家齐聚一堂,共同庆祝这一传统佳节,此次活…

SPI驱动学习七(SPI_Slave_Mode驱动程序框架)

目录 一、SPI_Slave_Mode驱动程序框架1. Master和Slave模式差别1.1 主设备 (Master)1.2 从设备 (Slave)1.3 示例 2. SPI传输概述2.1 数据组织方式2.2 SPI控制器数据结构 3. SPI Slave Mode数据传输过程4. 如何编写程序4.1 设备树4.2 内核相关4.3 简单的示例代码4.3.1 master和s…

K8S真正删除pod

假设k8s的某个命名空间如(default)有一个运行nginx 的pod,而这个pod是以kubectl run pod命令运行的 1.错误示范: kubectl delete pod nginx-2756690723-hllbp 结果显示这个pod 是删除了,但k8s很快自动创建新的pod,但是…

今日指数项目股票成交量对比功能

股票成交量对比功能 1. 股票成交量对比功能分析 1.1 模型示列 功能描述:统计A股大盘T日和T-1日成交量对比功能(成交量为沪深两市成交量之和) 1.2 接口示列 返回数据格式 服务路径:/api/quot/stock/tradeAmt 服务方法&#xf…

PCL uniform_sampling均匀采样抽稀

目录 一、概述二、代码三、结果 一、概述 均匀采样抽稀点云。 二、代码 uniform_sampling.cpp #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/point_cloud.h> #include <pcl/keypoints/uniform_s…

[Admin] Things Need to Know

List View Bulk Actions Highlight: To take bulk actions on all of the available records in a list, you click the bulk action button without selecting any records.

利士策分享,攀登职场高峰:成功者的十大特质

利士策分享&#xff0c;攀登职场高峰&#xff1a;成功者的十大特质 在职场这个竞争激烈的舞台上&#xff0c;那些能够迅速崛起、实现职业辉煌的佼佼者&#xff0c;往往凭借一系列独特且鲜明的特质脱颖而出。以下是对这些特质的深入探讨&#xff1a; 第一章&#xff1a;高情商的…

怎么不用付费直接编辑pdf?5款pdf在线编辑器免费推荐给你!

在我们日常工作中&#xff0c;可能会经常需要直接编辑修改pdf内容&#xff0c;例如&#xff0c;在将文档发送给其它人之前&#xff0c;您可能需要进行一些修改&#xff1b;或者当扫描的文本出现错误时&#xff0c;您也需要进行修正。此时&#xff0c;如果有一款在线编辑器&…

黑神话悟空小西天

游戏里我们一开始就出现一个很可爱的小和尚&#xff0c;当脚步声传来&#xff0c;小和尚化身为一尊弥勒佛&#xff0c;而这尊弥勒佛的大小和位置都在说&#xff0c;这里没有弥勒佛的位置。 随后天命人进入一片雪地&#xff0c;遇到了赤尻马猴&#xff0c;打跑赤尻马猴&#xff…

从哪里下载高清解压视频素材?推荐五个优质素材资源网站

想制作吸引人的抖音小说推文&#xff0c;但不知道从哪里获取高清解压视频素材&#xff1f;今天就为大家推荐五个优秀的网站&#xff0c;帮助你轻松找到所需的素材&#xff0c;提升你的创作质量。 首先是蛙学网 作为国内顶级的短视频素材网站&#xff0c;蛙学网提供了丰富的4K高…

Transformer是不是BERT、GPT的妈?看完就知道了

Transformer变异衍生出来了两个超强悍的预训练模型 一、Transformer模型 Transformer是近年来深度学习领域中备受瞩目的模型之一&#xff0c;其核心思想是通过自注意力机制和位置编码来捕捉输入序列中的长距离依赖关系。 自注意力机制让模型在处理每个输入元素时能够关注到所有…

Proe 5.0资源百度网盘下载 附详细安装步骤

如大家所了解的&#xff0c;Proe又称作Pro/E&#xff0c;是比较常用的CAD/CAM/CAE软件之一&#xff0c;也是一款功能齐全的模具和产品设计三维的工具。 Proe在传统机械设计、家电设计以及模具设计方面&#xff0c;优势很突出。 首先&#xff0c;建模采用参数化设计&#xff0…

Qt/C++ 解决调用国密SM3,SM4加密解密字符串HEX,BASE64格式转换和PKCS5Padding字符串填充相关问题

项目中遇到了需要与JAVA WEB接口使用SM3,SM4加密数据对接的需求&#xff0c;于是简单了解了下SM3与SM4加密算法在C环境下的实现。并使用Qt/C还原了在线SM3国密加密工具和在线SM4国密加密解密工具网页的示例功能的实现 目录导读 前言SM3算法简介SM4算法简介 实现示例字符串HEX,B…

气膜影院:沉浸式观影体验的全新选择—轻空间

随着观影需求的不断提升&#xff0c;传统影院形式已经无法满足观众对更高沉浸感和视觉体验的追求。气膜影院作为一种新兴的观影场所&#xff0c;以其独特的球幕结构和先进的技术手段&#xff0c;为观众带来了全新的沉浸式视听体验。 全景沉浸式观影体验 气膜影院采用球幕设计&a…