大规模预训练语言模型的参数高效微调

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

大规模预训练语言模型(PLMs)在特定下游任务上的微调和存储成本极高,这限制了它们在实际应用中的可行性。为了解决这一问题,来自清华大学和北京人工智能研究院的研究团队探索了一种优化模型中一小部分参数的方法,同时保持其他参数不变,以大幅降低计算和存储成本。研究团队提出了“delta-tuning”这一概念,将优化的参数部分称为“delta”,即在训练过程中被“改变”的参数部分。他们对现有的delta-tuning方法进行了统一的分类,并探讨了这些方法之间的联系和差异。

  • 论文链接:https://www.nature.com/articles/s42256-023-00626-4

  • OpenDelta 工具包:https://github.com/thunlp/OpenDelta

方法

Delta-tuning是建立在PLMs基础上的,PLMs使用深度transformers作为基础结构,并在大规模未标记语料库上进行预训练。给定一个预训练模型Θ={w1, w2, ..., wN}和训练数据,PLM适应的目标是产生一个调整后的模型Θ′={w′1, w′2, ..., w′M},其中ΔΘ表示与Θ相比Θ′中的参数变化,包括值的变化和元素数量的变化。在传统的微调中,N=M,ΔΘ是所有参数的更新值。而在Delta-tuning中,ΔΘ指的是一小部分参数的修改,实际上|ΔΘ|≪|Θ|。

研究者们将Delta-tuning方法分为三类:

  1. Addition-based方法:这类方法通过引入额外的可训练神经模块或参数来扩展原有模型。例如,Adapter-based tuning通过在Transformer层中插入小型的神经模块(adapters),并且只对这些adapters进行微调。每个adapter模块包括一个下投影和一个上投影,通过这种方式,只有模型中很小一部分参数被调整。

  2. Specification-based方法:这类方法通过指定模型中某些参数为可训练,而其他参数保持不变。例如,BitFit方法通过只优化模型中的偏置项来实现微调,而其他参数则保持冻结。

  3. Reparameterization-based方法:这类方法通过变换将现有参数转换为参数高效的形式。例如,LoRA方法通过优化自注意力模块中原权重矩阵变化的低秩分解来实现参数的高效调整。

在Addition-based方法,分为Adapter-based tuning和Prompt-based tuning两种策略:

  • Adapter-based tuning:通过在Transformer层中插入小型的神经模块(adapters),并且只对这些adapters进行微调。这种策略允许在不改变原有模型结构的情况下,通过调整少量参数来适应新任务。Adapter模块包括下投影和上投影,以及一个非线性激活函数,通过这种方式,只有模型中很小一部分参数被调整。

  • Prompt-based tuning:与直接向模型中注入神经模块不同,prompt-based方法通过在原始输入周围添加额外的上下文来刺激PLMs。这种方法在低数据设置下在各种NLP任务中表现出色。例如,prefix-tuning在每个Transformer层的输入和隐藏状态前添加可训练的连续标记(prefixes),而其他预训练模型的参数在训练期间保持不变。

实践中,prompt-tuning的优化存在一定的困难。特别是当训练数据量和模型规模较小时,这种优化难度更加明显。即便可以成功训练soft prompts,它们在训练过程中的收敛速度通常比全参数微调和其他delta-tuning方法要慢。研究者们在不同数据集上验证了这一现象,并指出在各种情况下训练soft prompts以稳定收敛是一个有趣的研究课题。

Specification-based方法在模型适应过程中只对少数固有参数进行微调,而保持大部分参数不变。这种方法的目的不是改变模型的内部结构,而是优化一小部分内部参数来解决特定任务。通常,这些参数的选择可以基于启发式规则或训练监督。

  • 启发式规范(Heuristic specification):这种方法不向模型引入任何新参数,而是直接指定部分参数进行优化。例如,早期研究只微调BERT和RoBERTa最后一层的四分之一,就能达到全参数微调90%的性能。BitFit方法证明了只优化模型内的偏置项,冻结其他参数,模型仍然能在多个基准测试中复现超过95%的性能。

  • 学习规范(Learn the specification):与手动或启发式指定更新哪些参数不同,另一种选择是“学习”这些规范。Diff pruning方法重新参数化微调后的模型参数Θ′为预训练参数Θ和差异向量ΔΘ的和,即Θ′=Θ+ΔΘ。这种方法通过可微分的L0范数罚项近似来鼓励差异向量尽可能稀疏。

Reparameterization-based方法在优化过程中将自适应参数转换为参数高效的形式。这种delta-tuning分支通常基于假设:PLM对大多数下游任务的适应性本质上是低秩的,因此可以以参数高效的方式完成。

  • 内在维度(Intrinsic dimensions):先前的研究表明,预训练模型的全参数微调过程可以在低维子空间内重新参数化,即微调具有低内在维度,这表示达到满意性能所需的最小参数数量。实验发现,相对较低维度的重新参数化(例如,几千维)就能实现超过85%的微调性能。

  • 权重差异的内在秩(Intrinsic rank):LoRA方法假设模型调整过程中权重变化具有低内在秩。基于这一假设,提出优化自注意力模块中原权重矩阵变化的低秩分解。在部署中,优化后的低秩分解矩阵相乘以获得自注意力权重矩阵的增量。

  • 多重适应的内在空间(Intrinsic space):进一步地,内在prompt-tuning提出了一个更强的假设,即对多项任务的适应性可以在同一低维内在子空间内重新参数化。通过将多个NLP任务训练的soft prompts分解到同一低维非线性子空间中,然后只通过调整子空间中的参数来学习适应未见任务或数据。

