PEFT(高效微调)方法一览


本文旨在梳理2019-2023关于大模型高效微调的经典方法总结,如有遗漏的重要方法烦请告知,不胜感激

全参数微调(FFT) VS 参数高效微调(PEFT)

全参数微调的问题:

  • 消费级显卡的全参数微调在时间上和硬件上不可行
  • 全参数微调会损失多样性,出现灾难性遗忘,且下游部署、维护繁琐

高效微调:

  • 冻结大部分预训练参数,仅仅更新一部分参数使得模型获得更好的能力
  • 主要的方法包括:引入额外参数、选取部分参数

2019-Adapter Tuning

Parameter-Efficient Transfer Learning for NLP

故事:

  • 当预训练模型的规模较大时,为每一个下游任务进行全参数微调会耗费很多计算资源和时间
  • 研究表明fine-tuning比feature-base-transfer的效果要好(fine-tuning是保证模型结构的完整,针对下游任务,利用特定数据进行参数微调的过程;而feature-base-transfer则是保留预训练的embedding比如word、sentence,paragraph,然后将其迁移到其他任务中)
  • 同时全参数微调的fine-tuning容易出现知识遗忘的问题(原文中写的是multi-task和continual learning会出现这种情况)

方法:

  • 为了解决上述问题,本文提出了一种adapter-tuning的方法,通过添加adapter的方式来进行参数的部分更新,从而达到减少参数更新但是得到和FFT相competitive的效果
  • 具体来说就是针对每个下游任务,给预训练模型添加两个adapter,一个添加在MHA投影之后,一个添加在两个前馈层后,两个adapter都添加在残差连接之前(如果在残差连接之后呢?)
  • adapter的结构:两个前馈子层构成,将输入降维再升维,一般降维的维度m较小,所以adapter的参数量不会很大,同时其也具有skip connection结构,这样添加好处在于,adapter参数初始化接近0时,如果adapter起不到优化作用,其参数不更新(接近0)时不会损害原模型的能力

细节:

  • 以BERT为backbone,在17个数据集上进行广泛的实验
  • 参数微调时,只调整adapter和LN的参数
  • Adapter 最佳的中间层特征维度m视数据集的大小而异
    请添加图片描述
    结果:通过引入adapter-tuning可以在仅仅调整5%以内的参数与FFT的结果相媲美
    请添加图片描述

2019-PALs

BERT and PALs: Projected Attention Layers for Efficient Adaptation in Multi-Task Learning

故事:

  • 如何使得一个模型可以适配多个下游任务

方法:

  • 提出PALs通过并行的参数添加来完成下游任务的适配
  • 不同Bert在模型的上方加入参数来适配下游任务,PALs通过并行参数更新:

h l + 1 = L N ( h l + S A ( h l ) + T S ( h l ) ) \mathbf{h}^{l+1}=\mathrm{LN}(\mathbf{h}^l+\mathrm{SA}(\mathbf{h}^l)+\mathrm{TS}(\mathbf{h}^l)) hl+1=LN(hl+SA(hl)+TS(hl))

T S ( h ) = V D g ( V E h ) \mathrm{TS}(\mathbf{h})=V^{D}g(V^{E}\mathbf{h}) TS(h)=VDg(VEh)

  • TS就是添加的并行参数模块
    请添加图片描述

细节:

  • 在GLUE的八个NLU任务上利用Bert进行实验
  • 关于g函数的形式,作者实验了以下几种:
    • 恒等映射(low-rank layers)
    • MHA
    • MHA+在不同层间共享 V E V^E VE V D V^D VD的参数(PALs)
    • MLP+不同层间共享 V E V^E VE V D V^D VD的参数

结果:

  • 实验可知serial connection(顺序连接)的效果比不添加任何adapter的效果还差(可能是添加了新初始化的LN所导致)
  • 并行连接可以使得基础模型不容易丢失存储的知识

请添加图片描述

请添加图片描述

2020-Adapter-Fusion

AdapterFusion: Non-Destructive Task Composition for Transfer Learning

故事:

  • sequential fine-tuning和multi-task learning存在遗忘和数据平衡的挑战。想在一个模型上实现多任务的信息共享有两种方法:sequential fine-tuning的数据训练顺序很重要,容易出现遗忘的风险;multi-task learning任务数据的大小和质量存在挑战( these models often overfit on low resource tasks and underfit on high resource tasks.)
  • 而adapter-tuning方法仅仅提供了adapter的插入来解决全参数微调难以训练和知识遗忘的问题,而并没有将每个任务下游adapter收集的信息利用最大化,从而解决信息共享,下游通用,数据顺序的问题。

方法:

  • 提出一个两阶段的迁移训练方法:首先在知识抽取阶段利用各下游任务训练adapter,然后在知识整合阶段将训练好的adapter通过adapterFusion进行信息共享。
  • 提出一个adapter-fusion模块用于融合各adapter学习到的信息

请添加图片描述

细节:

  • 训练数据集会被使用两次:训练下游任务的adapter时和训练信息融合的adapter-fusion模块
  • 以Bert为backbone,知识抽取阶段更新adapter的参数,知识融合阶段更新adapter-fusion的参数
  • adapter-fusion模块直接添加到adapter后面,其本质是一个attention计算过程。Q是进入adapter前的输入,而K,V则是adapter的输出
  • 第一阶段的训练方法分为两种:ST-A(一个任务使用一个adapter),MT-A(多个任务使用一个adapter联合优化)

请添加图片描述

结果:

请添加图片描述

  • Head:采用Bert中提到的分类头
  • Full:全参数微调
  • ST-A:单任务-adapter
  • MT-A:多任务-adapter
  • F.w/ST-A:ST-A + adapter-fusion
  • F.w/MT-A:MT-A+adapter-fusion
  • ST-A-Houlsby:adapter-Tunning的方法

2021-Adapter-Drop

AdapterDrop: On the Efficiency of Adapters in Transformers

故事:

  • adapter参数的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

国家一级假勤奋研究牲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值