最近,深度学习的研究中出现了许多大型预训练模型,例如 GPT-3、ChatGPT、GPT4、ChatGLM-130B 等,这些模型可以在多种自然语言处理任务中取得优异的性能表现。然而,这些大型预训练模型的训练成本非常高昂,需要庞大的计算资源和大量的数据,一般人难以承受。这也导致了一些研究人员难以重复和验证先前的研究成果。
为了解决这个问题,研究人员开始研究 Parameter-Efficient Fine-Tuning (PEFT) 技术。PEFT 技术旨在通过最小化微调参数的数量和计算复杂度,来提高预训练模型在新任务上的性能,从而缓解大型预训练模型的训练成本。这样一来,即使计算资源受限,也可以利用预训练模型的知识来迅速适应新任务,实现高效的迁移学习。

在上一篇文章中,介绍了 PEFT 技术中的常用方法 LoRA,使得百亿(10B)参数的大模型可以在单卡上训练(显存大小>=40G)。今天介绍下另外几种常用的方法,包括 Adapter Tuning、Prompt Tuning、Prefix Tuning、P-Tuning、P-Tuning v2 和 AdaLoRA。

1. Adapter Tuning
2019 年谷歌的研究人员首次在论文《Parameter-Efficient Transfer Learning for NLP》提出针对 BERT 的 PEFT 微调方式,拉开了 PEFT 研究的序幕。他们指出,在面对特定的下游任务时,如果进行 Full-Finetuning(即预训练模型中的所有参数都进行微调),太过低效;而如果采用固定预训练模型的某些层,只微调接近下游任务的那几层参数,又难以达到较好的效果。
于是他们设计了如下图所示的 Adapter 结构,将其嵌入 Transformer 的结构里面,在训练时,固定住原来预训练模型的参数不变,只对新增的 Adapter 结构进行微调。同时为了保证训练的高效性(也就是尽可能少的引入更多参数),他们将 Adapter 设计为这样的结构:
首先是一个 down-project 层将高维度特征映射到低维特征 然后过一个非线性层之后,再用一个 up-project 结构将低维特征映射回原来的高维特征 同时也设计了 skip-connection 结构,确保了在最差的情况下能够退化为 identity(类似残差结构)。

从实验结果来看,该方法能够在只额外对增加的 3.6% 参数规模(相比原来预训练模型的参数量)的情况下取得和 Full-Finetuning 接近的效果(GLUE 指标在 0.4% 以内)。

优点: 通用性强,可应用于各种 Transformer 架构。 缺点: 增加了推理延迟,因为需要额外的前向传播步骤。
2. Prefix Tuning
2021 年斯坦福的研究人员在论文《Prefix-Tuning: Optimizing Continuous Prompts for Generation》中提出了 Prefix Tuning 方法。与 Full-finetuning 更新所有参数的方式不同,该方法是在输入 token 之前构造一段任务相关的 virtual tokens 作为 Prefix,然后训练的时候只更新 Prefix 部分的参数,而 Transformer 中的其他部分参数固定。该方法其实和构造 Prompt 类似,只是 Prompt 是人为构造的'显式'的提示,并且无法更新参数,而 Prefix 则是可以学习的'隐式'的提示。











