首页  >  文章  >  科技周边  >  全方位分析大模型参数高效微调,清华研究登Nature子刊

全方位分析大模型参数高效微调,清华研究登Nature子刊

WBOY
WBOY转载
2023-04-11 22:31:011343浏览

近年来,清华大学计算机系孙茂松团队深入探索语言大模型参数高效微调方法的机理与特性,与校内其他相关团队合作完成的研究成果 “面向大规模预训练语言模型的参数高效微调”(Parameter-efficient Fine-tuning of Large-scale Pre-trained Language Models)3 月 2 日在《自然・机器智能》(Nature Machine Intelligence)上发表。该研究成果由计算机系孙茂松、李涓子、唐杰、刘洋、陈键飞、刘知远和深圳国际研究生院郑海涛等团队师生共同完成,刘知远、郑海涛、孙茂松为该文章的通讯作者,清华大学计算机系博士生丁宁(导师郑海涛)与秦禹嘉(导师刘知远)为该文章的共同第一作者。

背景 & 概览

2018 年以来,预训练语言模型 (PLM) 及其 “预训练 - 微调” 方法已成为自然语言处理(NLP)任务的主流范式,该范式先利用大规模无标注数据通过自监督学习预训练语言大模型,得到基础模型,再利用下游任务的有标注数据进行有监督学习微调模型参数,实现下游任务的适配。

随着技术的发展,PLM 已经毫无疑问地成为各种 NLP 任务的基础架构,而且在 PLM 的发展中,呈现出了一个似乎不可逆的趋势:即模型的规模越来越大。更大的模型不仅会在已知任务上取得更好的效果,更展现出了完成更复杂的未知任务的潜力。

然而,更大的模型也在应用上面临着更大的挑战,传统方法对超大规模的预训练模型进行全参数微调的过程会消耗大量的 GPU 计算资源与存储资源,巨大的成本令人望而却步。这种成本也造成了学术界中的一种 “惯性”,即研究者仅仅在中小规模模型上验证自己的方法,而习惯性地忽略大规模模型。

在本文的统计中,我们随机选取了 1000 篇来自最近五个 NLP 会议的论文,发现使用预训练模型已经成为了研究的基本范式,但涉及大模型的却寥寥无几(如图 1 所示)。

图片

图 1:在 1000 篇随机挑选的论文中,使用预训练模型的统计分布

在这样的背景下,一种新的模型适配方案,参数高效(Parameter-efficient)方法逐渐受到关注,与标准全参数微调相比,这些方法仅微调模型参数的一小部分,而其余部分保持不变,大大降低了计算和存储成本,同时还有着可以媲美全参数微调的性能。我们认为,这些方法本质上都是在一个 “增量”(Delta Paremters)上进行调整,因此将它命名为 Delta Tuning

在本文中,我们定义和描述了 Delta Tuning 问题,并且通过一个统一的框架对以往的研究进行梳理回顾。在这个框架中,现有的 Delta Tuning 方法可以被分为三组:增量式(Addition-based)、指定式(Specification-based)和重参数化(Reparameterization)的方法。

除去实践意义之外,我们认为它还具有非常重要的理论意义,Delta Tuning 在某种程度上昭示着大模型的背后机理,有助于我们进一步发展面向大模型甚至深度神经网络的理论。为此,我们从优化和最优控制两个角度,提出理论框架去讨论 Delta Tuning,以指导后续的结构和算法设计。此外,我们对代表性方法进行了全面的实验对比,并在超过 100 个 NLP 任务的结果展示了不同方法的综合性能比较。实验结果涵盖了对 Delta Tuning 的性能表现、收敛表现、高效性表现、Power of Scale、泛化表现、迁移性表现的研究分析。我们还开发了一个开源工具包 OpenDelta,使从业者能够高效、灵活地在 PLM 上实现 Delta Tuning。

图片

  • 论文链接:https://www.nature.com/articles/s42256-023-00626-4
  • OpenDelta 工具包:https://github.com/thunlp/OpenDelta

图片

图 2:Delta Tuning 的划分框架

Delta Tuning:方法与分析

给定一个预训练模型 和训练数据,PLM 适配的目标是生成一个模型的参数为。 将定义为在原始模型之上的操作。 对于传统的全参数微调来说,有

