八、Compacter[2021]

论文:《Compacter: Efficient Low-Rank Hypercomplex Adapter Layers》

  1. SOTA 的预训练语言模型(pretrained language models: PLMs )在自然语言处理中使用了高度过参数化的表示(over-parameterized representations ),包含数以亿计的参数,从而在广泛的 NLP benchmarks 中获得成功。这些模型通常通过微调来应用于下游任务,这需要更新所有参数并为每个任务存储一个 fine-tuned model 的副本。这会导致巨大的存储成本和部署成本,并阻碍大规模 PLM 应用于实际应用。此外,已经证明 over-parameterized models 在低资源数据集上的微调会出现不稳定性,可能导致较差的性能。

    John von Neumann 的名人名言的启发,我们问,既然我们已经通过 PLM 学到了通用的 language representations ,那么我们需要多少参数才能在标准 NLP 任务上达到 SOTA 的性能水平。具体来说,我们的目标是开发出实用的、内存高效的方法,在训练最小的参数集合的同时,达到与 full fine-tuning 相当或更好的性能。

    最近的文献已经引入了 parameter-efficient fine-tuning 方法。这些方法通常固定 pretrained model 的参数,并为每个任务引入一组可训练的参数,在可训练参数数量以及任务性能之间进行权衡。在另一个研究方向中,prompts (即,任务的自然语言描述)和 demonstrations 一起,已被用来在某些 benchmarks 上达到合理的性能,而无需任何参数更新(《Language models are few-shot learners》),但它们的性能通常落后于 fine-tuned 的模型。它们还需要巨大的模型才能正常工作,但随着模型规模的增大,选择好的 prompts 变得更加困难(《True Few-Shot Learning with Language Models》)。soft prompt 方法将 prompts 视为可训练的连续参数,这些参数被添加到 input layerintermediate layers 的输入中(《Prefix-tuning: Optimizing continuous prompts for generation》《Warp: Word-level adversarial reprogramming》《The power of scale for parameter-efficient prompt tuning》)。 然而,这种方法通常需要大型模型才能取得良好的性能,并且对初始化非常敏感,在训练过程中不稳定。

    具有理论基础的低秩方法(low-rank methods )使用随机投影训练位于低维子空间中的少量参数(《Measuring the intrinsic dimension of objective landscapes》《Intrinsic dimensionality explains the effectiveness of language model fine-tuning》)。然而,存储随机投影矩阵(random projection matrix)会造成大量内存开销,并导致训练时间缓慢。在另一个研究方向,adapter 方法(《Parameter-efficient transfer learning for nlp》《Efficient parametrization of multi-domain deep neural network》)在 pretrained 模型的不同层中插入可训练的 transformations ,需要比上述方法更多的参数,但更加内存高效,并获得与 full fine-tuning 相当的性能(《Parameter-efficient transfer learning for nlp》《Exploring versatile generative language model via parameter-efficient transfer learning》)。

    在本文中,我们提出了 Compacter ,一种对大规模语言模型进行微调的方法,与现有方法相比,在可训练参数数量、任务性能和内存占用之间取得了出色的平衡(参考 Figure 1 )。 Compacter 建立在 adapters《Parameter-efficient transfer learning for nlp》 )、低秩方法(《Measuring the intrinsic dimension of objective landscapes》)、以及最近的超复杂乘法层(《Beyond fully-connected layers with quaternions: Parameterization of hypercomplex multiplications with 1/n parameters》)的概念之上。与 adapters 类似,Compacterpretrained 模型的权重中插入 task-specific 的权重矩阵。每个Compacter 权重矩阵计算为:shared "slow" weights"fast" rank-one matricesKronecker 乘积之和,其中这个 "slow" weights"fast" matrices 在每个 Compacter layers 上定义(见 Figure 3 )。因此,与常规 adaptersO(kd) 的参数复杂度相比,Compacter 实现了 O(k+d) 的参数复杂度,其中 adapters 的尺寸为 k×d 。在实践中,Compacter 训练了PLM 参数的0.047% 。在标准 GLUE and SuperGLUE benchmarks 中,Compacter 优于其他 parameter-efficient fine-tuning 方法,并获得与 full fine-tuning 相当或更好的性能。在低资源环境中,Compacter 优于标准微调。

    Compacter 还是 adapters 的变体,但是它有两个优化:

    • 首先,通过两个向量的 Kronecker Product 来获得矩阵 Bij (即,秩为 1 的矩阵分解),这降低了参数的数量。

    • 其次,通过在多个 adapter 之间来共享 Ai ,这也降低了参数的数量。

    注意:这里并没有跨任务共享 adapter,只是在单个任务内部跨 adapters 共享 Ai

    总结一下,我们的贡献如下:

    • 1) :我们提出了 CompacterCompact Adapter)layers,一种参数高效的方法来适配大型语言模型。

    • 2):我们证明 CompacterGLUESuperGLUE 上获得了强大的经验性能。

    • 3):我们证明 Compacter 在低资源环境(low-resource settings )中优于微调。

    • 4):我们提供了 Compacter 的参数复杂度分析,显示它需要远少于 adaptersfine-tuning 的参数。

    • 5):我们系统地评估了最近的 parameter-efficient fine-tuning 方法,关于在训练时间和内存消耗方面的性能。

    我们发布了我们的代码以促进未来的工作。

  2. 相关工作:

    • Adapters

      • 最近兴起 adapters 作为微调 pretrained 语言模型的新范式(《Parameter-efficient transfer learning for nlp》)。

      • 在另一条研究方向中,《Udapter: Language adaptation for truly universal dependency parsing》 根据 adapterscontextual parameter generator 网络(《Contextual parameter generation for universal neural machine translation》),提出了一种多语言依存解析(dependency parsing )方法,其中他们根据 trained input language embeddings 来生成 adapter parameters 。然而,与 base model 相比,这导致大幅增加的参数数量。

      • 同时,《Parameter-efficient multi-task fine-tuning for transformers via shared hypernetworks》使用单个紧凑的超网络(hypernetwork ),允许根据多个任务、以及 transformer model 的多个 layers 来高效地生成 adapter weights

      • 《Conditionally adaptive multi-task learning: Improving transfer learning in NLP using fewer parameters & less data》还为多任务学习提出了一种 task-conditioned transformer,参数效率较低。

      上述工作与 Compacter 互补,可以潜在地将 Compactercontextual parameter generation相结合,从而生成 adapter 模块。与 《Parameter-efficient multi-task fine-tuning for transformers via shared hypernetworks》相比, Compacter++ 将参数降低了 6.2 倍。

    • Hypercomplex representations:在 hypercomplex 领域的深度学习进展还处于初级阶段,大多数工作都是近期的工作。用 Hamilton 乘法替换标准网络中的矩阵乘法,具有更少的自由度,在单次乘法操作中可以节省多达 4 倍的参数(《Quaternion recurrent neural networks》《Lightweight and efficient neural natural language processing with quaternion networks》)。

      最近,《Beyond fully-connected layers with quaternions: Parameterization of hypercomplex multiplications wit h1/n parameters》 以一种方式扩展了这样的方法,在一个温和条件下,可以将全连接层的参数降低到 1/n ,其中 n 是一个用户指定的参数。据我们所知,还没有先前的工作尝试利用 hypercomplex space 进行大型语言模型的 efficient fine-tuning

    • 其它 parameter-efficient 方法:

      • 《Measuring the intrinsic dimension of objective landscapes》《Intrinsic dimensionality explains the effectiveness of language model fine-tuning》 研究了在 low-dimensional randomly oriented subspace 中(而不是原始参数空间中)训练模型。

      • 另一条最近的研究线表明,像 BERT 这样的 pretrained 模型在其能力上是冗余的,允许显著稀疏化而终端指标几乎不降低(《The lottery ticket hypothesis for pre-trained bert networks》《When BERT Plays the Lottery, All Tickets Are Winning》《Evaluating lottery tickets under distributional shifts》)。然而,这样的方法目前硬件支持不好,性能通常比专用的高效架构更差(《What is the state of neural network pruning?》)。

