八、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 映射为:

      (15)Attn(Q,K,V)=softmax(QKdk)V

      其中:nquery 的数量,mkey-value pairs 的数量,dk,dv 分别为各自的维度。

      多头注意力在 Nh 个头上并行执行注意力函数,每个头分别由 Wq(i),Wk(i),Wv(i)Rd×dh 独立地参数化,从而将输入投影到 queries, keys, values 。给定要执行注意力的序列 CRm×d ,以及一个 query 向量 xRd,多头注意力(multi-head attention: MHA )在每个头上计算输出并将结果拼接起来:

      (16)MHA(C,x)=Concat(head1,,headNh)Woheadi=Attn(xWq(i),CWk(i),CWv(i))

      其中:WoRd×dd 是模型维度。

      MHAdh 通常设为 dh=dNh 从而节省参数,这意味着每个注意力头在一个较低维空间中操作。

    • 另一个重要的子层是全连接的前馈网络,它由两个线性变换组成,中间添加非线性激活函数 ReLU

      (17)FFN(x)=ReLU(xW1,b1)W2+b2

      其中:W1Rd×dm,W2Rdm×ddmFFN 的中间层的维度, Transformer 通常使用较大的 dm ,例如 dm=4d

    最后,对于这两种类型的子层,都应用了残差连接(residual connection ),并在残差连接之后馈入 layer normalization

  2. 之前的 Parameter-Efficient Tuning 方法概览:下面及 Figure 1 中,我们介绍几种 SOTAparameter-efficient tuning 方法。除非特别说明,它们只调优被添加的参数而保持 PLM 的参数冻结。

    • Adapters《Parameter-efficient transfer learning for nlp》):Adapters 方法在 transformer 层之间插入小的模块(adapter )。adapter layer 一般使用 down-projection WdownRd×r 将输入 h 投影到由bottleneck 维度 r<d 指定的低维空间,后面接一个非线性激活函数 f(),然后是 up-projection WupRr×d 。这些 adapters 被残差连接(residual connection )所包围。因此,包含 adapter layer 的公式为:

      (18)hh+f(hWdown)Wup

      《Parameter-efficient transfer learning for nlp》transformer 层内串行地放置两个 adapters ,一个在 multi-head attention 后面、一个在 FFN 子层后面。 《Adapter-Fusion: Non-destructive task composition for transfer learning》 提出了一种更高效的 adapter 变体,只在 FFN"add & layer norm" 子层后插入 adapter

    • Prefix Tuning《Prefix-tuning: Optimizing continuous prompts for generation》):受 textual prompting 方法成功的启发(《Pretrain, prompt, and predict: A systematic survey of prompting methods in natural language processing》),prefix tuning 在每层的 multi-head attention前追加 ltunable prefix vectorskeysvalues。具体而言,两组 prefix 向量 Pk,PvRl×d 被拼接到原始 keys Kvalues V 。然后在新的 prefixed keysprefix values 上执行多头注意力。因此,多头注意力变为:

      (19)MHA(C,x)=Concat(head1,,headNh)Woheadi=Attn(xWq(i),concat(Pk(i),CWk(i)),concat(Pv(i),CWv(i)))

      PkPv 分别拆分成 Nhhead vectorsPk(i),Pv(i)Rl×d/Nh 表示第 iheadprerfix 向量。prompt-tuning《The power of scale for parameter-efficient prompt tuning》)简化了 prefix-tuning ,只在第一层的 input word embeddings 之前添加 prefix 向量。类似工作还包括 P-tuninng《GPT understands, too》)。

    • LORA《LORA: Low-rank adaptation of large language models》):LORAtransformer 层内注入可训练的低秩矩阵,从而逼近 weight updates 。对于 pre-trained weight matrix WRd×kLORA 用低秩分解来表示权重矩阵的 update

      (20)W+ΔW=W+WdownWup

      其中 WdownRd×r,WupRr×k 是可训练的参数。如 Figure 1 所示,LORA 将这个 update 应用于多头注意力中 query projection matrixvalue projection matrix (Wq,Wv)

      对于多头注意力中线性投影的特定输入 xLORA 修改投影输出 h 为:

      (21)hh+s×xWdownWup

      其中 s1 是可调优的标量超参数。

      第二项 s×xWdownWup 就是 LORA 增加的模块。s 类似于学习率。

    • 其他:其他 parameter-efficient tuning 方法还包括:

      • BitFit《Bitfit: Simple parameter-efficient fine-tuning for transformer-based masked language-models》),只微调 pretrained 模型中的 bias 向量。

      • diff-pruning《Parameter-efficient transfer learning with diff pruning》),学习一个稀疏的 parameter update vector