图片

,其中 

图片

是 

图片

中所有参数相对于训练数据的更新值。在 Delta Tuning 中,

图片

则是指修改少量参数。经验上来说,全参数微调有

图片

,而 Delta Tuning 则有

图片

。因此,我们可以依据调整的参数形式和结构,将参数高效的 Delta Tuning 划分为三种策略,并且将之前的方法进行梳理:

增量式(Addition-based)方法

这类方法引入在原始模型中不存在的额外可训练神经模块或参数。在这类方法中,依据上述的定义,我们有

图片

。常见的增量式方法包括 Adapter-Tuning, Prefix Tuning, Prompt Tuning 等等。它们不约而同地将小规模的神经模块或者可调参数插入到模型中,并且通过只微调这一小部分参数来达到模型高效适配的效果。其中 Adapter-tuning 是这类方法的开创性工作,它证明仅仅在每一层添加一个简单的神经网络,就可以在很多任务上媲美全参数微调。同时,Adapter 还彰显了它在多任务和多语言场景下的潜力。Prefix-tuning 和 Prompt Tuning 是最近非常火热的 Delta Tuning 算法,它们将一些可调的向量插入到输入层或者表示层来进行微调。其中,Prompt Tuning 可以视为 Prefix Tuning 的简化版,即只在输入层添加 Soft Prompt。这种做法有一个非常大的好处,就是不用修改模型内部的结构,同时,随着模型参数量增大到 100 亿,它也被证明可以在一些数据上达打到和全参数微调相当的效果。但这类方法也面临着很大的优化问题,实验证明,它的优化效率往往比其他微调范式更低,收敛时间更长,并且在中小型模型上表现不佳。

图片

图 3:Delta Tuning 的形式化表述

指定式(Specification-based)方法

这类方法指定原始模型中的特定的某些参数变得可训练,而其他参数则被冻结。在这类方法中,我们可以将训练参数集合表示为,此时更新的参数表示为。当时,的增量值,否则。指定式的方法不会在模型中引入任何新参数,也不寻求改变模型的结构,而是直接指定要优化的部分参数。这个想法很简单,但效果却出奇的好,例如,一些方法只会微调 BERT 和 RoBERTa 最后一层的四分之一,并且可以产生全参数微调的 90% 的性能。一个工作 BitFit 指出,仅通过优化模型内部的偏项并冻结其他参数,该模型仍然可以在多个基准测试中重现超过 95% 的全参数微调性能。BitFit 的经验结果还表明,即使我们使用少量随机参数集进行 Delta Tuning(这显然会降低性能),该模型仍然可以在 GLUE 基准测试中产生合格的结果。另一个有价值的观察是,不同的偏置项在模型适应期间可能具有不同的功能。

除了手动或启发式地对要更新的参数进行指定之外,我们还可以去学习这样的指定。Diff Pruning 就是其中的一个代表性工作,它将微调后的模型参数重参数化为预训练参数和一个差异向量的总和,即。这时关键的问题就是鼓励差异向量尽可能稀疏,这项工作通过对可微近似来正则化向量,以实现稀疏的目标。实际上,由于在学习阶段引入了要优化的新参数,Diff Pruning 比全参数微调占用更多的 GPU 内存,这可能会在大型 PLM 上的应用中面临挑战。掩码方法(Masking)为 PLM 学习选择性掩码,仅更新特定任务的临界权重。为了学习这样一组掩码,引入了与模型权重相关的二进制矩阵,其中每个值由阈值函数生成。在反向传播期间,矩阵由噪声估计器更新。

重参数化(Reparameterization-based)方法

这类方法通过转换将现有的优化过程重参数化为参数有效的形式。将要重新参数化的参数集表示为,并假设每个 都用新参数来进行表示,然后更新的参数表示为,其中。简单来说,重参数化方法往往基于一类相似的假设:即预训练模型的适配过程本质上是低秩或者低维的。因此可以将这个过程等效为参数高效的范式。