8.1 背景知识

  1. 我们首先介绍 Kronecker productadapter layers 所需的背景知识(《Parameter-efficient transfer learning for nlp》《Efficient parametrization of multi-domain deep neural networks》)。

  2. Kronecker Product:矩阵 ARm×fBRp×q 之间的 Kronecker Product 记做 ABRmp×fq ,定义为:

    (1)AB=[a1,1Ba1,fBam,1Bam,fB]

    其中 ai,jA 的第 i 行、第 j 列的元素。

    即,将 A 中的每个元素与 B 相乘。

  3. Adapter Layers:最近的工作表明,微调语言模型的所有参数可能导致次优解,特别是对于 low-resource datasets《To tune or not to tune? adapting pretrained representations to diverse tasks》)。作为替代方法, 《Efficient parametrization of multi-domain deep neural networks》《Parameter-efficient transfer learningfor nlp》 提出了在 pretrained 模型的 layers 中插入小的 task-specific 模块(称 adapter layers ),从而将模型迁移到新任务,如 Figure 2 所示。然后他们只训练 adapterslayer normalizations,而 pretrained 模型的其余参数保持固定。这种方法允许 pretrained 语言模型高效地适应新的任务。

    transformer 模型的每一层主要由两个模块组成:一个 attention block 、一个 feed-forward block 。这两个模块之后都有一个 skip connection 。如 Figure 2 所示,《Parameter-efficient transfer learningfor nlp》建议在 skip connection 之前、在每个 block 之后插入一个 adapter layer

    adaptersbottleneck 架构。通过保持 output dimensioninput dimension 相同,它们不会改变原始模型的结构或参数。第 l 层的 adapter layer Aldown-projection DlRk×dGeLU 非线性函数(《Gaussian error linear units (gelus)》)、以及 up-projection UlRd×k 组成,其中 k 是输入维度、dadapter layerbottleneck 维度。adapters 定义为:

    (2)Al(x)=Ul(GeLU(Dl(x)))+x

    其中 xinput hidden state

8.2 方法

  1. 在本节中,我们提出 Compacter,一种紧凑的和高效的方法来适配大型 PLMs

  2. 问题形式化:我们考虑微调大规模语言模型的一般问题,其中给定包含 P 个样本的训练数据 D={(xi,yi)}i=1P 。我们还假设给出了一个大型 pretrained 语言模型 fθ(),其参数为 θ ,用于计算输入 xi 的输出。我们的目标是高效地微调 fθ() 从而使模型适配新任务。

8.2.1 Compact and Efficient Adapter Layers

  1. 在本节中,我们基于最近的 parameterized hypercomplex multiplication layers: PHM《Beyond fully-connected layers with quaternions: Parameterization of hypercomplex multiplications with 1/n parameters》)的进展,引入 adapter layers 的一个高效版本。据我们所知,我们是第一个利用 PHM layer 来为大型 transformer 模型进行 efficient fine-tuning 的。PHM layer 与全连接层具有相似的形式,将输入 xRk 转换为输出 yRd

    (3)y=Wx+b

    其中:WRk×d 为待学习的参数矩阵,bRd 为待学习的 bias 向量。

    关键区别在于:在 PHM layer 中,W 被学习为 Kronecker product 的和。假设 kd 都可被用户定义的超参数 nZ>0 整除。那么矩阵 W 可以被计算为 nKronecker products 之和:

    (4)W=i=1nAiBi

    其中:AiRn×nBiRkn×dn

    PHM layer 的参数复杂度为 O(kd/n),最多降低擦拭能数量为原始的 1/n《Beyond fully-connected layers with quaternions: Parameterization of hypercomplex multiplications with 1/n parameters》)。

    这就是推荐算法中常用的矩阵分解方法。

