【大模型LLMs】高效微调PEFT总结

【大模型LLMs】高效微调PEFT总结

PEFT(Parameter-Efficient Fine-Tuning),对预训练语言模型(PLM)进行高效率的参数微调,以提高模型性能和效率
PEFT的目标是在不微调模型所有参数的情况下,使预训练语言模型适应各种下游应用程序

Prefix Tuning

论文: Prefix-Tuning: Optimizing Continuous Prompts for Generation
来源: ACL 2021
作者单位: Stanford University
核心要点: 传统的微调范式针对不同的下游任务保存相应的模型权重;Prefix Tuning提出固定预训练LM,为LM添加可训练、任务特定的前缀(prefix),为不同任务保存不同的前缀,减少微调成本,同时prefix实际上就是连续可微的virtual token,相比离散的token更好优化

  • 针对自回归架构模型(GPT2):在句子前增加前缀,得到 z = [ P r e f i x ; x ; y ] z = [Prefix; x; y] z=[Prefix;x;y]
  • 针对encoder-decoder架构(BART):对encoder和decoder都添加前缀,得到 z = [ P r e f i x ; x ; P r e f i x 0 ; y ] z = [Prefix; x; Prefix0; y] z=[Prefix;x;Prefix0;y]

在这里插入图片描述

  • 在prefix前增加mlp,避免训练不稳定和性能下降,训练完成后只保留prefix的参数

在这里插入图片描述

  • 和prompt tuning的区别: prompt是人为构造的“显式”提示,无法更新参数,prefix可以学习“隐式”的提示

Prompt Tuning

论文: The Power of Scale for Parameter-Efficient Prompt Tuning
来源: EMNLP 2021
作者单位: Google
核心要点: 可以看作是Prefix Tuning的简化版本,它给每个任务定义了自己的Prompt,然后拼接到数据上作为输入,但只在输入层加入prompt tokens,并且不需要加入 MLP 进行调整来解决难训练的问题

在这里插入图片描述

P-Tuning

论文: GPT Understands, Too
来源: AI Open 2023
作者单位: 清华、麻省理工
核心要点: 将Prompt转换为可以学习的Embedding层,并用MLP+LSTM的方式来对Prompt Embedding进行一层处理。相比Prefix Tuning,P-Tuning加入的可微的virtual token,但仅限于输入层,没有在每一层都加;另外,virtual token的位置也不一定是前缀,插入的位置是可选的

在这里插入图片描述

- Prompt Tuning和P-Tuning的缺点:

  • 缺乏模型参数规模和任务通用性: 对于较小的模型(从100M到1B),提示优化和全量微调的表现有很大差异,这大大限制了提示优化的适用性
  • 缺少深度提示优化: 在Prompt Tuning和P-tuning中,连续提示只被插入transformer第一层的输入embedding序列中,在接下来的transformer层中,插入连续提示的位置的embedding是由之前的transformer层计算出来

P-Tuning v2

论文: P-Tuning: Prompt Tuning Can Be Comparable to Fine-tuning Across Scales and Tasks
来源: ACL 2022
作者单位: 清华、北京人工智能研究院、上海启智研究院
核心要点: 在每一层都加入了Prompts tokens作为输入,而不是仅仅加在输入层。具体做法基本同Prefix Tuning,可以看作是将文本生成的Prefix Tuning技术适配到NLU任务

在这里插入图片描述

Adapter Tuning

论文: Parameter-Efficient Transfer Learning for NLP
来源: ICML 2019
作者单位: Google
核心要点: 设计了Adapter结构,并将其嵌入Transformer的结构里面,针对每一个Transformer层,增加了两个Adapter结构(分别是多头注意力的投影之后和第二个feed-forward层之后),在训练时,固定住原来预训练模型的参数不变,只对新增的 Adapter 结构和 Layer Norm 层进行微调,从而保证了训练的高效性

在这里插入图片描述

LoRA

论文: LoRA: Low-Rank Adaptation of Large Language Models
来源: ICLR 2022
作者单位: Microsoft
核心要点: 通过低秩分解来模拟参数的改变量,从而以极小的参数量来实现大模型的间接训练。在涉及到矩阵相乘的模块,在原始的PLM旁边增加一个新的旁路矩阵,通过前后两个矩阵A,B相乘,第一个矩阵A负责降维,第二个矩阵B负责升维,中间层维度为r,从而来模拟所谓的本征秩

在这里插入图片描述

  • 可训练层维度和预训练模型层维度一致为 d d d,先将维度 d d d通过全连接层降维至 r r r,再从 r r r通过全连接层映射回 d d d维度,其中, r < < d r<<d r<<d r r r是矩阵的秩,这样矩阵计算就从 d × d d\times d d×d变为 d × r + r × d d\times r + r\times d d×r+r×d,参数量减少很多
  • 在下游任务训练时,固定模型的其他参数,只优化新增的两个矩阵的权重参数,将PLM跟新增的通路两部分的结果加起来作为最终的结果
    h = W x + B A x = ( W + B A ) x h=Wx+BAx=(W+BA)x h=Wx+BAx=(W+BA)x
  • 只要将训练完成的矩阵乘积BA跟原本的权重矩阵W加到一起作为新权重参数替换原本PLM的W即可,对于推理来说,不会增加额外的计算资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值