例如,我们可以假设模型适配具有一个 “本征维度”,通过将微调过程重参数化为一个低维子空间的优化过程,可以仅仅通过微调子空间内的参数就达到令人满意的性能。从这个意义上说,PLM 可以作为通用的压缩框架,将优化复杂度从高维压缩到低维。一般来说,较大的 PLM 通常具有较小的内在维度,并且预训练过程隐含地减少了 PLM 的内在维度。受这些观察的启发,重参数化的 Delta Tuning 方法也被提出,该方法使用低维代理参数对(部分)原始模型参数进行重参数化,仅优化代理参数,从而降低计算和内存成本。

另一个著名的工作 LoRA 则假设模型调整期间权重的变化具有较低的 “本征秩”。基于这一假设,他们提出针对自注意模块中原始权重矩阵的变化优化低秩分解。在部署中,优化的低秩分解矩阵相乘以获得自注意力权重矩阵的增量。通过这种方式,LoRA 可以匹配 GLUE 基准上的微调性能。他们展示了他们的方法在各种规模和架构的 PLM ,甚至 GPT3 上的有效性。

这类低维假设不仅适用于单任务的适配,还可以将其扩充到多任务的场景。IPT 假设对于多个任务存在着同一个低维本征子空间,而仅仅调整子空间的参数就可以同时在 100 多个 NLP 任务上达到令人满意的效果。此方法没有使用随机子空间,而是试图找到一个由多个 NLP 任务共享的公共子空间。实验表明,在一个 250 维的低维子空间内,仅仅通过调整 250 个参数,就可以在 100 多个 NLP 任务上复现 Prompt Tuning 超过 80% 的性能。

图片

 图:重参数化方法往往基于类似的低维或低秩假设

Delta Tuning 的理论视角

Delta Tuning 本质上是否有共通之处?我们认为,Delta Tuning 方法不仅具有很高的实用价值,更具有深远的理论意义,它们似乎都在不约而同地证明一件事情:即大模型的适配过程似乎是一个非常低消耗的过程(相比于预训练),它可以通过非常少的数据和非常少的参数调整来完成。Delta Tuning 的成功启发我们去进一步地探索模型适配背后的理论框架,本文提出了优化和最优控制两个视角的框架去对 Delta Tuning 进行理论层面的阐释。

优化角度

Delta Tuning 试图通过微调一小部分参数来达到在原大规模语言模型上做全参数微调的效果,并减少内存占用。从优化角度,我们分析 Delta Tuning 的效果并讨论了在低维假设下的一些 Delta Tuning 方法的设计。使用 Delta Tuning 后,目标函数及其所依赖的参数都可能会发生改变。对新的目标函数,仅优化其与 Delta Tuning 有关的参数,如果初值足够好,在一定假设意义下模型的性能不会有大的损害。但是为了确保 Delta Tuning 的有效性,有必要去开发问题的结构来设计这个新的目标函数。其出发点是利用问题内在的低维特性。一般而言,在实践中有两种思路被证明是有用的:

  • 在特定的低维的子空间内寻找解向量;
  • 在特定的低维的函数空间内近似目标函数。

因为对深度学习中的大部分应用,目标函数通常有很多局部极小值点,所以当初值接近一个局部极小值点时,仅仅个别搜索方向是重要的,或者目标函数在此邻域能被更简单的函数近似表示。因此这两种优化思路都有望取得较好效果,并且对低维的参数进行优化通常也更为有效和稳定。

解空间的低维表示。已有研究表明预训练语言模型的参数优化遵循低维的流形 (Aghajanyan et al., 2021), 因此可以将此流形嵌入到解向量的一个低维的表示上。如果这个低维表示是精确的,那么在原模型上的全参数微调等价于在此低维参数上的微调。如果低维表示存在误差,那么当预训练模型的目标函数和新的目标函数满足 Lipschitz 连续性,最终全参数微调和低维参数微调的效果差异也是可控的。

一些 Delta Tuning 方法得益此设计思路。比如,在 LoRA (Hu et al., 2021a) 中,权重矩阵采用低秩近似;在 BitFit (Zaken et al., 2021) 和 diff pruning (Guo et al., 2021),只有一些选定的参数被优化。这些方法本质都是在更小的关于解向量的子空间里更新参数,最终能取得较好的效果。

函数空间的低维表示。另一种做法是直接设计原目标函数的一个近似函数,并期望此函数近似的误差较小。这样的函数近似可以是增量网络 (Houlsby et al., 2019) 或增广特征空间 (Lester et al., 2021)。因为我们通常更关心语言模型的最终效果,因此直接考虑对目标函数本身的近似效果是合理的。