8.2.2 Beyond Hypercomplex Adapters

  1. 先前的工作表明,pretrained 模型中捕获的一些信息可以被忽略从而用于迁移(《Revisiting Few-sample BERT Fine-tuning》《Rethinking Embedding Coupling in Pre-trained Language Models》)。类似地,也观察到 adapters 中捕获的信息中存在冗余,lower layersadapters 的重要性较低(《Parameter-efficient transfer learningfor nlp》)。此外,在某些任务上,跨 layers 共享 adapters 仅导致性能上较小的降低(《AdapterDrop: On the Efficiency of Adapters in Transformers》)。受这些见解的启发,我们提出以下两点扩展,从而使 hypercomplex adapters 更高效:

    • Sharing information across adapters:在所有层之间共享所有 adapter parameters 的限制性总体上太强,不能与微调或使用常规 adapters 的性能相媲美(《AdapterDrop: On the Efficiency of Adapters in Transformers》)。但是,我们如 W=i=1nAiBi 所示,将 adapters 分解为 AiBi 矩阵,从而允许我们更灵活。

      因此,我们将 adaptation weights 分为:

      • shared parameters :捕获对适配目标任务有用的通用信息。

      • adapter-specific parameters:聚焦于捕获那些适配每个 individual layer 的相关信息。

      具体来说,我们将 Ai 定义为所有 adapter layers 之间 shared parameters ,而 Biadapter-specific parameters

    • Low-rank parameterization:低秩方法(《Measuring the intrinsic dimension of objective landscapes》《Intrinsic dimensionality explains the effectiveness of language model fine-tuning》)表明,通过在低秩子空间中优化任务可以实现强大的性能。类似地,我们假设也可以通过在低秩子空间中学习 transformations 从而有效地适配模型。为此,我们提出将 BiRkn×kn 参数化为低秩矩阵,即两个低秩权重 siRkn×rsiRr×kn 的乘积,其中 r 是矩阵的秩。将这两点扩展结合起来,我们提出 low-rank parameterized hypercomplex multiplication layerLPHM ):

      (5)W=i=1nAiBi=Ai(siti)

      通常,我们设置 r=1,使 Bi 成为秩为 1 的矩阵。根据目标任务的复杂性,可以将 r 设置为更高的值。Figure 3 说明了我们的方法。总体而言,LPHM layer 将复杂度进一步降低到 O(k+d)LPHM layer 也可以看作利用跨 adapters 共享的 "slow" weights Ai (它捕获通用信息)、以及学习适配每个 individual layeradapter-specific information"fast" weights Bi

  2. Compacter:基于上述公式,我们引入 Compacter layer ,它将 adapters 中的 down-projection layersup-projection layers 替换如下:

    (6)Al(x)=LPHMUl(GeLU(LPHMDl(x)))+x

    其中:

    • up-projection 权重 LPHMUl 的计算公式为 Ul=i=1nAi(U)Bi(U)l=Ai(U)(si(U)lti(U)l) ,它代替了 Ul

    • down-projection 权重 LPHMDl 的计算公式也为 Dl=i=1nAi(D)Bi(D)l=Ai(D)(si(D)lti(D)l) ,它代替了 Dl

    虽然 transformer 中每层的两个 adapters 都有自己的、秩为 1si()lti()l,但我们在所有层的所有位置上的 adapter layers 上共享 Ai()

    是否可以将 Ai(U)Ai(D) 共享为同一个 Ai ?论文并未说明,可以尝试。

8.3 参数效率

  1. 在本节中,我们比较 Compacteradapters 的参数数量。

  2. Adapters parameters:在标准设置中,transformer 模型的每一层添加两个 adapters《Parameter-efficient transfer learningfor nlp》 )。每个 adapter layer 包含 2kd 个参数,用于 down-projection 矩阵 Dlup-projection 矩阵 Ul ,其中 k 是输入维度大小、dadapterbottleneck 维度。因此,具有 L 层的 encoder-decoder transformer 模型中, adapters 总参数数量为 2L(2kd) ,与所有三个变量呈线性关系。

    encoder 中包含 L(2kd) 个参数、decoder 中包含 L(2kd) 个参数。

  3. PHM-Adapter parameters :在常规 PHM layer中(《Beyond fully-connected layers with quaternions: Parameterization of hypercomplex multiplications with 1/n parameters》),如公式 W=i=1nAiBi 所示,AiRn×nBiRkn×dn 的参数定义了 W 的自由度为 n(kdn2+n2)=kdn+n3。若满足温和条件 kd>n4 ,则 kdn 占主导地位,此时 PHM layer 的总参数量为 O(kdn)。此条件对于 adaptersPHM layer 、以及大型 PLM (如 T5-large )的典型取值成立,其中 hidden size k=1024adapter hidden size d{24,32,48,96}n{2,4,8,12} 。因此,PHM layer 降低参数规模到标准全连接层参数数量的几乎 1n ,其中标准全连接层的参数数量为 O(kd)

    类似地,使用 PHM layer 建模 down-projection 矩阵和 up-projection 矩阵可以提供参数规模降低到近乎 1n 。每个 adapter with a PHM layer 总共有 2(kdn+n3) 个参数。对于具有 L 层的 encoder-decoder transformer 模型,PHM-Adapter 的参数总数为 4L(kdn+n3)

  4. Compacter 参数:Compacter 在所有层之间共享权重矩阵 {Ai}i=1n ,包括 n3 个参数。Compacter 对每个 adapter 也有两个秩为 1 的权重矩阵 si,ti ,包含 kn+dn个参数,使得下 down-projection 权重和 up-projection 权重的总参数数量为 2n(kn+dn) 。因此,具有 L 层的 encoder-decoder transformer 中, Compacter 的总参数数量为 4L(k+d)+n3

    在大量层的设置中,统治项为 4L(k+d) 。因此,满足温和条件 4L(k+d)>n3 时,Compacter 的复杂度为 O(k+d) ,与 adaptersO(kd) 、以及 PHM-AdapterO(kdn) 相比更加高效。

    n 较大的设置中,跨所有层共享的权重矩阵 {Ai}i=1n 的参数数量在 Compacter 中保持恒定,总共 n3 个参数;而对于 PHMadapter layers{Ai}i=1n 的参数数量与层数 L 呈线性关系。例如,在具有 222M 参数的 T5_BASE 模型中,Compacter 仅学习了 0.047% 的参数,同时保持与 full fine-tuning 相当的性能。

