Delta Tuning是什么》
本质是在一小部分的参数进行调整。
一种新的模型适配方案——参数高效(Parameter-efficient)方法逐渐受到关注,与标准全参数微调相比,这些方法仅微调模型参数的一小部分,而其余部分保持不变,大大降低了计算和存储成本,同时还有着可以媲美全参数微调的性能。研究者认为,这些方法本质上都是在一个「增量」(Delta Paremters)上进行调整,因此将它命名为 Delta Tuning。
现有的Delta Tuning 方法》
现有 Delta Tuning 方法可以被分为三组: 增量式(Addition-based):重新增加一组参数。常见的增量式方法包括 Adapter-Tuning、Prefix Tuning、Prompt Tuning 等等。将小规模的神经模块或者可调参数插入到模型中,并且通过只微调这一小部分参数来达到模型高效适配的效果。其中 Adapter-tuning 是这类方法的开创性工作,它证明仅仅在每一层添加一个简单的神经网络,就可以在很多任务上媲美全参数微调。Prompt Tuning 可以视为 Prefix Tuning 的简化版,即只在输入层添加 Soft Prompt,这种做法有一个非常大的好处,就是不用修改模型内部的结构。 指定式(Specification-based):指定微调哪一部分参数 重参数化(Reparameterization):指定对哪一部分的参数进行重新设计
所谓**适配器(adater)**是值在预训练网络层之间添加的新模块。基于适配器的调优和基于特征的迁移及微调有一些不同: **前缀微调(prefix-tunning),**用于生成任务的轻量微调。前缀微调将一个连续的特定于任务的向量序列添加到输入,称之为前缀,如下图中的红色块所示。与提示(prompt)不同的是,前缀完全由自由参数组成,与真正的token不对应。相比于传统的微调,前缀微调只优化了前缀。因此,我们只需要存储一个大型Transformer和已知任务特定前缀的副本,对每个额外任务产生非常小的开销。https://zhuanlan.zhihu.com/p/386073664
Delta Tuning 在做什么》
它们似乎都在不约而同地证明一件事情:即大模型的适配过程似乎是一个非常低消耗的过程(相比于预训练),它可以通过非常少的数据和非常少的参数调整来完成
Delta Tuning 和Fine tuning 的比较》
效率分析
全参数Fine-tuning和四种具有代表性的**Delta Tuning方法(包括Prompt Tuning(PT)、Prefix-Tuning(PF)、LoRA(LR)和Adapter(AP))**对性能、收敛性和效率分析进行了彻底的比较。
结论:根据平均结果,所有方法的性能排名为 FT > LR > AP > PF > PT。同时,研究者也发现,Delta Tuning 方法的性能与其可调参数的数量并不一致,即更多可调参数不一定会带来更好的性能,相比之下,Delta Tuning 的具体结构设计可能会发挥作用更大的作用。(3) PT 作为这些方法中最容易实现的方法(即不修改模型的内部结构),在大多数情况下,它的性能是远远落后于其他 Delta Tuning 方法的。 这些微调方法的收敛速度排序为:FT > AP ≈ LR > PF。
在实验中还发现,对于每种 Delta Tuning 方法,性能和收敛性都对可调参数的数量不敏感,相比之下,对具体的结构更敏感。
可组性分析
- 同时组合
这是对多种delta tuning的方式采用同时组合的方式,prompt tuning ,bitfit 和Adapter. 给出的实验结论是: 从上表可以看出,(1) 无论在全量数据还是低资源场景下,无论是否存在手动模板,在 Delta Tuning 的组合中引入 Adapter 几乎总是有助于平均 GLUE 性能;(2) 在组合中引入 Prompt Tuning 通常会损害平均性能,表明 Prompt Tuning 可能与其他两种 Delta Tuning 方法不兼容;(3) 在组合中引入 BitFit 一般会提高平均性能;(4) 手动模板可以通过缩小下游任务适应和预训练之间的差距显著提高 zero-shot 性能(从 23.7 到 43.4)。
**在 few-shot 设置下,人工模板也可以明显提高平均性能。**然而,当训练监督信号相对比较丰富时(全量数据场景下),引入人工模板仅表现出微弱的性能提升,甚至有可能损害性能。
- 顺序组合,具体来说,他们将整个微调分为 了3 个阶段。在每个阶段,研究者训练一个单独的 Delta Tuning 方法;在接下来的阶段中,他们固定前面阶段训练得到的 Delta Tuning 参数不动 ,只优化新引入的 Delta Tuning 参数。
实验结论:不存在固定的最优组合顺序。
模型规模变化给出的实验结论
有研究发现 ,随着使用的 PLM 的模型规模增长,Prompt Tuning 的性能会越来越强,甚至可以达到和全参数 Fine-tuning 微调相匹敌的水平。 实验结论:将可微调的参数限制在某个特定层内可能不是一个好的策略。
另一方面,当 PLM 的规模变得非常大时,跨不同层随机选择模块来微调可以实现出色的性能。总的来说,上述结果表明**,随着 PLM 模型规模的增长,各种微调方法的性能 / 收敛速度得到显著提升可能是 Delta Tuning 的常见现象。**
研究者猜测这种现象的存在是因为,较大的 PLM 通常具有较小的本征维度(Intrinsic Dimension),因此,仅调整很少的参数即可获得足够强的表示能力,从而在下游任务中实现非平凡的性能;此外,过参数化的模型可能在下游优化过程中更不容易陷入局部最优,从而加速收敛。
原文链接:https://cloud.tencent.com/developer/article/1975363 论文:《Delta Tuning: A Comprehensive Study of Parameter Efficient Methods for Pre-trained Language Models》
|