在实践中构建这样的函数近似有多种不同的做法。最简单的是固定网络中的部分参数,只微调其余部分,该方法期望网络的一部分能大致反映整个网络的性能。因为网络中函数的作用由数据流来刻画,所以可以在原网络中的数据通路中注入低秩的表示,得到的新模型是一个增量网络,比如 Adapter。函数的误差由增量网络的表示能力来确定。

如果开发 Transformer 的自回归结构,一些更精细的函数近似也能被得到。比如,prompt tuning (Lester et al., 2021) 将一系列 prompt token 作为前缀添加到输入中,并且只对这些 prompt token 依赖的参数微调。这种方式可以视作是对特征空间的增广,并且得益于 Transformer 的性质,这样的函数能较好地近似原函数,并且引导语言模型关注具体的任务。相关的方法还有 prefix tuning (Li & Liang, 2021)。实验观测到 prompt tuning 对更大模型和更大的数据集有更好的优势,这也是合理的,因为这些方法本质是用低维的函数来近似高维的函数,当模型和数据的规模增大时,也自然有更多的自由度来选择函数近似的子空间。

两种低维表示通常可以得到形式上相近的 Delta Tuning 方法。(He et al., 2022) 对 Adapter, prefix tuning 和 LoRA 做了一个形式上统一的表述,这可以被视作从函数近似的角度来看待各种 Delta Tuning 技术。我们的讨论表明这些 Delta Tuning 方法都依赖于低维的假设。事实上,在不同的任务上甚至也存在公共的低维子空间 (Qin et al., 2021b)。Su et al. (2021) 以及我们的实验部分也展示了 Delta Tuning 在不同任务间的迁移性。因为 Delta Tuning 的实际效果不可避免地与任务相关,所以为了达到全参数微调的效果,更好地挖掘利用问题本身的结构或者设计一些混合式算法是有益的。

最优控制角度

基于以往的从最优控制角度解释深度学习的理论,我们从揭示了 Delta Tuning 可以看作寻找最优控制器的过程。对于一个自回归的分类模型来说,模型会在最后一步(标记为位置)生成标签的预测,这个优化过程可以表示为:

图片

这里的函数 定义了 PLM 中在 Delta 的干预下改变的前向传播。具体来说,可学习的 激活来自 的固定参数,以便在第 层的表示 可以被正确地转换为。因此,两个连续层之间的表示变换由函数 和 Transformer 中的残差连接来描述。而无论是对 Addition-based 方法的 Adapter 和 Prefix,还是指定式方法的 BitFit,亦或是重参数化方法的 LoRA,我们都可以推导出这样一个函数来表示 Delta Tuning(详细推导在论文中)。

我们把 Delta Tuning 中的 Softmax 函数和正则化项看作是终端,并且将 Delta 参数作为控制变量的运行损失,把 Delta Tuning 问题表述为离散时间控制问题,因而 Delta Tuning 中的前向和后向传播等效于 Pontryagin 最大原理中的共态过程的计算。总而言之,增量调整可以看作是为特定下游任务寻求 PLM 的最佳控制器的过程。

我们的分析可以启发新颖的 Delta Tuning 方法的设计,我们还证明了 Delta 参数对 PLM 的干预等同于控制器的设计。通过应用控制器设计的理论,我们期望提出更多具有理论保证的 Delta Tuning 方法,即设计的 Delta 结构在充分激发 PLM 的情况下具有原则上的可解释性。

Delta Tuning 全方位的实验分析

作为激发并调用大型 PLM 的高效方法,Delta Tuning 在各种实际应用场景下具有巨大的潜力。在本节中,我们进行了系统的实验,以更深入地了解不同主流 delta 调优方法的属性。 

1. 性能,收敛性和效率分析

我们首先选取全参数 Fine-tuning 和四种具有代表性的 Delta Tuning 方法(包括 Prompt Tuning(PT),Prefix-Tuning(PF),LoRA(LR)和 Adapter(AP))对性能、收敛性和效率分析进行了彻底的比较。为了能够测试更加多样的语言建模能力,我们选取了超过 100 个 NLP 典型任务,包括文本分类(如情感分类,自然语言推断),问题回答(如抽取式阅读理解),语言生成(如文本摘要、对话)等任务,并且将所有任务的输入和输出都建模成 sequence-to-sequence 的格式,从而方便使用同一个模型(T5)统一建模所有任务。除了 PT 是在 T5-base 和 T5-large 上测试,其它方法均在 T5-base 上进行实验。