8.4 实验

  1. 数据集:遵循 T5 ,我们在 GLUESUPERGLUEbenchmarks 上评估各种方法的性能。这些 benchmarks 涵盖 paraphrase detectionMRPC,QQP )、情感分类(SST-2)、自然语言推理(MNLI,RTE,QNLI,CB )、linguistic acceptabilityCoLA)、问答(MultiRC,ReCoRD,BoolQ)、词义消歧(WiC)和句子补全(COPA)等多个任务。由于原始测试集不公开,我们遵循 《Revisiting few-sample bert fine-tuning》 的做法,从训练集中划分出 1k 个样本用作验证集,而使用原始验证数据作为测试集。对于样本数少于 10k 的数据集(RTE,MRPC,STS-B,CoLA,COPA,WiC,CB,BoolQ,MultiRC ),我们将原始验证集等分为两半:一半用于验证、另一半用于测试。

  2. 实验详细信息:我们在所有实验中使用当前最 SOTAencoder-decoder T5 model 作为所有方法的底层模型。为了计算效率,我们在 T5_BASE 模型上报告所有结果( 112 encoder and decoder layers,共有 222M 个参数)。我们使用 T5_BASEHuggingFace PyTorch 实现。我们在大型数据集上微调所有方法 3 epochs ,在 GLUE 的低资源数据集(MRPC,CoLA,STS-B,RTE,BoolQ,CB,COPA,WiC )上微调 20 epochs 从而使模型收敛(《Revisiting few-sample bert fine-tuning》)。对于所有adapter-based 的方法,我们实验 adaptersbottleneck size{96,48,24} 。我们为所有模型保存每个 epochcheckpoint ,并报告最佳超参数的结果(最佳超参数通过每个任务的验证集上的表现来筛选)。对于 PHM layer ,我们使用 《Parameterized hypercomplex graph neural networks for graph classification》PyTorch 实现。我们在附录 A 中包括 low-level 的详细信息。对于我们的方法,我们实验 n={4,8,12} ,并报告在表现最好的模型。我们在附录 B 中包括所有 n 值的结果。

    遵循 《Parameter efficientmulti-task fine-tuning for transformers via shared hypernetworks》 在所有任务上、所有方法中,我们冻结 pretrained 模型的 output layer 。我们在附录 C 中显示了微调 output layer 的结果。

    一般而言,需要微调 output layer (即,prediction head)。因为这是与具体的任务密切相关的。实验结果表明,冻结 pretrained 模型的 output layer,会大大损害下游任务的性能。

    遵循 《Parameter-efficient transfer learning for nlp》,我们在适用的情况下更新所有方法的 layer normalization 参数。

  3. baselines:我们与几种最近提出的 parameter-efficient fine-tuning 方法进行比较:

    • T5_BASE :我们将我们的方法与标准的 T5 微调进行比较,其中我们对每个任务微调模型的所有参数。

    • ADAPTER:我们与强大的 adapter baseline《Parameter-efficient transfer learning for nlp》)进行比较,它为每个任务在 T5 的每个 transformer block 的前馈模块之后、以及注意力模块之后添加 adapters

    • PFEIFFER-ADAPTER《AdapterFusion: Non-destructive task composition for transfer learning》 提出的一种更高效的 adapter 变体,其中每层只保留一个 adapter 以获得更好的训练效率。我们实验了保留每层的两个 adapters 中的任何一个 adapter ,发现保留自注意力模块后的 adapter 表现最好。

      注意,AdapterFusion 原始论文中保留的是 feed-forward layer 之后的 adapter

    • ADAPTER-LOWRANK:我们将每个 adapter 的权重参数化为两个秩为 1 的权重矩阵的乘积。

    • PROMPT TUNINGprompt tuning《The power of scale for parameter-efficient prompt tuning》)是 《Prefix-tuning: Optimizing continuous prompts for generation》 的后续变体,在输入前面添加随机初始化的 continuous promptPROMPT TUNING-R )。

      我们还比较了一种变体,它使用 pretrained 语言模型词表的 token embeddings 来初始化 promptsPROMPT TUNING-T )(《The power of scale for parameter-efficientprompt tuning》)。

    • INTRINSIC-SAIDStructure Aware Intrinsic Dimension《Intrinsic dimensionality explains the effectiveness of language model fine-tuning》)通过在较低维子空间 θddD)中重新参数化参数来微调模型:θiD=θi,0D+λiPθpdm ,其中:

      • 参数 θi,0Dpretrained 模型的参数。

      • PR(dm)RD 是通过 Fastfood 变换(《Fastfood-approximating kernel expansions in loglinear time》)的随机线性投影。

      然后,他们考虑 PLM 中的权重矩阵总数 m ,并给每个矩阵赋予一个权重(即,λRm)。然后,可训练参数为 θdmRdm 以及 λ

    • ADAPTERDROP:我们将 《AdapterDrop: On the Efficiency of Adapters in Transformers》 的方法应用于 T5ADAPTER ,该方法通过删除 lower transformer layers 中的 adapters 来提高训练效率。因此,我们删除 T5_BASEboth the encoder and the decoder 的前五层中的 adapters

    • BITFIT《Tinytl: Reduce memory, not parametersfor efficient on-device learning》提出只训练 bias 而不训练权重。通过不存储 intermediate activations ,该方法实现了可观的内存节省。 《Bitfit: Simple parameter-efficient fine-tuning for transformer-based masked language models》研究了一种类似的只微调 biasfinal output layer 的方法。

  4. 我们的方法:

    • PHM-Adapter:我们如式 W=i=1nAiBi 所示使用 PHM layer 学习 adapters 的权重。据我们所知,我们是第一个利用 PHM 思想进行大型语言模型的高效微调的。

    • Compacter :我们如 W=i=1nAiBi=Ai(siti) 所述使用 LPHM layers 学习 adapters 的权重。

      我们还探索了一个变体,其中我们在每个 transformer block 中只保留 feed-forward layer 之后后的 Compacter layerCOMPACTER++ )。

  5. GLUE Benchmark 的结果:Table 1 显示了 T5_BASEGLUE 上的结果(T5_SMALL 的结果见附录 E )。CompacterCompacter++ 优于所有以前的 parameter-efficient 方法,并与 full fine-tuning 的性能相当,而仅训练 0.07%Compacter )和 0.047%Compacter++ )的参数。我们现在详细讨论不同的方法。

    • Adapter-based methods

      • 对于Adapternot fine-tuning the classifier 会大大损害性能(85.78 vs 86.48 , 参见附录C )。

      • 只在 self-attention 模块之后添加 adaptersPFEIFFER-ADAPTER 优于标准的 ADAPTER ,而且参数更高效。

      • ADAPTERDROP 的性能低于微调,表明 encoder-decoder T5 model 中适配 lower layers 对其性能很重要。

      • 另外,ADAPTER-LOWRANK 的表达能力不足以在这个 benchmark 中表现良好。

        ADAPTER-LOWRANK 的性能比 Adapter 更好,而且参数少得多,因此性价比更高。

    • Prompt tuning and BitFit

      • 对于 PROMPT TUNING ,我们观察到高度依赖初始化和学习率,这也在 《Prefix-tuning: Optimizing continuous prompts for generation》中得到确认。我们使用多个随机种子进行了实验,但性能明显落后于微调,尤其是在低资源数据集上。这可以用这些方法的灵活性有限来解释,因为所有信息都需要包含在 prefixes 中。因此,该方法只允许与模型的其余部分有限的交互,良好的性能需要非常大的模型(《The power of scale for parameter-efficient prompt tuning》)。此外,序列长度的增加会导致内存开销,prompt tokens 的数量受模型最大输入长度的限制,这使得这种方法缺乏灵活性,不适合处理大上下文。

      • 类似地,BITFIT 的表现也比微调差,尤其是在低资源数据集上。

    • Intrinsic-SAID:有趣的是,只微调模型参数的 0.009%INTRINSIC-SAID 的平均性能仅比 fine-tuning baseline1.05 分。但是,该方法有两个实际缺点:存储随机投影矩阵会导致可观的内存开销、训练非常缓慢。

      尽管如此,INTRINSIC-SAID 提供了关于 pretrained 语言模型的低秩优化有效性的见解(《Intrinsic dimensionality explains the effectiveness of language model fine-tuning》),这推动了 Compacterparameter-efficient 方法的发展。

    • Compacter:对于我们提出的方法,我们观察到对 PHM-ADAPTERCOMPACTER++ 微调输出层没有太大的性能差异(见附录 C )。

      • PHM-ADAPTERADAPTER 的参数从 0.83% 降低到 0.179%n=12 ),4.64 倍更高的参数效率。

      • COMPACTER 将参数数量降低到了显著的 0.073% ,同时获得了与 full fine-tuning 相当的结果。

      • 通过删除自注意力之后的 COMPACTER layerCOMPACTER++ 获得了类似的性能,同时将参数降低到 0.047%

      不更新 layer normalization 的适配可能是一个进一步减少参数的有前途的方向,例如,基于最近的 normalization-free models 的进展(《High-performance large-scale image recognition without normalization》),我们留待未来工作。

  6. SUPERGLUE Benchmark 的结果:Table 2 显示了这些方法在 SUPERGLUE 上的性能。我们在附录 D 中包括所有 n 的值。我们观察到与 Table 1 中的 GLUE 相似的模式。COMPACTERCOMPACTER++ 相比其他 parameter-efficient fine-tuning 方法的性能明显更好,甚至优于 full fine-tuning ,同时只训练 0.073%0.048% 的参数。

  7. Efficiency Evaluation:在本节中,我们在相同的计算预算下比较我们提出的方法,与各种最近提出的 parameter-compact fine-tuning 方法的效率。为此,我们在 MNLI 数据集上对所有方法训练 1 epoch

    • 对于每个方法,我们选择最大的 batch size 从而适合固定的 GPU 内存预算(24 GB )。

    • 对于所有 adapter-based 方法,我们将 bottleneck size 固定为 24

    • 对于 PROMPT TUNING ,我们将 prefix tokens 数量设置为 100

    • 对于 INTRINSIC-SAID,我们设置 d=1400

    • 最后,对于 COMPACTER 及其变体,我们设置 n=4

    Table 3 中,我们报告每个任务的 trained parameters 的百分比、每个 epoch 的训练时间、以及每个方法的内存使用情况。 此外,Figure 1 显示了定量性能、trained parameters 百分比、以及内存占用之间的权衡。

    我们的方法具有几个有吸引力的属性:

    • 根据 Table 1 中的分析,COMPACTERCOMPACTER++ 获得了高 GLUE 分数(平均跨所有任务)与明显更少的参数规模(分别为 0.073%0.047% )的最佳组合。

    • 除了 COMPACTER++ 的表现良好之外, COMPACTER++ 的内存需求是所有方法中第二低的,相比 T5_BASE 减少了 41.94% 的内存使用。

    • COMPACTERCOMPACTER++ 也明显加速了训练,相对于 T5_BASE 分别减少了 13.41%26.51% 的训练时间。

    • 另一方面,BITFIT 通过不存储 intermediate activations ,具有最低的内存需求(相对于 T5_BASE 减少 64.2% ),并且是最快的(相对于 T5_BASE 减少 35.06% 的训练时间),代价是定量性能更差(低 1.53 分,参见 Table 1 )。

    除此之外我们还可以看到:

    • 依靠 pruning adapters 的方法,即 PFEIFFER-ADAPTERADAPTERDROP 减少了内存开销并改进了训练时间。然而,与COMPACTER++ 相比,它们的参数数目几乎高出一个数量级,分别多出 9.1 倍和 10.5 倍的参数。

    • 此外, PFEIFFER-ADAPTER 的性能与 full fine-tuning 相当(略有下降,参考 Table 1 ), ADAPTERDROP 获得了更低的性能(跨所有任务平均降低0.65 )。我们注意到,从 transformer layers 中删除 adapters 是一种通用技术,可以进一步提高 COMPACTER 的效率,我们留待未来工作。

    • 类似地,尽管 ADAPTER-LOWRANK 减少了内存开销并提高了训练时间,但它的性能更差(Table 1 ,跨所有任务平均降低0.68 分)。

    • 在另一个方面,INTRINSIC-SAIDPROMPT TUNING 方法的参数最少。但是,它们都带来很高的内存开销(分别相对于 full fine-tuning 高出 41.14%24.42% ),训练最慢,其性能明显落后于 full fine-tuning (见 Table 1 )。

      • 对于 PROMPT TUNING ,高内存成本是因为 self-attention 需要存储完整的注意力矩阵以进行梯度计算,其计算复杂度与序列长度呈二次方关系。

      • 对于 INTRINSIC-SAID ,高内存需求是由于存储大的随机投影矩阵,这限制了 INTRINSIC-SAID 在微调大型 PLM 上的应用。此外,尽管理论上可以在 O(Dlogd) 的复杂度下通过 FastFood transform 进行投影计算,但即使使用 CUDA 实现,实践中也非常缓慢。对于具有大量参数的 pretrained 语言模型,为完整参数空间分配随机投影是不可行的。虽然 Fastfood transform 通过将内存使用从 O(Dd) 降低到 O(D) 部分地缓解了此问题,但此类方法的内存问题仍未解决。

    总体而言,鉴于大型 transformer 模型具有数百万甚至数十亿个参数,如 T5efficient memory usage 对实际应用至关重要。COMPACTERCOMPACTER++ 在性能、内存使用、以及训练时间方面提供了很好的权衡。我们发现只需要相对较少的额外参数即可进行 PLM 的实用的和高效的适配。

  8. Low-resource Fine-tuning:与 T5_BASE 相比,COMPACTER++ 的参数明显更少。在本节中,我们研究这是否可以帮助COMPACTER++ 在资源有限的设置中取得更好的泛化。我们对 GLUE 中的每个数据集进行降采样,样本量范围为{100,500,1000,2000,4000}Figure 4 显示了结果。COMPACTER++ 在低资源设置中明显改进了结果,表明它在这种情况下的微调更有效。