10.2 统一的视角

  1. 我们首先推导 prefix tuning 的等价形式,以建立其与 adapters 之间的联系。然后,我们提出了一个统一框架用于 parameter-efficient tuning,该框架将几种前沿方法作为其实例。

10.2.1 更深入地看前 Prefix Tuning

  1. 方程 headi=Attn(xWq(i),concat(Pk(i),CWk(i)),concat(Pv(i),CWv(i))) 描述了 prefix tuning 的机制,通过在原始的注意力 keysvalues 前追加 llearnable vectors 来改变注意力模块。这里,我们推导出该公式的等价形式,并提供 prefix tuning 的另一种视角。为了描述方便,我们忽略了上标和下标 i

    (22)head=Attn(xWq,concat(Pk,CWk),concat(Pv,CWv))=softmax(xWqconcat(Pk,CWk))[PvCWv]=(1λ(x))softmax(xWqWkC)CWv+λ(x)softmax(xWqPk)Pv=(1λ(x))Attn(xWq,CWk,CWv)standard attention+λ(x)Attn(xWq,Pk,Pv)independent of C

    其中:λ(x) 是一个标量,表示 prefix 上的归一化的注意力权重之和:

    (23)λ(x)=iexp(xWqPk)iiexp(xWqPk)i+jexp(xWqWkC)j

    注意,在这个视角的 prefix tuning 中:

    • 第一项 Attn(xWq,CWk,CWv) 是原始没有 prefix 的注意力。

    • 而第二项 Attn(xWq,Pk,Pv) 是一个与 C 无关的 position-wise 修改。

    该给出了 prefix-tuning 的另一种视角:本质上是通过线性插值对原始的 head attention output h 进行 position-wise 修改:

    (24)h(1λ(x))h+λ(x)ΔhΔh=softmax(xWqPk)Pv
  2. Adapters 的联系:我们定义 W1=WqPk,W2=Pv,定义 f=softmax,并重写上式:

    (25)h(1λ(x))h+λ(x)f(xW1)W2

    这与 hh+f(hWdown)Wupadapter function 形式非常相似,除了 prefix tuning 执行加权求和而 adapter 没有加权。Figure 3b 展示了从这个视角的 prefix tuning 的计算图,允许我们像抽象 adapter 一样将 prefix tuning抽象为插件模块(plug-in module)。此外,我们注意到当 l 很小时,W1Rdh×lW2Rl×dh 是低秩矩阵,因此它们的功能与 adapters 中的 WdownWup 矩阵类似。

    这个视角还表明,prefix 向量的数量 ladapters 中的 bottleneck 维度 r 具有类似作用:它们都代表计算 modification vector Δhrank limitation 。因此我们也将 l 称为 bottleneck 维度。直观而言,秩限制( rank limitation )意味着对任意输入 xΔh 都是相同的 l (或 l )个基向量(basis vectors )的线性组合。

  3. Adapters 的不同之处:除了门控变量 λ 之外,我们强调 prefix tuningadapters 之间的三个不同之处。

    • (1) :如 Figure 3 所示,prefix tuning 使用 xPLM layer 的输入)来计算 Δh,而 adapters 使用 hPLM layer 的输出)。因此,prefix tuning 可以看作是对 PLM layer 的 “并行”计算,而典型的 adapters 是 “串行”计算。

    • (2) :相比prefix tuningadapters 在插入位置上更加灵活:adapters 通常修改 attention outputFFN output ,而 prefix tuning 只修改每个 headattention output 。经验上,这产生很大差异,我们将在实验章节中展示。

    • (3) :方程 h(1λ(x))h+λ(x)f(xW1)W2 应用于每个 attention head,而 adapters 总是单头的,这使得prefix tuning 更具表达能力:

      • 对于 prefix tuninghead attention 的维度为 d/Nh ,如果 ld/Nh ,我们基本上对每个head attention 都有 full rank updates

      • 但对整个 attention output,只有在 rdadapters 才有 full-rank updates

      值得注意的是,当 l=r 时,prefix tuning 没有比 adapters 增加更多参数。我们在实验章节经验地验证这样的 multi-head 的影响。

      full rank updates 指的是:update matrix ΔW 是满秩的。