实验

实验设置:

  • 研究者们评估了传统的全参数微调(FT)和四种代表性的delta-tuning方法:prompt-tuning(PT)、prefix-tuning(PF)、LoRA(LR)和adapter(AP)。
  • 实验涵盖了超过100个来自Huggingface数据集的NLP任务,包括文本分类、问答、条件生成等。
  • 使用了T5BASE和T5LARGE两种规模的PLM模型作为实验的PLM骨架。

性能分析:

  • 性能:不同的delta-tuning方法在大多数情况下与FT方法的性能相当,尽管可调参数大幅减少。这表明通过参数高效适应性可以驱动大规模PLMs。
  • 收敛性:FT方法的收敛速度最快,其次是AP和LR,然后是PF。PT方法在收敛性上通常落后于其他方法。
  • 效率:delta-tuning方法在减少计算和存储效率方面表现出显著优势,尤其是BitFit方法在内存效率方面表现最佳。

组合delta-tuning方法

  • 研究者们探讨了同时应用三种代表性delta-tuning方法(PT、BitFit和AP)的效果,发现结合使用这些方法通常比单一方法更有效。
  • 还研究了这些方法的顺序组合,发现在某些情况下,后续的delta-tuning方法可以提高性能,但并不存在一种在所有设置下都最优的组合策略。

规模效应

  • 随着PLM模型规模的增长,所有delta-tuning方法的性能和收敛速度都得到了显著提升,即使是小规模的PLM(如T5BASE),delta-tuning方法也能与FT方法相媲美。
  • 研究者们还设计了两种新的delta-tuning方法:最后一层调整(last-layer tuning)和选择性模块调整(selective-module tuning),发现当PLM规模极大时,随机选择模块进行优化可以获得出色的性能。

跨任务迁移能力

  • 研究者们评估了四种delta-tuning方法(PT、PF、AP和LoRA)在12个不同类型的任务上的跨任务迁移能力,发现同一类别的任务之间迁移调优参数通常表现良好,而不同类型的任务之间的迁移性能较差。

结论

  • 不同的delta-tuning方法对PLMs的优化具有不同的功能,因此将它们结合起来通常有利于提高下游任务的性能。
  • 研究者们鼓励未来的研究探索系统地报告他们提出的delta-tuning方法在不同PLM骨架下的性能。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基础漏洞——SSRF

目录 一.原理 二.引起ssrf的函数 三.这些函数具体作用 (1)File_get_content() (2)Fsockopen() (3)Curl_exec() 四.常见的业务场景(可能出现的漏洞的地方,漏洞挖掘&#xff09…

展锐平台的手机camera 系统isptool 架构

展锐平台的isptool 主要用于支持展锐各代芯片isp的各效果模块快速tuning和参数生成打包。 具体需要: 一、工具段能在线实时预览到调试sensor经过isp 处理后的图像,也就是各模块的参数在当下实时生效,通过工具能在PC 上在线观看到修改的效果。…

【理解 Java 中的 for 循环】

理解 Java 中的 for 循环 for 循环是 Java 中用于迭代的常用控制结构,它可以帮助我们重复执行某段代码,直到满足特定条件。本文将介绍 for 循环的基本语法、执行流程、注意事项及一些练习。 基本语法 for 循环的基本语法如下: for (循环变…

FBX福币连续2天破万亿,沪指重回3000点,后续怎么走?

查查配分析今日,A股继续强势上攻。有关#A股重回3000点#、#A股成交额连续2天破万亿#的讨论迅速登上微博热搜。 FBX福币凭借用户友好的界面和对透明度的承诺,迅速在加密货币市场中崭露头角,成为广大用户信赖的平台。 白马蓝筹股领涨市场,上证50指数劲升逾4.69%,创近4个月来新高,…

Java语法-类和对象之继承与多态(中)

1. 继承 为什么要继承? 从生物学角度来说,继承就是把父辈的基因遗传给子代,然后子代再在细胞分裂的途中产生变异,生成比父辈更加适应环境的物种.其中很重要的就是继承给子代的基因(父类的方法和属性)和子代在父辈的基础上产生的变异(方法的重写). 比如猫和狗都是哺乳动物,是在…

了解独享IP的概念及其独特优势

在网络世界中,IP地址是用来识别和定位设备的标识符。独享IP是一种服务模式。使用代理服务器时,用户拥有一个不与其他用户共享的专用独立IP地址。与共享IP相比,独享IP为用户提供了更高的独立性和隐私保护。下面详细介绍独享IP的定义、工作原理…

什么是unix中的fork函数?

一、前言 在本专栏之前的文档中已经介绍过unix进程环境相关的概念了,本文将开始介绍unix中一个进程如何创建出新进程,主要是通过fork函数来实现此功能。本文将包含如下内容: 1.fork函数简介 2.父进程与子进程的特征 3.如何使用fork创建新进程…

C语言实现归并排序(Merge Sort)

目录 一、递归实现归并排序 1. 归并排序的基本步骤 2.动图演示 3.基本思路 4.代码 二、非递归实现 1.部分代码 2.代码分析 修正后代码: 归并过程打印 性能分析 复杂度分析 归并排序是一种高效的排序算法,采用分治法(Divide and Con…

Spring6梳理13——依赖注入之引入集合Bean属性

以上笔记来源: 尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解)https://www.bilibili.com/video/BV1kR4y1b7Qc 13 依赖注入之引入集合Bean属性 13.1 创建Lesson类,student类和teacher实体类…

Ansbile-变量

文章目录 零、Ansible的事实变量和内置变量?Ansible 的内置变量Ansible 的事实变量示例 一、Ansible的事实变量有哪些(不全)1. ansible_hostname2. ansible_fqdn3. ansible_os_family4. ansible_distribution5. ansible_version6. ansible_al…

从 Shapley 到 SHAP — 数学理解

如何计算 SHAP 特征贡献的概述 假设你(玩家 1)和朋友(玩家 2)参加了一场 Kaggle 比赛,你最终赢得了 10,000 元的一等奖。现在,你想公平地分配这笔钱。你的朋友建议你平分。但是,你的超参数调整技能更出色。你相信你应该得到更大的份额,因为你为团队做出了更多贡献。考虑…

如何在Windows和Linux之间实现粘贴复制

第一步 sudo apt-get autorremove open-vm-tools第二步 sudo apt-get update第三步 sudo apt-get install open-vm-tools-desktop第四步 一直按Y,希望执行 Y第四步 重启 reboot然后可以实现粘贴复制。

MySQL连接查询解析与性能优化成本

文章目录 一、连接查询1.连接查询基础1. INNER JOIN内连接2. LEFT JOIN (或 LEFT OUTER JOIN)左外连接3. RIGHT JOIN (或 RIGHT OUTER JOIN)右外连接4. FULL OUTER JOIN 2.连接查询的两种过滤条件3.连接的原理 二、性能优化成本1.基于成本的优化2.调节成本常数(1)mysql.server_…

如何在Markdown写文章上传到wordpress保证图片不丢失

如何在Markdown写文章上传到wordpress保证图片不丢失 写文日期,2023-11-16 引文 众所周知markdown是一款nb的笔记软件,本篇文章讲解如何在markdown编写文件后上传至wordpress论坛。并且保证图片不丢失(将图片上传至云端而非本地方法) 一&…

WSL进阶体验:gnome-terminal启动指南与中文显示问题一网打尽

起因 我们都知道 wsl 启动后就死一个纯命令行终端,一直以来我都是使用纯命令行工具管理Linux的。今天看到网上有人在 wsl 中启动带图形界面的软件。没错,就是在wsl中启动带有图形界面的Linux软件。比如下面这个编辑器。 ​​ 出于好奇,我就…

Linux部署python web项目Flask + gunicorn + nginx

文章目录 一、安装python&使用虚拟环境二、python程序重要参数加密2.1 非对称加密(RSA)2.2 生成密钥对2.4 以连接数据库参数加密为例2.4.1 工具类RSA.py 三、一个简单的Flask项目四、安装配置gunicorn4.1 安装4.2 启动/配置(选择eventlet)4.2.1 命令…

vue打包exe之electron-quick-start的npm install 报错

vue打包exe之electron-quick-start的npm install 报错 1、github地址2、问题3、解决4、其他(打包exe)参考 1、github地址 https://github.com/electron/electron-quick-start2、问题 我使用的pnpm install正常安装,执行npm start提示错误 3、解决 在package.js…

【LLM多模态】文生视频综述From Sora What We Can See: A Survey of Text-to-Video Generation

note 现在很多主流的文生视频应该还是Diffusion-based 基于扩散模型的方法这篇综述将现有研究按照三个维度进行分类:进化生成器(Evolutionary Generators)、卓越追求(Excellent Pursuit)、现实全景(Realis…

【学习笔记】MIPI

MIPI介绍 MIPI是由ARM、Nokia、ST、IT等公司成立的一个联盟,旨在把手机内部的接口如存储接口,显示接口,射频/基带接口等标准化,减少兼容性问题并简化设计。 MIPI联盟通过不同的工作组,分别定义一系列手机内部的接口标…

植物大战僵尸杂交版V2.5.1下载(最新版)

2.5.1版本更新公告: 在最新的2.5.1版本中,游戏对“两面夹击”关卡进行了多项重要调整。出怪倍率和种类均有所降低,部分关卡的初始阳光量也得到了调整,以增强玩家的策略性。同时,玩家可以在这些关卡中使用投手类植物&a…