九、BitFit[2021]

论文:《BitFit: Simple Parameter-efficient Fine-tuning for Transformer-based Masked Language-models》

  1. 大型 pre-trained transformer based 语言模型,特别是来自 BERT 系列的 bidirectional masked language modelsBERTRobertaSpanbert),为许多 NLP 任务带来了显著改进。在常用范式下,模型在大型的、标注的语料上用 LM objective 被预训练,然后在 task-specific 的监督数据上微调。这些模型的 large size 使它们的训练和(更重要的是)部署变得昂贵。 加上对微调必须在何种程度上改变原始模型的理论疑问,已促使研究人员考虑 finetuning variants,其中识别出模型参数的一个小的子集,这个参数子集需要为下游任务的良好性能而进行参数更新,同时保持所有其他参数不变。

    我们提出了一种简单有效的微调方法,其具有以下优点:

    • 每个被微调的任务只改变很少的参数。

    • 为每个任务改变相同的参数集合( task-invariance)。

    • 被改变的参数在整个参数空间中都是隔离(isolated )的且局部化(localized )的。

    • 对于小数据集到中型数据集,仅改变这些参数达到与 full fine-tuning 相同的任务准确率,有时甚至能改善结果。

    注意:对于大型数据集,BitFit 的效果较差。

    具体而言,我们展示 fine-tuning only the bias-terms 而冻结网络的大部分是非常有效的。此外,如果我们允许任务在性能上稍微下降,我们可以只微调两个 bias 部分("query" bias 、以及 "middle-of-MLP" bias),这占模型的 bias 参数的一半,且仅占所有模型参数的 0.04%

    这一结果在内存受限环境中部署 multi-task fine-tuned models 、以及在大多数参数固定的情况下启用 trainable hardware implementations 方面具有很大实用价值。 此外,它也开辟了一系列关于 pre-trained networksbias 项的作用、以及微调过程的 dynamics 的研究方向。

  2. 相关工作:识别最小的参数集合从而微调该参数集合从而在最终任务中取得良好性能,这个问题与模型压缩的实际问题相关,也与预训练和微调过程本质、预训练过程和微调过程诱导的 “语言知识” 、以及它们泛化到不同任务的程度等更基本问题都相关。

    • Over-parameterization :大型语言模型被证明是过参数化的:它们包含的参数多于推理所需的参数。《Compressing BERT: studying the effects of weight pruning on transfer learning》 已经证明,可以在微调中利用过参数化(overparmeterization ):裁剪后的网络在 transfer setting 中表现良好。我们的工作设置与之互补,其中整个模型都保留下来,但只更新某些参数。

      这些工作的显著成功引发了对 “彩票假设” (lottery-ticket hypothesis )的兴趣(《The lottery ticket hypothesis: Finding sparse, trainable neural networks》《The lottery ticket hypothesis for pretrained BERT networks》《When BERT plays the lottery, all tickets are winning》):大模型在预训练中只需要诱导(以高的概率)已存在的子网络(这个子网络被具有正确 inductive bias 所初始化),并发现这些稀疏网络通常能很好地迁移到不同的任务。

    • Bias terms:文献中很少讨论 bias 项及其重要性。

      • 《Masking as an efficient alternative to finetuning for pretrained language models》 描述了一种 masking-based 的微调方法,明确提到忽略 bias 项,因为处理它们 “没有观察到对性能的积极影响”。

      • 一个例外是 《Bias also matters: Bias attribution for deep neural network explanation》 的工作,他们从 attribution 方法的角度分析了 bias 项。他们证明了 last layer bias values 负责 predicted class ,并提出了反向传播其重要性的方法。

      • 《Extreme adaptation for personalized neural machine translation》 微调了 NMT systemsoutput softmaxbias,从而个性化 output vocabulary

      • 《Training batchnorm and only batchnorm: On the expressive power of random features in cnns》 证明了仅通过训练 batch-norm layers 可以使随机初始化的 CNN 达到合理的准确率。

      • 最后,最接近我们工作的是,《Tiny transfer learning: Towards memory-efficient on-device learning》 证明了类似于我们的 bias-only fine-tuningpre-trained computer vision models的适配也是有效的。

      我们的工作从经验上展示了 bias parameters改变网络行为的重要性和力量,呼吁我们进一步分析和关注 bias 项。