10.2.2 统一框架

  1. prefix tuningadapters 之间联系的启发,我们提出一个通用框架,旨在统一几种 SOTAparameter-efficient tuning 方法。具体而言,我们将它们建模为学习一个 modification vector Δh,其中 Δh 被应用到各种 hidden representations 。正式地,我们将直接被修改的 hidden representation 表示为 h,其中计算 hPLM sub-module 的直接输入为 x ,例如,hx 可以分别是 attention outputattention input

    为描述这个 modification 过程,我们定义一组设计维度,不同方法可通过这些维度上的取值而实例化。我们下面详述这些设计维度,并展示 adaptersprefix tuningLORA 在这些维度上的取值,如 Table 1 所示:

    • Functional Form :是计算 Δh 的具体函数。我们已在前面详述了 adaptersprefix tuning 、以及 LORA 的函数形式。这些方法的函数形式类似,都有一个 proj_down --> nonlinear --> proj_up 的架构,而在 LORA"nonlinear " 退化为恒等函数。

    • Modified Representation:是直接被修改的 hidden representation

    • Insertion Form:指被添加的模块如何插入到网络中。如前所述:

      • 传统的 adapters 以串行的方式插入特定位置,inputoutput 都是 h

      • prefix tuningLORA 等价于将 x 作为输入的并行插入方式(虽然原本不是这种方式来描述)。

    • Composition Function:指向量 Δh 如何与原始 hidden representation h 组合成新的 hidden representation 。例如,adapters 执行简单的加法组合,prefix tuning 使用门控的加法组合,LORA 按常数因子缩放 Δh并加到原始 hidden representation 上。

  2. 我们注意到,Table 1 之外许多其他方法也适合这个框架。例如:

    • prompt tuning 以类似 prefix tuning 的方式修改第一层的 head attention

    • 各种 adapter 变体(《Adapter-Fusion: Non-destructive task composition for transfer learning》《Compacter: Efficient low-rank hypercomplex adapter layers》)也可以类似 adapter 进行表示。

    关键的是,这个统一框架允许我们沿这些设计维度研究 parameter-efficient tuning 方法,识别关键的设计选择,并在方法间迁移设计元素,如下节所示。

10.2.3 迁移 Design Elements

  1. 在这里和 Figure 3中,我们描述一些新方法,这些新方法通过上述统一视角来推导,并通过在方法之间迁移设计元素::

    • Parallel Adapter:一种变体,它将 prefix tuningparallel insertion 迁移到 adapters 。有趣的是,我们由于其与prefix tuning 的相似性而提出 parallel adapter ,而同期工作(《Serial or parallel? plugable adapter for multilingual machine translation》)也独立地提出并经验研究了这个变体;

    • Multi-head Parallel Adapter :是进一步使 adapters 更类似 prefix tuning 。像 prefix tuning 一样,我们将 parallel adapter 应用了 modify head attention 。通过这种方式,这个变体不费力气地利用了 multi-head projections 提高了模型容量。

    • Scaled Parallel Adapter :该变体将 LORA 的组合形式和插入形式迁移到 Adapter ,如 Figure 3e 所示。

  2. 到目前为止,我们的讨论和公式抛出了几个问题:

    • 改变上述设计元素的方法是否展现不同特性?

    • 哪些设计维度特别重要?

    • 上述描述的新方法是否产生更好的性能?

    我们在下节回答这些问题。

