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

news2024/9/23 13:29:10

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

大规模预训练语言模型(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分解到同一低维非线性子空间中,然后只通过调整子空间中的参数来学习适应未见任务或数据。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加助理微信:amliy007,29.9元即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory,关注享粉丝福利,限时免费CSDN听直播后的录播讲解。
LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验

实验设置:

  • 研究者们评估了传统的全参数微调(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.coloradmin.cn/o/2078483.html

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

相关文章

[MRCTF2020]pyFlag(详解附送多个python脚本)

Hex: FF D9 5B 53 65 63 72 65 74 20 46 69 6C 65 20 50 61 72 74 20 31 3A 5D ASCII: [Secret File Part 1:] 发现Setsuna.jpg尾部有多余的一部分有左侧窗口pk头&a…

手把手教你GPT-SoVITS V2版本模型教程,内附整合包

首先需要声明的一点就是V1的模型能用在V2上面,但是V2的模型不能用在V1上,并且V1模型在V2上效果不佳! 整合包下载地址: GPT-SoVITS V2整合包下载 https://klrvc.com/ GPT-SoVITS V2模型下载网 这次V2更新了以下功能 UVR5&#x…

超声波清洗机哪些品牌好用?小型超声波清洗机推荐

在日常生活中,诸如眼镜、项链和耳环之类的常用小物件,频繁的接触使得它们表面易吸附尘埃,尤其是缝隙里的污垢往往难以手动清除。此时,超声波清洗机成为了理想的清洁助手,它能深入细微之处,带来彻底的清洁体…

【设计模式-策略】

定义 策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以互相替换,且算法的变化不会影响到使用算法的客户。通过使用策略模式,算法可以在运行时根据需要动态地进行更换,从…

JAVA毕业设计164—基于Java+Springboot+vue3的汽车租赁管理系统(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue3的汽车租赁管理系统(源代码数据库)164 一、系统介绍 本项目前后端分离(可以改为ssm版本),分为用户、会员、管理员三种角色 1、用户&#xff1a…

破防了!软考小白们的春天,低起点也能赢在起跑线

软考通过率是否真的很低,可以通过官方数据来了解。 一、软考通过率是多少? 首先要说明的是,软考办并没有公布全国考试的通过率。但根据官方公布的报名人数和合格人数可以做一个预估。 浙江软考办官方公布,浙江2022年下半年软考…

c#透明悬浮球实现 从零开始用C#写一个桌面应用程序(三)

目标:透明悬浮球 记录日期:20240308 要求基础:C#语言基础部分事件与委托,c#桌面程序基础操作 注:可见前文 http://t.csdnimg.cn/9uWK8 今天开始做一个悬浮球软件。本以为最难的是让悬浮球的具体功能&#xff0c…

养猫知识!猫罐头好还是猫粮好?宠物医生都在用的猫罐头

有位姐妹刚养猫大概已经快一年了,一直给猫喂的都是干粮,猫咪毛发枯燥,长肉慢。带到医院检查后,我发现猫咪营养不良,吸收能力差,有点软便,我建议她给猫咪喂主食罐。结果猫咪爱吃,而且…

openGuass——对象管理

目录 一、表空间 二、数据库 三、模式:Schema 四、database schema table之间的关系 五、表 六、分区表 七、索引 八、视图 九、序列 十、同义词 十一、约束 一、表空间 自带了两个表空间:pg_default和pg_global。查看命令:\db 默认表空间pg…

AI时代,什么是QPS数据?

自 OpenAI 公司于 2022 年 11 月 30 日发布 ChatGPT 以来,经过 23 年一整年的发展之后,大语言模型的概念已逐渐普及,出现了各种基于大语言模型的周边产品,可以说已经玩的相当花哨了。 在这个AI发展的过程中,不少本地化…

Unity之OpenXR如何使用Netcode实现一个多人VR游戏

前言 Netcode for GameObjects 是专为 Unity 构建的高级网络库,可用于抽象网络逻辑。您可以通过网络会话同时向许多玩家发送 GameObjects 和世界数据。借助 Netcode for GameObjects,您可以专注于构建游戏,而无需考虑低级协议和网络框架。 Netcode框架的核心特性包括: 易…

支付宝开放平台-开发者社区——AI 日报「8 月 27 日」

1 多模态 Al 王者登场,语言图像模型大一统!Meta 发布 Transfusion模型 新智元丨阅读原文 Meta 最新发布的 Transfusion 模型,成功融合了 Transformer 和 Diffusion 技术,实现了文本和图像生成的统一。该模型通过结合语言建模和扩…

动态内存管理函数malloc,calloc,realloc,free

malloc 函数原型:void* malloc(size_t size); 这个函数向内存申请一块连续可用的size大小的空间,并返回指向这快空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此ma…

应用程序编程接口 (API) — 简单解释

Nimrita Koul 博士 https://medium.com/nimritakoul01/application-programming-interface-api-simply-explained-3680d4649121 文章目录 一、说明二、API 的类型二、示例健身应用程序三、可乐自动售货机四、客户端和服务器五、超文本传输协议 (HTTP)5.1…

逆向中的游戏-入土为安的第二十五天

逆向中的游戏 CE的介绍 Cheat Engine ,简称CE,是逆向工程师常用的几大神器之一,也是游戏汉化、破解以及外挂编写中常用的工具,其功能包括:内存扫描、十六进制编辑器、调试工具,可以进行反汇编调试、断点跟…

FaceChain 打造个人证件照 职业照 写真照

一、简介 FaceChain可实现兼具可控性与ID保持能力的无限风格写真与固定模板写真功能,同时对ControlNet和LoRA具有优秀的兼容能力。FaceChain支持在gradio的界面中使用模型训练和推理能力、支持资深开发者使用python脚本进行训练推理,也支持在sd webui中安…

【精选】基于springboot休闲娱乐代理售票系统(源码+定制+开发辅导)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

进销存专业化管理系统,降低采购和销售成本 带完整的安装代码包以及搭建部署教程

系统概述 在当今竞争激烈的市场环境中,企业的运营效率与成本控制直接关联到其生存与发展。特别是对于中小企业而言,如何高效地管理进销存流程,减少不必要的开支,成为了提升竞争力的关键。为此,我们精心打造了一款“进…

推荐一个能在博客中运行代码的平台

博客中粘贴代码,这是很常见的做法了。如果我们博客中的代码可以直接运行,是不是很酷呢? 来看看: https://andi.cn/page/621698.html 推荐一个平台,有以下功能: 博客中的代码可以直接运行、一键复制可以…

【Resoved】编译 OpenCV 4.5.5 源码,fatal error: mpi.h: No such file or directory

0. 背景 Ubuntu20.04 OpenCV 4.5.5 Anaconda ROS2 foxy 等 1. 问题描述 编译 OpenCV4.5.5源码,make -j10 时,报错: 2. 问题分析 这个错误表明在编译 OpenCV 的 HDF5 模块时,尽管你在 CMake 中指定了 MPI 的路径,但编译器仍然无法找到 mpi.h 文件。或者 HDF5 没有正确地…