9.1 背景:fine-tuning 和 parameter-efficient fine-tuning

  1. 在通过模型微调的迁移学习中, input 被馈入 pre-trained encoder network 并生成 contextualized representations 。 然后,在 encoder 顶部添加 task-specific classification layer (这里我们考虑线性分类器),并将整个网络(encoder + task-specific classifiers)端到端地训练从而最小化任务损失。

  2. 理想的属性:尽管 fine-tuning per-task 非常有效,但它也会导致每个 pre-trained task 都有一个唯一的、大型的模型,这使得很难推断微调过程中发生了什么改变;并且随着任务数量的增加,部署也变得困难。理想情况下,我们希望微调方法:

    • (1):与 fully fine-tuned model 的结果相媲美。

    • (2):仅改变模型参数的一小部分。

    • (3):允许任务以流式的形式到达,而不是需要同时访问所有数据集。

    • (4):对于高效的 hardware based 的部署,如果满足以下条件那就更好:跨不同任务之间,需要改变取值的参数集合是相同的。

  3. Learning vs. Exposing:是否可以满足上述要求取决于有关大型 pre-trained LM 的微调过程本质的一个基本问题:微调过程诱导了学习新能力的程度有多大、以及暴露在预训练过程中学到的已有能力的程度。

  4. 现有方法:两项最近的工作已经证明,通过仅改变参数的一个小的子集就可以适应各种最终任务。

    • 第一项工作,《Parameter-efficient transfer learning for NLP》 通过在 pre-trained model 的层之间注入小的、可训练的 task-specific "adapter" modules 来实现这一目标,其中原始参数在任务之间共享。

    • 第二项工作,《Parameter-efficient transfer learning with diff pruning》"Diff-Pruning",通过将稀疏的、 task-specific difference-vector 添加到原始参数来实现相同的目标,其中原始参数保持固定并在任务之间共享。 difference-vector 经过正则化从而是稀疏的。

    两种方法都仅为每个任务添加很少的可训练参数(准则 (2) ),并且每个任务都可以在不重新访问前面的任务的情况下被添加(准则 (3))。它们也部分满足准则 (1),与 full fine-tuning 相比性能只有轻微的下降。

    adapter method 还支持准则 (4),但是 Diff-Pruning 不支持准则 (4)。 然而,与 Adapter 方法相比,Diff-Pruning 的参数效率更高(特别是它不添加新参数),并且也取得了更好的任务分数。在实验部分,我们将我们的方法与 Diff-PruningAdapters 进行了比较,结果表明我们在满足标准 (4) 的同时,在许多任务上表现更佳。

    Diff-Pruning 的思想比较简单:固定 pretrained parameters θ ,学习一个 diff vector δτ,使得 task-specific parameter 为:θτ=θ+δτ 。我们最小化经验风险函数:

    (7)minδτL(Dτ,fτ,θ+δτ)+λ×R(θ+δτ)

    其中:

    • Dτ 为训练数据集,fτ 为神经网络,L() 为损失函数。

    • λ 为正则化系数,R() 为正则化项。作者正则化 δτ ,使得它非常稀疏,从而满足:δτ0θ0 。因此我们可以选择正则化项为:

      (8)R(θ+δτ)=δτ0

    因为 L0 正则化难以优化,因此作者采用一个 binary mask vector zτ{0,1}d 来获得 δτ

    (9)δτ=zτwτ

    其中 wτRd 为待学习的 dense vector 参数。

    可以进一步松弛 zτ[0,1]d 上的连续空间从而进行梯度下降。其中:

    • uU(0,1)0 ~ 1 上的均匀分布的随机变量。

    • sτ=σ(logulog(1u)+ατ)0 ~1 上的连续变量。其中 ατRd 的每个维度代表 zτ 对应维度的二元 Bernoulli 分布的参数。

    • s¯τ=sτ×(rl)+ll<0 ,而 r>1 ,它们为两个常量,用于限制 sτ 到区间 (l,r)d 之间。

    • zτ=min(1,max(0,s¯r))

    此时,作者优化 L0 正则化项的期望:

    (10)E[δτ0]=i=1dσ(ατ,iloglr)

    最终的目标函数为:

    (11)minατ,wτEuU(0,1)[L(Dτ,fτ,θ+zτwτ)]+λi=1dσ(ατ,iloglr)

 

