人工智能咨询培训老师叶梓 转载标明出处
迁移学习技术,尤其是针对大型预训练模型的微调(fine-tuning),在诸多下游任务中展现出了卓越的性能。然而,当面临众多任务时,传统的微调方法存在参数效率低下的问题,因为它需要为每个新任务训练一个全新的模型。为了解决这一问题,本文提出了一种使用适配器模块(Adapter Modules)进行迁移学习的新方法,该方法由Neil Houlsby、Andrei Giurgiu、Stanisław Jastrzebski等研究者共同提出。
论文链接:https://arxiv.org/pdf/1902.00751
代码地址:GitHub - google-research/adapter-bert
图 1: 展示了适配器调整(Adapter tuning)和微调(Fine-tuning)在训练特定任务参数数量和准确率之间的权衡。图中的y轴以全参数微调的性能为基准进行了归一化,x轴表示每个任务训练的参数数量。显示了在GLUE基准的九个任务上,适配器调整能够以更少的参数数量达到与全参数微调相似的性能。
方法
适配器调整(Adapter Tuning)策略主要针对大型文本模型在多个下游任务上的调整,具有三个关键特性:良好的性能表现、支持任务顺序训练、以及每个任务只增加少量额外参数。这些特性在云计算服务中尤为重要,因为云服务常常需要在一系列下游任务上训练多个模型,而高度的参数共享是理想的状态。
为了实现这些特性,研究者提出了一种新的瓶颈适配器模块(bottleneck adapter module)。与传统的深度网络微调不同,适配器调整策略通过在原始网络中注入新的层来实现,这些新层被称为适配器层。在适配器调整过程中,原始网络的权重保持不变,而新的适配器层则随机初始化。这种设计允许原始网络的参数在多个任务中共享,从而提高了参数效率。
适配器模块的两大特点:
- 参数数量少:适配器模块相比于原始网络的层要小得多,这意味着当添加更多任务时,模型大小的增长相对较慢。
- 近恒等初始化:为了模型训练的稳定性,适配器模块需要进行近恒等初始化。初始化时,适配器对原始网络的影响很小,但在训练过程中可以激活适配器来改变