让天下没有难Tuning的大模型:PEFT技术简介
©作者 | 风飏
单位 | 阿里巴巴
研究方向 | AIOps/NLP
Adapter Tuning
Prefix Tuning
1. Prefix 长度的影响:不同的任务所需要的 Prefix 的长度有差异。
3. Prefixing vs Infixing:对比了 [PREFIX; x; y] 方式与 [x; INFIX; y] 方式的差异,还是 Prefix 方式最好。
4. Initialization:用任务相关的 Prompt 去初始化 Prefix 能取得更好的效果。
Prompt Tuning
3.1 实验
a)Prompt 长度影响:模型参数达到一定量级时,Prompt 长度为 1 也能达到不错的效果,Prompt 长度为 20 就能达到极好效果。 b)Prompt 初始化方式影响:Random Uniform 方式明显弱于其他两种,但是当模型参数达到一定量级,这种差异也不复存在。 c)预训练的方式:LM Adaptation 的方式效果好,但是当模型达到一定规模,差异又几乎没有了。 d)微调步数影响:模型参数较小时,步数越多,效果越好。同样随着模型参数达到一定规模,zero shot 也能取得不错效果。
P-Tuning
4.1 V1
Discretenes:对输入正常语料的 Embedding 层已经经过预训练,而如果直接对输入的 prompt embedding 进行随机初始化训练,容易陷入局部最优。
Association:没法捕捉到 prompt embedding 之间的相关关系。
作者在这里提出用 MLP+LSTM 的方式来对 prompt embedding 进行一层处理
4.1.1 与 Prefix-Tuning 的区别
Prefix Tuning 是将额外的 embedding 加在开头,看起来更像是模仿 Instruction 指令;而 P-Tuning 的位置则不固定。 Prefix Tuning 通过在每个 Attention 层都加入 Prefix Embedding 来增加额外的参数,通过 MLP 来初始化;而 P-Tuning 只是在输入的时候加入 Embedding,并通过 LSTM+MLP 来初始化。
4.2 V2
不同模型规模:Prompt Tuning 和 P-tuning 这两种方法都是在预训练模型参数规模够足够大时,才能达到和 Fine-tuning 类似的效果,而参数规模较小时效果则很差。
不同任务类型:Prompt Tuning 和 P-tuning 这两种方法在 sequence tagging 任务上表现都很差。
4.2.1 主要结构
4.2.2 几个关键设计因素
Reparameterization:Prefix Tuning 和 P-tuning 中都有 MLP 来构造可训练的 embedding。本文发现在自然语言理解领域,面对不同的任务以及不同的数据集,这种方法可能带来完全相反的结论。 Prompt Length:不同的任务对应的最合适的 Prompt Length 不一样,比如简单分类任务下 length=20 最好,而复杂的任务需要更长的 Prompt Length。 Multi-task Learning 多任务对于 P-Tuning v2 是可选的,但可以利用它提供更好的初始化来进一步提高性能。 Classification Head 使用 LM head 来预测动词是 Prompt Tuning 的核心,但我们发现在完整的数据设置中没有必要这样做,并且这样做与序列标记不兼容。P-tuning v2 采用和 BERT 一样的方式,在第一个 token 处应用随机初始化的分类头。
4.2.3 实验结果
不同预训练模型大小下的表现,在小模型下取得与Full-finetuning相近的结果,并远远优于P-Tuning。 不同任务下的 P-Tuning v2 效果都很好,而 P-Tuning 和 Prompt Learning 效果不好;同时,采用多任务学习的方式能在多数任务上取得最好的结果。 Verbalizer with LM head v.s. [CLS] label with linear head,两种方式没有太明显的区别 Prompt depth,在加入相同层数的 Prompts 前提下,往更深层网络加效果优于往更浅层网络(只有 BoolQ 中 17-24 反而低于 1-8 是例外)。
LoRA
由于增加了模型的深度从而额外增加了模型推理的延时,如 Adapter 方法
Prompt 较难训练,同时减少了模型的可用序列长度,如 Prompt Tuning、Prefix Tuning、P-Tuning 方法
往往效率和质量不可兼得,效果差于 full-finetuning
相比于原始的 Adapter 方法“额外”增加网络深度,必然会带来推理过程额外的延迟,该方法可以在推理阶段直接用训练好的 A、B 矩阵参数与原预训练模型的参数相加去替换原有预训练模型的参数,这样的话推理过程就相当于和 Full-finetune 一样,没有额外的计算量,从而不会带来性能的损失。
由于没有使用 Prompt 方式,自然不会存在 Prompt 方法带来的一系列问题。
该方法由于实际上相当于是用 LoRA 去模拟 Full-finetune 的过程,几乎不会带来任何训练效果的损失,后续的实验结果也证明了这一点。
5.1 Towards a Unified View of PETL
典型的PEFT方法有什么联系? 典型的PEFT方法中是哪些关键模块在起作用? 能否对这些关键模块进行排列组合,找出更有用的 PEFT 方法?
5.1.1 通用形式
通过对 Prefix Tuning 的推导,得出了和 Adapter Tuning 以及 LoRA 形式一致的形式。
的形式 嵌入 Transformer 结构的方式(分为 Parrell 和 Sequential 两种。Parallel 指的是在输入层嵌入,这样与原有结构可以并行计算;Sequential 指的是在输出层嵌入,相当于增加了网路的深度,与原有结构存在依赖关系)
修改的表示层(主要指对 attention层的修改还是对 ffn 层的修改)
组合方式。怎么与原有的参数组合,包括简单相加(Adapter)、门控式(Prefix Tuning)、缩放式(LoRA)三种)
5.1.2 一些实验
哪种嵌入形式更好:Parallel or Sequencial?
当微调的参数量较多时,从结果来看,对 FFN 层进行修改更好 。 一种可能的解释是 FFN 层学到的是任务相关的文本模式,而 Attention 层学到的是成对的位置交叉关系,针对新任务并不需要进行大规模调整。 当微调参数量较少(0.1%)时,对 Attention 进行调整效果更好。
Scaled parallel adapter is the best variant to modify FFN FFN can better utilize modification at larger capacities modifying head attentions like prefix tuning can achieve strong performance with only 0.1% parameters
参考文献
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
微信扫码关注该文公众号作者