9.2 BitFit

  1. 我们提出了一种称为 BIas-Term FIne-Tuning: BitFit 的方法,在该方法中,我们冻结了 transformer-encoder 的大多数参数,仅训练 bias-termstask-specific classification layerBitFit 具有三个关键特性:

    • (1):匹配 fully fine-tuned model 的结果。

    • (2):允许任务以流式的形式到达,因此不需要同时访问所有数据集。

    • (3):仅微调模型参数的一小部分。

    该方法是 parameter-efficient 的:每个新任务仅需要存储 bias terms parameter 向量(占总参数规模的不到 0.1% ),以及 task-specific final linear classifier layer

  2. 具体而言,BERT encoderL 层组成,其中每层 lMself-attention heads 开始(即,多头自注意力,M 个头),其中自注意力头 (m,l) 具有 key encoder, query encoder, value encoder,每个 encoder 的形式都是线性层,1mM,1lL

    (12)Qm,l(x)=Wqm,lx+bqm,lKm,l(x)=Wkm,lx+bkm,lVm,l(x)=Wvm,lx+bvm,l

    其中,x 是前一个 encoder layer 的输出(对于第一个 encoder layerxembedding layer 的输出)。 然后,这些结果使用注意力机制(不涉及新参数)来组合:

    (13)h1l=Att(Q1,l(x),Q1,l(x),Q1,l(x),,Q1,M(x),Q1,M(x),Q1,M(x))

    得到的结果然后被馈入带有 layer-norm (LN) 的一个 MLP

    (14)h2l=Dropout(Wm1lh1l+bm1l)h3l=gLN1l(h2l+x)μσ+bLN1lh4l=GELU(Wm2lh3l+bm2l)h5l=Dropout(Wm3lh4l+bm3l)outl=gLN2l(h5l+h3l)μσ+bLN2l

    其中,所有的 bl 向量为 bias 项。

    结构为:

    ----------------------------skip connection-----

    / \

    x -> attention - > h1 -> linear with dropout -> + -> LN -> linear with Gelu -> linear with dropout -> + -> LN -> output

    \ /

    ----------------skip connection-----------------

    bias 项是加性(additive)的,且对应网络的很小一部分;在 BERT_BASEBERT_LARGE 中,bias 参数分别占每个模型总参数数的 0.09%0.08%

    我们展示通过冻结除了 bias 项以外的所有参数,并仅仅微调 biasbl ,我们达到的迁移学习性能与整个网络上的微调性能相媲美(有时甚至更好)。我们还展示,可以仅微调 bias 参数的一个子集,即与 querybias 、第二个 MLPbiasbqibm2l),并且仍达到可与 full-model fine-tuning 相媲美的准确率。