图片

性能分析:实验结果如上表所示,我们可以发现,(1) 总的来说,由于不同的 Delta Tuning 方法仅仅微调很少的参数,增加了优化的难度,因此在大多数情况下它们在性能上无法与 FT 匹敌,但两者之间的差距并非不可逾越,这证明了参数高效自适应的大规模应用的潜力。(2) PF、LR、AP 这三种方法虽然设计元素不尽相同,但在性能上是不相上下的。它们中的任何一个方法都有可能在某些任务上表现出优于其它方法的性能(甚至超越 FT )。根据平均结果,所有方法的性能排名为 FT > LR > AP > PF > PT。同时我们也发现,Delta Tuning 方法的性能与其可调参数的数量并不一致,即更多可调参数不一定会带来更好的性能,相比之下,Delta Tuning 的具体结构设计可能会发挥更大的作用。(3) PT 作为这些方法中最容易实现的方法(即不修改模型的内部结构),在大多数情况下,它的性能是远远落后于其他 Delta Tuning 方法的。

图片

收敛性分析:我们节选了部分数据集上的不同微调方法在不同训练步数下性能的变化,其中由于 PT 相比其它方法而言收敛速度过慢,没有列入上图。我们可以发现,总的来说,这些微调方法的收敛速度排序为:FT > AP ≈ LR > PF。尽管 PF 在所有 Delta Tuning 方法中可调参数数量最多,但仍然面临一些收敛困难,因此收敛速度与可微调的参数量也没有直接的联系。在实验中我们还发现,对于每种 Delta Tuning 方法,性能和收敛性都对可调参数的数量不敏感,相比之下,对具体的结构更敏感。总而言之,我们的实验在收敛性和整体性能方面得出了非常相似的结论,并且这些结论得到了大量数据集上结果的充分支持。 

图片

效率分析:Delta Tuning 可以减少参数的梯度计算,从而节省 GPU 显存,体现了计算资源上的高效。为了具体验证 Delta Tuning 对 GPU 显存的效率提升,我们进行了实验以比较不同 Delta Tuning 方法在不同规模的 PLM 上微调所消耗的 GPU 显存。具体而言我们选择了三个尺度的 T5 模型,即 T5-base、T5-large、T5-xl,并测试了在不同 batch size 下达到的峰值 GPU 内存。我们使用 NVIDIA A100(最大 GPU 内存 = 39.58GB)进行实验。从上图中我们可以看出,在 batch size 较小时(例如,1、8),Delta Tuning 最多可以节省 3/4 的 GPU 显存,而在 batch size 较大时,Delta Tuning 至少可以节省 1/3 的 GPU 显存。上述结果体现了 Delta Tuning 计算资源上的高效。

2. 可组合性分析

考虑到不同的 Delta Tuning 方法是相互兼容的,这意味着它们可以同时应用在同一个 PLM 上。因此我们研究了 Delta Tuning 的组合是否会带来性能上的提升。具体来说,我们探索了两种组合方式:同时组合和顺序组合,并且选择了三种具有代表性的 Delta Tuning 方法,包括 Prompt Tuning、BitFit 和 Adapter。

同时组合:我们首先探索同时应用三种 Delta Tuning 方法的效果,并使用 RoBERTa-large 在 8 个 GLUE 子任务进行实验。我们在全量数据和低资源场景下均进行了实验,并且探索了人工输入模版对于性能的影响,人工模板旨在弥合预训练和下游任务适应之间的差距。

图片

从上表可以看出,(1) 无论是在全量数据还是低资源场景下,无论是否存在手动模板,在 Delta Tuning 的组合中引入 Adapter 几乎总是有助于平均 GLUE 性能;(2) 在组合中引入 Prompt Tuning 通常会损害平均性能,表明 Prompt Tuning 可能与其他两种 Delta Tuning 方法不兼容;(3) 在组合中引入 BitFit 一般会提高平均性能;(4) 手动模板可以通过缩小下游任务适应和预训练之间的差距显著提高 zero-shot 性能(从 23.7 到 43.4)。在 few-shot 设置下,人工模板也可以明显提高平均性能。然而,当训练监督信号相对比较丰富时(全量数据场景下),引入人工模板仅表现出微弱的性能提升,甚至有可能损害性能。 

