【论文速读】Adapter tuning:Parameter-Effificient Transfer Learning for NLP

embedded/2024/10/21 20:51:43/

arxiv:1902.00751v2

摘要

对大型预训练模型进行微调是自然语言处理中一种有效的传递机制。然而,在存在许多下游任务的情况下,微调是参数效率较低的:每个任务都需要一个全新的模型。**作为一种替代方案,我们建议使用适配器模块进行传输。适配器模块产生一个紧凑和可扩展的模型;它们每个任务只添加一些可训练参数,可以添加新的任务而无需重新访问以前的任务。原网络的参数保持不变,产生了高度的参数共享。**为了证明适配器的有效性,我们将最近提出的BERT变压器模型转移到26个不同的文本分类任务中,包括GLUE基准测试。Adapters达到接近最先进的性能,同时每个任务只添加几个参数。在GLUE上,我们获得了完全微调性能的0.4%以内,每个任务只添加3.6%的参数。相比之下,微调训练每个任务的100%的参数。

导言

文章总体的思路就是设计了一个adapter(类似适配器)将预训练模型微调的参数从原先的整个大模型,到只需要训练几个小的适配器,就能够达到和原先做法在下游任务差不多的效果,大大减少了模型训练的参数,提高了效率。

Adapter tuning for NLP

我们提出了一个在几个下游任务上调优大型文本模型的策略。我们的策略有三个关键属性:

  1. 它获得了良好的性能

  2. 它允许按顺序对任务进行训练,也就是说,它不需要同时访问所有数据集,

  3. 它只为每个任务添加了少量的额外参数。

这些属性在云服务的上下文中特别有用,在云服务中,许多模型需要对一系列下游任务进行训练,因此需要进行高度的共享。

在标准的微调中,新的顶层和原始的权重是共同训练的。相比之下,在适配器调优中,原始网络的参数被冻结,因此可能被许多任务共享。

适配器模块有两个主要特性:少量的参数和一个接近标识的初始化。

1902.00751v2

摘要

对大型预训练模型进行微调是自然语言处理中一种有效的传递机制。然而,在存在许多下游任务的情况下,微调是参数效率较低的:每个任务都需要一个全新的模型。**作为一种替代方案,我们建议使用适配器模块进行传输。适配器模块产生一个紧凑和可扩展的模型;它们每个任务只添加一些可训练参数,可以添加新的任务而无需重新访问以前的任务。原网络的参数保持不变,产生了高度的参数共享。**为了证明适配器的有效性,我们将最近提出的BERT变压器模型转移到26个不同的文本分类任务中,包括GLUE基准测试。Adapters达到接近最先进的性能,同时每个任务只添加几个参数。在GLUE上,我们获得了完全微调性能的0.4%以内,每个任务只添加3.6%的参数。相比之下,微调训练每个任务的100%的参数。

导言

文章总体的思路就是设计了一个adapter(类似适配器)将预训练模型微调的参数从原先的整个大模型,到只需要训练几个小的适配器,就能够达到和原先做法在下游任务差不多的效果,大大减少了模型训练的参数,提高了效率。

Adapter tuning for NLP

我们提出了一个在几个下游任务上调优大型文本模型的策略。我们的策略有三个关键属性:

  1. 它获得了良好的性能

  2. 它允许按顺序对任务进行训练,也就是说,它不需要同时访问所有数据集,

  3. 它只为每个任务添加了少量的额外参数。

这些属性在云服务的上下文中特别有用,在云服务中,许多模型需要对一系列下游任务进行训练,因此需要进行高度的共享。

在标准的微调中,新的顶层和原始的权重是共同训练的。相比之下,在适配器调优中,原始网络的参数被冻结,因此可能被许多任务共享。

适配器模块有两个主要特性:少量的参数和一个接近标识的初始化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

左:我们向每个Transformer层添加两次适配器模块:在多头注意之后的投影之后,在两个前馈层之后。

右:adapter包含一个bottleneck(瓶颈),它包含了相对于原始模型中的注意力和前馈层的少量参数。该适配器还包含一个跳过连接。在适配器调优过程中,绿色层会对下游数据进行训练,这包括适配器、层的归一化参数和最终的分类层(图中未显示)。
在这里插入图片描述

左:我们向每个Transformer层添加两次适配器模块:在多头注意之后的投影之后,在两个前馈层之后。

右:adapter包含一个bottleneck(瓶颈),它包含了相对于原始模型中的注意力和前馈层的少量参数。该适配器还包含一个跳过连接。在适配器调优过程中,绿色层会对下游数据进行训练,这包括适配器、层的归一化参数和最终的分类层(图中未显示)。


http://www.ppmy.cn/embedded/129359.html

相关文章

起吊机革新:协议转换器解锁安全与效率

重工起吊机设备在工业生产中扮演着至关重要的角色,但其在实际应用中面临着一系列痛点问题。这些问题不仅影响了起吊机的性能和安全性,还限制了生产效率的提升。我们自主研发的MG协议转换器能够高效解决这些痛点,同时MG协议转换器作为一种关键…

K8s-pod详解2

Pod生命周期 我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程: pod创建过程运行初始化容器(init container)过程运行主容器(main container) 容器启动后钩子&#xff0…

java 异常包装

当往数据库里插入数据主键重复时,系统会抛出异常 java.sql.SQLIntegrityConstraintViolationException 这时候我们会自定义一个全局异常处理器去捕获异常。 public class GlobalExceptionHandler {ExceptionHandler(SQLIntegrityConstraintViolationException.cl…

债券市场金融基础设施 (2020版)

前言:我国债券市场格局简介 我国金融市场主要包括货币市场、资本市场、外汇市场、金融衍生工具市场等,其中,资本市场是金融市场重要组成部分,承担着实体经济直接融资的重责,做大做强资本市场对整个国民经济具有重要意义。债券市场是资本市场两大组成部分之一,对提高直接…

Linux——综合实用操作

目录 IP与主机 ping命令 wget命令 curl命令 端口:设备与外界通讯交流的出入口 进程管理 Linux top命令Windows 任务管理器 磁盘信息监控 df iostat 网络状态监控 sar -n DEV命令 环境变量 上传,下载 压缩 解压tar,zip&#xff…

maven学习笔记

maven 学习笔记 一、maven 简介 1.1 maven 介绍 Maven 是一款为 Java 项目构建管理、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。 1.2 maven 主要作用理解 有时候我们…

【 用python写一个把视频每一帧提取为png图片】

用python写一个把视频每一帧提取为png图片 在运行此代码之前,请确保您已经安装了OpenCV库。如果没有安装,可以使用以下命令进行安装: pip install opencv-python下面是提取视频帧的Python脚本: import cv2 # 视频文件路径 vide…

《OpenCV计算机视觉》—— 风格迁移

将下图中的图片换一种风格展示出来 如下图结果: 完整代码如下: import cv2image_yuantu cv2.imread("wechat.jpg") image cv2.resize(image_yuantu, dsizeNone, fx0.5, fy0.5) cv2.imshow(yuan tu, image) cv2.waitKey(0)""&q…