随着,ChatGPT 敏捷爆火,引发了大模型的时代变革。然而关于一般大众来说,进行大模型的预练习或者全量微调遥不行及。由此,催生了各种参数高效微调技能,让科研人员或者一般开发者有机会测验微调大模型。

因此,该技能值得我们进行深入分析其背后的机理,本系列大体分七篇文章进行讲解。

  • 大模型参数高效微调技能原理总述(一)-布景、参数高效微调简介
  • 大模型参数高效微调技能原理总述(二)-BitFit、Prefix Tuning、Prompt Tuning
  • 大模型参数高效微调技能原理总述(三)-P-Tuning、P-Tuning v2
  • 大模型参数高效微调技能原理总述(四)-Adapter Tuning及其变体
  • 大模型参数高效微调技能原理总述(五)-LoRA、AdaLoRA、QLoRA
  • 大模型参数高效微调技能原理总述(六)-MAM Adapter、UniPELT
  • 大模型参数高效微调技能原理总述(七)-最佳实践、总结

本文为大模型参数高效微调技能原理总述的第四篇。Adapter Tuning 最早是在2019年提出,随后呈现了较多的变体。其核心思维是经过引进一些额外的模块来适配下流使命。

Adapter Tuning

布景

随着核算机硬件功能的进步,预练习模型参数量越来越多,在练习下流使命时进行全量微调变得昂贵且耗时。

基于此,作者提出了Adapter Tuning,Adapter 的呈现缓解了上述问题 Adapter 在预练习模型每层中刺进用于下流使命的参数(针对每个下流使命,仅增加3.6%的参数),在微调时将模型主体冻结,仅练习特定于使命的参数,然后减少了练习时的算力开支。

技能原理

Adapter Tuning(论文:Parameter-Efficient Transfer Learning for NLP),该办法设计了Adapter结构,并将其嵌入Transformer的结构里面,针对每一个Transformer层,增加了两个Adapter结构(别离是多头注意力的投影之后和第二个feed-forward层之后),在练习时,固定住本来预练习模型的参数不变,只对新增的 Adapter 结构和 Layer Norm 层进行微调,然后确保了练习的高效性。

每逢呈现新的下流使命,经过添加Adapter模块来产生一个易于扩展的下流模型,然后防止全量微调与灾难性忘记的问题。

大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

Adapter结构详细细节

每个 Adapter 模块主要由两个前馈(Feedforward)子层组成,第一个前馈子层(down-project)将Transformer块的输出作为输入,将原始输入维度d(高维特征)投影到m(低维特征),经过控制m的巨细来约束Adapter模块的参数量,通常情况下,m<<d。然后,中间经过一个非线形层。在输出阶段,经过第二个前馈子层(up-project)还原输入维度,将m(低维特征)重新映射回d(本来的高维特征),作为Adapter模块的输出。一起,经过一个skip connection来将Adapter的输入重新加到最终的输出中去,这样可以确保,即便 Adapter 一开始的参数初始化接近0,Adapter也因为skip connection的设置而接近于一个恒等映射,然后确保练习的有用性。

大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

经过实验发现,只练习少数参数的Adapter办法的作用可以比美全量微调,这也验证了Adapter是一种高效的参数练习办法,可以快速将言语模型的能力搬迁到下流使命中去。一起,可以看到,Adapter 最佳的中间层特征维度m视数据集的巨细而异,如:MINI数据集为256,最小的RTE数据集为8。假如始终将维度约束在64,将导致平均准确率略微下降。

大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

总归,Adapter经过引进0.5%~5%的模型参数可以到达不落后全量微调模型1%的功能。

AdapterFusion

布景

为了整合来自多个使命的常识,传统的两个办法是按一定次序微调(Sequential fine-tuning)或者多使命学习(multi-task learning)。前者的一大问题是需求先验常识来确定次序,且模型容易忘记之前使命学到的常识,后者的问题是不同的使命会相互影响,也难以平衡数据集巨细差距很大的使命。

而之前的作业,Adapter Tuning的一个优势便是不必更新预练习模型的参数,而是刺进比较少的新的参数就可以很好地学会一个使命。此刻,Adapter 的参数某种程度上就表达了解决这个使命需求的常识。

作者受此启发,假如想要把来自多个使命的常识结合起来,是否可以考虑把多个使命的Adapter的参数结合起来?基于此,作者提出了 AdapterFusion,这是一种新的两阶段学习算法,可以利用来自多个使命的常识。

技能原理

Adapter Fusion(论文:AdapterFusion:Non-Destructive Task Composition for Transfer Learning),一种融合多使命信息的Adapter的变体,在 Adapter 的基础上进行优化,经过将学习过程分为两阶段来进步下流使命表现。

  • 常识提取阶段:在不同使命下引进各自的Adapter模块,用于学习特定使命的信息。
  • 常识组合阶段:将预练习模型参数与特定于使命的Adapter参数固定,引进新参数(AdapterFusion)来学习组合多个Adapter中的常识,以进步模型在方针使命中的表现。

大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

关于第一阶段,有两种练习办法,别离如下:

  • Single-Task Adapters(ST-A):关于N个使命,模型都别离独立进行优化,各个使命之间互不干扰,互不影响。
  • Multi-Task Adapters(MT-A):N个使命经过多使命学习的办法,进行联合优化。

关于第二阶段,为了防止经过引进特定使命参数而带来的灾难性忘记问题,AdapterFusion提出了一个共享多使命信息的结构。针对特定使命m,AdapterFusion联合了第一阶段练习得到的N个Adapter信息。固定言语模型的参数跟N个Adapter的参数,新引进AdapterFusion的参数,方针函数也是学习针对特定使命m的AdapterFusion的参数。

AdapterFusion结构

AdapterFusion详细结构便是一个Attention,它的参数包括query,key, value的矩阵参数,在transformer的每一层都存在,它的query是transformer每个子模块的输出成果,它的key跟value则是N个使命的adapter的输出。经过AdapterFusion,模型可以为不同的使命对应的adapter分配不同的权重,聚合N个使命的信息,然后为特定使命输出更适宜的成果。

大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

经过对全量微调、AdapterTuning、AdapterFusion这三种办法在各个数据集上进行对比实验可以看出,AdapterFusion在大多数情况下功能优于全模型微调和AdapterTuning,特别在MRPC与RTE数据会集,功能显着优于别的两种办法。

一起,还可以看到第一阶段选用ST-A+第二阶段AdapterFusion是最有用的办法,在多个数据集上的平均作用到达了最佳。而第一阶段选用MT-A+第二阶段AdapterFusion没有取得最佳的作用,在于第一阶段其完成已联合了多个使命的信息了,所以AdapterFusion的作用没有那么显着,一起MT-A这种多使命联合练习的办法需求投入较多的本钱,并不算一种高效的参数更新办法。别的,ST-A的办法在多个使命上都有进步,可是MT-A的办法则否则,这也标明晰MT-A尽管可以学习到一个通用的表征,可是因为不同使命的差异性,很难确保在所有使命上都取得最优的作用。

大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

总归,经过将适配器的练习分为常识提取和常识组合两部分,解决了灾难性忘记、使命间干扰和练习不稳定的问题。可是,Adapter模块的添加也导致模型全体参数量的增加,降低了模型推理时的功能。

AdapterDrop

布景

近年来Adapter已被证明可以很好地用于机器翻译、跨言语搬迁、社区问答和搬迁学习的使命组合。尽管它们最近很受欢迎,但Adapter的核算功率尚未在参数功率之外得到探索。

作者经过对Adapter的核算功率进行分析,发现与全量微调比较,Adapter在练习时快60%,可是在推理时慢4%-6%。

基于此,作者提出了AdapterDrop办法缓解该问题。

技能原理

AdapterDrop(论文:AdapterDrop: On the Efficiency of Adapters in Transformers),在不影响使命功能的情况下,对Adapter动态高效的移除,尽可能的减少模型的参数量,进步模型在反向传达(练习)和正向传达(推理)时的功率。

大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

实验标明,从较低的Transformer层中删去Adapter可以显着进步多使命设置中的推理速度。 例如,将前五个Transformer层中的Adapter丢掉,在对 8 个使命进行推理时,速度进步了 39%。而且即便有多个丢掉层,AdapterDrop 也能坚持杰出的成果。

大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

除此之外,作者还研究了对AdapterFusion中的Adapter进行剪枝后的作用。

大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

经过实验标明可以移除AdapterFusion中的大多数Adapter而不影响使命功能。使用剩余的两个Adapter,完成了与具有八个Adapter的完整 AdapterFusion模型适当的成果,并将推理速度进步了 68%。

大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

因此,作者主张在实践部署这些模型之前履行 AdaperFusion 剪枝。 这是一种简略而有用的技能,即便在彻底坚持功能的情况下也能完成功率进步。

总归,AdapterDrop 经过从较低的Transformer层删去可变数量的Adaper来进步推理速度。 当对多个使命履行推理时,动态地减少了运行时的核算开支,并在很大程度上坚持了使命功能。

结语

本文叙述了参数高效微调办法Adapter Tuning及其变体(AdapterFusion、AdapterDrop),下文将对高效微调办法LoRA、AdaLoRA、QLoRA进行讲解。

假如觉得我的文章可以可以给您带来帮助,等待您的点赞保藏加关注~~