顺序组合:除了同时组合之外,我们还进一步研究了上述三种 Delta Tuning 方法按照一定顺序引入时的兼容性。具体来说,我们将整个微调分为 3 个阶段。在每个阶段,我们训练一个单独的 Delta Tuning 方法;在接下来的阶段中,我们固定前面阶段训练得到的 Delta Tuning 参数不动 ,只优化新引入的 Delta Tuning 参数。我们在 SST-2 情感分类数据集上,在使用 / 不使用人工模板的情况下对 RoBERTa-large 进行实验。结果在下图所示(节选),从中我们可以得出,在某些情况下,可以通过不断引入新的 Delta Tuning 方法,整体性能能够得到不断提高,从而验证了顺序组合的优势;同时我们也发现,在不同的设置下,不存在固定最优的组合顺序。最优的组合方式可能会因为不同的下游任务、使用的模型架构等等因素而变化。

图片

泛化差距分析:各种微调方法对训练数据的记忆能力(Memorization)和泛化能力(Generalization)不尽相同。为此我们报告了 RoBERTa-large 在全量数据设置下的泛化差距(训练集效果 - 开发集效果),结果如下表所示,从中我们可以可以看出,(1)单个 Delta Tuning 方法的泛化差距总是小于 Fine-tuning,这意味着过度参数化可能有助于更好地记忆(过度拟合)训练样本。在所有 Delta Tuning 方法中,Prompt Tuning 往往具有最小的泛化差距。考虑到每种 Delta Tuning 方法均可以很好地泛化并在开发集上表现出非平凡的性能,因此过度拟合训练集可能不是良好泛化的必要条件;(2) 一般来说,组合几个 Delta Tuning 方法会增大泛化差距,甚至达到与全 Fine-tuning 相当的程度。这表明,记住训练集(Memorization)可能不需要微调过多;换句话说,在 PLM 进行下游任务适应时,即使模型可微调的容量很小,也足够很好地记忆训练集;(3) 使用人工模板一般不会影响泛化差距。

3. 模型规模增长的性能变化

我们研究了模型的规模增大对于 Delta Tuning 性能的影响。最近,有研究发现 ,随着使用的 PLM 的模型规模增长,Prompt Tuning 的性能会越来越强,甚至可以达到和全参数 Fine-tuning 微调相匹敌的水平。在这一小节中,我们将探讨是否所有 Delta Tuning 方法均能够表现出这种模型规模带来的优势(Power of Scale)。具体来说,我们对 MNLI、QNLI 和 SST-2 三个典型的 NLP 任务进行了实验,并选择了三个规模不断增加的 PLM(T5-small、T5-base、T5-xxl),并评估了六种具有代表性的 Delta 调整方法的性能(Adapter、LoRA、Prefix-Tuning、Prompt Tuning、Last Layer Tuning 和 Selective Module Tuning),结果如下图所示。

图片

图片


图片

从图  (a-i) 中,我们可以观察到,随着 PLM 网络规模的增长,所有 Delta Tuning 方法的性能和收敛性都得到了显着提高;(2) 此外,图 (j-l) 表明,与其他 Delta 调整方法相比,Prompt Tuning 往往对小规模 PLM(T5-small 和 T5-base)性能比较差。但是,其他 Delta Tuning 方法没有这个问题;(3) 基于现有结果,在图 11 (m-o) 和 (p-r) 中,我们进一步设计了两种 Delta Tuning 方法:Last Layer Tuning 和 Selective Module Tuning。对于 Last Layer Tuning ,我们只微调 T5 encoder 的最后一层;对于 Selective Module Tuning,我们随机选择 T5 模型中的部分模块进行微调。这两种方法都表现出优异的效果,尤其是当 PLM 的规模非常大时,Selective Module Tuning 略好于 Last Layer Tuning。这些结果表明,将可微调的参数限制在某个特定层内可能不是一个好的策略。另一方面,当 PLM 的规模变得非常大时,跨不同层随机选择模块来微调可以实现出色的性能。总的来说,上述结果表明,随着 PLM 模型规模的增长,各种微调方法的性能 / 收敛速度得到显著提升可能是 Delta Tuning 的常见现象。我们猜测这种现象的存在是因为,较大的 PLM 通常具有较小的本征维度(Intrinsic Dimension),因此,仅调整很少的参数即可获得足够强的表示能力,从而在下游任务中实现非平凡的性能;此外,过参数化的模型可能在下游优化过程中更不容易陷入局部最优,从而加速收敛。

4. 任务间迁移能力

我们研究了不同下游任务之间 Delta Tuning 方法的可迁移性,具体而言,我们采用了 4 种 Delta Tuning 方法(Prompt Tuning、Prefix-Tuning、Adapter 和 LoRA)和 5 种不同类型的 12 个 NLP 任务(包括情感分析、自然语言推理、转述识别、问答、总结),并将在源任务上训练好的 Delta 参数迁移到目标任务上,测试 zero-shot 迁移效果。结果如下图所示,从中我们可以观察到:(1)对于属于同一类别的任务,它们之间的迁移通常表现良好;(2)对于不同类型的任务,在它们之间迁移性能较差;(3) 另外,我们发现从文本生成任务(如问答和摘要)训练得到的 Delta 参数可以迁移到情感分析任务上并取得优异的表现,这表明文本生成任务可能是一项更复杂的任务,解决该任务所需要的语言能力可能包括了情感分析能力。 

图片

Delta Tuning 的应用

快速训练与存储空间节省。Transformer 模型虽然本质上是可并行化的,但由于其庞大的规模,训练起来非常缓慢。尽管 Delta Tuning 的收敛速度可能比传统的全参数微调慢,但随着反向传播期间可微调参数的计算量显著减少,Delta Tuning 的训练速度也得到了显著提升。以前的研究已经验证了,使用 Adapter 进行下游调优可以将训练时间减少到 40%,同时保持与全参数微调相当的性能。由于轻量的特性,训练得到的 Delta 参数还可以节省存储空间,从而方便在从业者之间共享,促进知识迁移。

多任务学习。构建通用的人工智能系统一直是研究人员的目标。最近,超大型 PLM (例如 GPT-3) 已经展示了同时拟合不同数据分布和促进各种任务的下游性能的惊人能力。因此,在大规模预训练时代,多任务学习受到越来越多的关注。作为全参数微调方法的有效替代,Delta Tuning 具有出色的多任务学习能力,同时保持相对较低的额外存储。成功的应用包括多语言学习、阅读理解等。此外,Delta Tuning 也有望作为持续学习中灾难性遗忘的潜在解决方案。在预训练期间获得的语言能力存储在模型的参数中。因此,当 PLM 在一系列任务中按顺序进行训练时,在没有正则化的情况下更新 PLM 中的所有参数可能会导致严重的灾难性的遗忘。由于 Delta Tuning 仅调整最小参数,因此它可能是减轻灾难性遗忘问题的潜在解决方案。

中心化模型服务和并行计算。超大型 PLM 通常作为服务发布,即用户通过与模型提供者公布的 API 交互来使用大模型,而不是本地存储大模型。考虑到用户和服务提供商之间难以承受的通信成本,由于其轻量级的特性,Delta Tuning 显然是比传统全参数微调更具竞争力的选择。一方面,服务提供商可以支持训练多个用户所需的下游任务,同时消耗更少的计算和存储空间。此外,考虑到一些 Delta Tuning 算法本质上是可并行的(例如 Prompt Tuning 和 Prefix-Tuning 等),因此 Delta Tuning 可以允许在同一个 batch 中并行训练 / 测试来自多个用户的样本(In-batch Parallel Computing)。最近的工作还表明,大多数 Delta Tuning 方法,如果本质上不能并行化,也可以通过一些方法修改以支持并行计算。另一方面,当中心的达模型的梯度对用户不可用时,Delta Tuning 仍然能够通过无梯度的黑盒算法,仅调用模型推理 API 来优化大型 PLM。

以上是全方位分析大模型参数高效微调,清华研究登Nature子刊的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:51cto.com。如有侵权,请联系admin@php.cn删除