10.3 实验

  1. 数据集:

    • XSum :是一个英文摘要数据集,模型根据新闻文章来预测摘要。

    • WMT 2016 en-ro 数据集:英语到罗马尼亚语翻译。

    • MNLI :是一个英语自然语言推理数据集,模型预测一个句子与另一个句子的关系是否蕴含、矛盾或中性。

    • SST2:是一个英语情感分类 benchmark,模型预测一个句子的情感是积极还是消极。

  2. 配置:

    • 我们分别使用 BART_LARGE 和其多语言版本 mBART_LARGE 作为 XSumen-ro 翻译的 pretrained 模型,对于 MNLISST2 使用 RoBERTa_BASE

    • 如果需要,我们在 {1,30,200,512,1024} 中变化 bottleneck 维。

    • 我们主要研究 adaptersprefix tuningprefix )和 LORA,在我们的实验中它们远超 bitfitprompt tuning

    • 在分析部分,我们在 attention layersFFN layers 插入 adapters 以方便分析,但在最终比较中包括在两处同时插入 adapters 的结果。

    • 我们根据各自模型的公开代码重新实现这些方法。实现使用 huggingface transformers 库。完整设置细节见附录 A

  3. 评估:我们在 XSum 测试集上报告 ROUGE 1/2/L 分数,在 en-ro 测试集上报告 BLEU 分数,在 MNLISST2 开发集上报告准确率。对于 MNLISST2,我们取 5 次随机运行的中位数。我们还报告每个 parameter-efficient tuning 方法相对于 full fine-tuning 的参数数量(#params )。

  4. Tunable Parameters 的数量:BARTmBARTencoder-decoder 结构,有三种注意力:encoder self-attentiondecoder self-attentiondecoder cross-attentionRoBERTa 只有 encoder self-attention。对于每个注意力子层,各方法使用的参数数量是:

    • prefix tuningkeysvalues 前追加 l 个向量,使用 2×l×d 个参数。

    • adapterWdownWup,因此使用 2×r×d 个参数(注意,这仅仅是作用在注意力子层上的 adapter)。

      如果 adapter 作用在 ffn 上(而不是在 attention 上),则它使用 2×r×d 个参数,与 attention 上的 adapter 相同。

    • LORAquery projectionvalue projection 各自使用了一对 (Wdown,Wup),因此使用 4×r×d 个参数。

    因此,对于特定的 rlprefix tuningadapter 使用相同数量的参数,而 LORA 使用更多参数。更多细节见附录 B

  5. 现有方法的结果:我们首先概述四个任务上现有方法的结果。如 Figure 4Table 2 所示,虽然现有方法在 MNLISST2 上通过调优少于 1% 的参数就能达到与 full fine-tuning 相媲美的性能,但在 XSumen-ro 任务上如果我们调优 5% 的参数,仍与 full fine-tuning 存在较大差距。即使我们将相对参数大小增加到 >10% ,差距仍然显著。T5high-resource 翻译任务上观察到了更大的差距。这表明,许多声称在 GLUE benchmark 上用 encoder-only 模型与 full fine-tuning 达到可比结果的方法(《Parameter-efficient transfer learning with diff pruning》bitfit《Compacter: Efficient low-rank hypercomplex adapter layers》),或在相对简单的 generation benchmarks (如,E2E)上用 encoder-decoder 模型与 full fine-tuning 达到可比结果的方法(prefix-tuning )可能无法很好地泛化到其他 standard benchmarks

    影响因素可能复杂,包括训练样本数量、任务复杂度、或者模型架构。因此,我们倡导未来这方面的研究在更多样的 benchmarks 上报告结果,以展示更完整的性能概况。下面,我们的分析主要聚焦在 XSumen-ro 数据集上,以更好区分不同的设计选择。我们注意到,这两个 benchmarks 是相对 high-resource 的,并且采用 encoder-decoder model (即,BART)。

    MAM Adapter 是本文提出的方法。

  6. 哪种插入形式更好,串行或并行?

    我们首先研究插入形式这个设计维度,比较所提出的 parallel adapter: PA 变体与传统的 sequential adapter: SA,进行 attention modification 或者 FFN modification 。我们还以 prefix tuning 为参考。如 Table 3 所示:

    • prefix tuning (它使用并行插入)优于 attention sequential adapters

    • 此外,parallel adapter 在所有情况下都优于 sequential adapter ,其中 PA(ffn)XSum 上分别超过 SA(ffn) 1.7 R-2 分,在 en-ro上超过 0.8 BLEU 分。

    鉴于parallel adapter 优于 sequential adapter ,我们在后续部分聚焦parallel adapter 结果。

    这里没有比较这种情况:同时在 attnffn 之后插入 adapter

  7. 修改 attention representation 还是 ffn representation 更好?

    我们现在研究修改不同 representation 的效果。我们主要比较 attention modificationFFN modification 。为了更容易分析,我们将修改 attention sub-layer 中的任何 hidden representations (如 head outputquery等)的方法归类为 modifying attention 模块。我们比较 parallel adapters at attentionparallel adapters at FFN 、以及 prefix tuning 上的结果。

    我们还将 FFN modification 迁移到 LORA ,从而得到一个 LORA(ffn) 变体从而获得完整比较。具体而言,我们使用 LORA 来逼近 FFN 权重 W1Rd×dm,W2Rdm×dparameter updates 。在这种情况下,LORA 中用于 W1 的中的Wup 的维度为 r×dm (类似地,用于 W2 中的 Wdown ),其中 dm=4d 。因此,我们通常对 LORA(ffn) 使用比其他方法更小的 r ,从而在后面的实验中匹配它们的总参数量。

    结果如 Figure 5 所示:

    • 首先,任何具有 FFN modification 的方法在所有情况下都优于所有具有 attention modification 的方法(红色标记通常高于所有蓝色标记,唯一的例外是具有 2.4% 参数的 ffn-PA )。

    • 其次,同一方法应用于 FFN modification 总是优于其 attention modification 。例如,LORA(ffn)XSum 上优于 LORA(attn) 1 R-2 分。

    • 我们还强调,prefix tuning 在我们进一步增加容量时并未持续改进,这在 《Prefix-tuning: Optimizing continuous prompts for generation》 中也有观察到。

    这些结果表明,无论函数形式或组合函数如何, FFN modification 可以比 attention modification 更有效地利用所添加的参数。我们推测这是因为 FFN 学习 task-specific textual patterns《Transformer feed-forward layers are key-value memories》),而 attention 学习 pairwise positional interactions ,不需要大容量来适应新的任务。

  8. 当我们只使用 0.1% 的参数时,情形是否不同?

    在前文中,我们推断 prefix tuningadapter(attn) 更具表达力,但这在 Figure 5 中并未反映出来。我们推测这是因为 multi-head attention 仅在参数预算非常小时才具有优势。为验证这一假设,针对添加 0.1%pretrained parameters ,我们比较 prefix tuningparallel adapters 。为了消除组合函数(composition function )的影响,我们还报告了移除 prefix tuning 的门控的结果,即 h+Δh 。我们包括前文中描述的 multi-head parallel adapter: MH PA 变体的结果。结果如 Table 4 所示。

    • 在使用 0.1% 参数时,多头方法(即,prefix tuningMH PA(attn) 优于所有其他方法至少 1.6 BLEU 分。

    • 令人惊讶的是,将 l200 减少到 30 仅导致prefix tuning 0.4 BLEU 的损失,而 PA(attn) 损失 1.9 BLEU

    • prefix tuning 中的 gating composition function 稍微提升了 0.3 BLEU

    • 我们强调,MH parallel adapter 相比单头版本提高了 1.6 BLEU ,这再次验证了 multi-head formulation 的有效性。

    综合 Figure 5Table 4 的结果,我们得出结论:当参数预算非常小时,modifying head attention 显示了最佳结果;而当参数预算更大时,modifying FFN 效果更好。这表明,与 《Parameter-efficient transfer learning for nlp》 中平等地对待 attentionFFN 不同,将更大的参数预算分配给 FFN modification 可能更有效。

  9. 哪种组合函数(Composition Function )更好?

    我们在前文中介绍了三种组合函数:简单相加(adapter)、门控相加(prefix tuning )、以及缩放后再相加(LORA )。对于不使用 softmax 的函数形式,如果采用精确的门控相加显得不自然,我们通过在 LORA 上消融、以及比较提出的 scaled parallel adapter: Scaled PA 来检查另外两种形式。我们将 modified representation 约束为 FFN ,因为前面的实验表明:FFN modification 通常更有效。

    Table 5 报告了在 XSum 上的结果。我们将 adapterr 设为 512LORAr102 ,以使它们的 tuned parameters 数量相同。我们根据开发集的 R-2 score 选择 s 。我们观察到 LORA(s=4) 优于 parallel adapter 。但是,如果我们通过设置 s=1 移除缩放,这一优势消失了。通过将 LORA 的组合函数插入到 parallel adapter ,产生的 Scaled PA 相比原始 parallel adapter 提高了 0.56 ROUGE-2 分。我们也尝试了可学习的标量,但没有更好的结果。因此,我们得出结论:scaling composition function 优于普通的 additive composition function,而且易于应用。

  10. 通过迁移有利的设计元素进行有效的集成:我们首先强调前面部分的三个发现:

    • (1)scaled parallel adaptermodify FFN 的最佳变体。

    • (2)FFN 在更大容量下可以更好地利用 modification

      即,更大的参数预算下,FFN modification 要比 attention modification 更好。

    • (3) :像 prefix tuning 这样修改 head attentions 的方法可以只用 0.1% 的参数达到很强的表现。

    受其启发,我们组合这些有利的设计。具体而言,我们在 attention sub-layers 使用具有 small bottleneck dimension (l=30)prefix tuning,并分配更多参数预算使用 scaled parallel adapterr=512 )来修改 FFN representation 。由于 prefix tuning 在我们的统一框架中可以看作是 adapter 的一种形式,我们将这个变体称为 Mix-And-Match adapter: MAM Adapter 。在 Table 6 中,我们将 MAM adapter 与各种 parameter-efficient tuning 方法进行比较。

    MAM Adapter 结合了 prefix tuningadapter

    • attention sub-layer 上应用 prefix tuning

    • ffn sub-layer 上应用 scaled parallel adapter

    为完整起见,Table 6 中还呈现了其他组合版本的结果:同时在 attention layersFFN layers 使用 parallel adapters 、以及把 prefix tuning(attn)LORA(ffn) 组合起来。这两个组合版本都能改进它们各自的原型。然而,MAM Adapter 在两个任务上都达到了 SOTA ,只更新 pre-trained parameters6.7% 就能匹配我们的 full fine-tuning 结果。在 Table 2 中,我们也呈现了MAM AdapterMNLISST2 上的结果,其中 MAM Adapter 通过添加 0.5%pretrained parameters 达到了与 full fine-tuning 媲美的结果。