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) 使用人工模板一般不会影响泛化差距。