9.3 实验

  1. 数据集:GLUE benchmark

    与以前的工作一致(《Parameter-efficient transfer learning for NLP》《Parameter-efficient transfer learning with diff pruning》),我们排除了 WNLI 任务,在该任务上 BERT 模型并未优于 the majority baseline

  2. 模型和优化:我们使用公开可用的 pre-trained BERT_BASE, BERT_LARGEpre-trained RoBERTa_BASE 模型,使用HuggingFace 接口和实现。附录 §A.2 列出了 optimization 的详细信息。

  3. Diff-PruningAdapters 的比较:在第一个实验中,我们将 Bit-FitDiff-Pruning 方法和 Adapters 方法进行了比较,当使用更少的参数时。Table 1 报告了与《Parameter-efficient transfer learning for NLP》《Parameter-efficient transfer learning with diff pruning》 等报告的 Adapter 结果、Diff-Pruning 结果相比的验证集和测试集性能。该实验使用 BERT_LARGE 模型。

    • 在验证集上,BitFitDiff-Pruning 相比,在 9 个任务中的 4 个上表现更好,而使用的可训练参数少 6倍。

    • 在测试集上,BitFitDiff-Pruning 相比有 2 个明显的胜利,与 Adapters 相比有 4 个明显的胜利,同时使用的参数比 Adapters45 倍。

  4. 不同的 Base-models :我们在不同的 base 模型(较小的 BERT_BASE 、以及表现更好的 RoBERTa_BASE )上重复实验。Table 2 中的结果表明趋势与 Table 1 保持一致。

  5. bias 参数特殊吗:bias 参数特殊,还是任何随机的参数子集都可以?我们从整个模型中随机采样了与 BitFit 中一样多的参数,仅对它们进行了微调(Table 3 中的 "rand uniform" 行)。结果在所有任务上都显著更差。如果我们随机采样参数矩阵中的完整行或完整列,结果也是类似的(Table 3 中的 "rand row/col" 行)

  6. 更少的 bias 参数:我们可以仅微调 bias 参数的一个子集吗?

    我们将 bias 向量 b 的变化量定义为 1dim(b)b0bF1,即 LM 上的初始值 b0 和微调后的值 bF 之间在所有维度上的平均绝对变化。 Figure 1 显示了每一层每个 bias 项的变化量,针对 RTE 任务(其他任务看起来非常相似,见附录 §A.4 )。

    • "key" bias bk 的变化为零,这与 《Multi-head attention: Collaborate instead of concatenate》 的理论观察一致。

    • 相比之下,"query" bias bq 和中间 MLP 层的 bias bm2(将输入从 768 维映射到 3072 维)的变化最大。

    Table 3 报告了仅微调 BERT_BASE 模型的 bqbm2 时的验证集结果。结果与微调所有 bias 参数的结果只有轻微的下降。仅微调 bq 一项、或仅微调 bm2 一项,会导致明显较差的结果,这表明这两种 bias 类型都是必要的。如预期的那样,使用 frozen BERT_BASE 模型会产生更差的结果。

  7. Generalization gap :尽管在大多数情况下,full fine-tuning 几乎达到 100% 的训练准确率,但我们发现 BitFit 模型的 generalization gap (训练误差与测试误差之间的差异)要明显更小。

  8. Token-level tasksGLUE 任务都是 sentence level的。 我们还对 PTB POS-tagging 进行了 token-level 实验。BERT_BASEBERT_LARGERoBERTa_BASEfull fine-tuning 结果分别为 97.297.497.2,而 BitFit 结果分别为 97.297.497.1

  9. 训练数据的规模:GLUE 结果表明,BitFit 达到 full fine-tuning 性能的能力与训练数据集大小之间存在反相关。

    为了测试这一点(并验证另一个 token-level task ),我们在 SQuAD v1.0 的不同大小子集上进行了训练。Figure 2 中的结果显示了一个明确的趋势:

    • 在较小的数据集上,BitFit 明显优于full fine-tuning

    • 而当有更多可用的训练数据时,则full fine-tuning 优于BitFit

    我们得出结论:在中小数据集的情况下,BitFit 是一种值得考虑的 targetted finetuning method

十、Towards a Unified View of Parameter-Efficient Transfer Learning

论文:《Towards a Unified View of Parameter-Efficient Transfer Learning》

  1. pre-trained language models: PLMs 进行迁移学习现已成为自然语言处理的主流范式,在许多任务上都能取得强大的性能。将通用的 PLM 适配到下游任务的最常见方式是:微调所有的模型参数(full fine-tuning )。然而,这会为每个任务生成一份 fine-tuned model parameters 的副本,当应用于大量任务时,代价昂贵。随着 PLM 规模不断增大,从数亿(GPT-2BART)到数百亿(GPT-3)乃至万亿参数(《Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity》),这个问题尤为突出。

    为缓解这个问题,一些轻量化的替代方法被提出,只更新少量额外参数而让大多数 pretrained parameters 冻结。例如:

    • adapter tuning《Parameter-efficient transfer learning for nlp》)在 pretrained network 的每一层插入小的 neural modules (称为adapters ),在微调期间仅仅训练这些 adapters

    • prompting 方法成功启发(prompting 方法通过 textual prompts 来控制 PLMs ,参考 GPT-3《Pretrain, prompt, and predict: A systematic survey of prompting methods in natural language processing》),prefix tuning《Prefix-tuning: Optimizing continuous prompts for generation》)和 prompt tuning《The power of scale for parameter-efficient prompt tuning》)在 input layershidden layers 之前追加额外的 ltunable prefix tokens,在微调下游任务时仅仅训练这些 soft prompts

    • 最近,《LORA: Low-rank adaptation of large language models》 学习低秩矩阵来逼近 parameter updates

    我们在 Figure 1 中给出这些方法的示意图。人们报告这些方法在不同任务集上都展示了与 full fine-tuning 相媲美的性能,而且通常所需更新的参数数量仅仅是原始模型参数数量的 1% 以下。除了参数节省,parameter-efficient tuning 使得快速适配新任务时不会造成灾难性遗忘(《Adapter-Fusion: Non-destructive task composition for transfer learning》),并且通常在 out-of-distribution evaluation 中表现出更强的稳健性(《Prefix-tuning: Optimizing continuous prompts for generation》)。

    然而,我们认为这些 parameter-efficient tuning 方法成功的重要因素理解不足,它们之间的联系仍不清晰。本文旨在回答三个问题:

    • (1) :这些方法之间如何关联?

    • (2):这些方法是否共享某些设计元素,而这些设计元素对它们的有效性是必不可少的?如果答案是 yes,那么这些设计元素是什么?

    • (3) 每个方法的有效因素能否迁移到其他方法中从而产生更有效的变体?

    为回答这些问题,我们首先导出 prefix tuning 的另一形式,揭示 prefix tuningadapters 的紧密联系。基于此,我们然后构想一个统一的框架,将上述方法表述为不同的、修改frozen PLMshidden representations 的方式。我们的统一框架沿一组共享的设计维度分解之前的方法,如执行 modification 的函数、施加修改的位置、以及如何整合修改。这个框架使我们能够在方法之间传递 design choices 从而提出新的变体,如具有多个 headsadapters 。在实验中,我们首先展示现有的 parameter-efficient tuning 方法在 higher-resource 和具挑战性的任务上仍落后于 full fine-tuning,如 Figure 2 所示。然后我们利用统一框架识别关键的设计选择,并经验性地验证所提出的变体。我们在涵盖文本摘要、机器翻译、文本分类、以及通用语言理解的四个 NLP benchmarks 上的实验表明,所提出的变体使用的参数比现有方法更少,但效果更好,在所有四项任务上媲美了 full fine-tuning 的结果。

    作者提出的 MAM Adapter 结合了 prefix tuningadapter

    • attention sub-layer 上应用 prefix tuning

    • ffn sub-layer 上应用 scaled parallel adapter

10.1 基本概念

  1. Transformer 架构的回顾:Transformer 模型现已成为支撑大多数 SOTAPLMs 的主要架构。本节为完整起见,我们回顾这个模型的公式。Transformer 模型由 L 个堆叠的 blocks 组成,每个 blockFigure 1 )包含两类子层:多头自注意力层(multi-head self-attention)、全连接的前馈网络(feed-forward network: FFN)。

    • 注意力函数将 query QRn×dkkey-value pairs KRm×dk,VRm×dv 映射为: