微调方法是自然语言处理(NLP)领域最优秀的方法之一。通过在包含数十亿参数的预训练语言模型(PLM)上进行训练,可以更新PLM中的所有参数。尽管微调方法能够达到最先进的性能,但修改这些参数的成本非常高昂[3]、[5]、[21]、[28]、[47]、[54]。
最近,人们提出了参数高效方法来减少训练参数的数量。具体来说,这些方法保持PLM不变,仅在训练过程中为特定任务学习少量参数[4]、[11]、[14]、[20]、[33]、[49]。主要有两种参数高效方法:提示方法(prompt methods)和适配器方法(adapter methods)。
提示方法将一些提示词插入到任务中。在训练过程中,只有这些提示参数会被修改,而PLM保持不变[9]、[24]、[26]、[50]。提示参数的数量远少于PLM的参数数量。由于在训练任务时仅修改提示部分,因此任务的知识被编码到提示中,提示被视为任务的表示形式[43]。
适配器方法是一种替代的参数高效方法。与修改训练任务的提示方法不同,适配器方法保持任务不变,并在PLM的每个中间层添加少量额外的参数(称为适配器)[14]、[17]、[36]。在训练过程中,只有这些适配器参数会被修改,原始PLM保持不变。与微调方法相比,适配器方法的参数数量大幅减少。同样,任务的知识也被编码到适配器中。
不幸的是,无论是提示方法还是适配器方法,其性能都低于微调方法。
最近,人们利用迁移学习[1]、[18]、[25]、[34]通过在一系列任务之间共享知识来增强参数高效方法的能力。参数高效方法保持了较低的训练成本,同时迁移学习能够跨任务传递知识以提高每个任务的准确性。将这两种技术的优势结合起来是一个自然且关键的选择。我们将这种结合参数高效方法和迁移学习的方法称为参数高效迁移方法[12]、[14]。
提示迁移方法首先为任务学习一个单独的提示,然后将存储在该提示中的知识转移到其他提示中[2]、[23]、[43]。类似地,AdapterFusion[32]是一种结合适配器方法和迁移学习的方法,它首先为任务单独学习一个适配器,然后在一系列适配器之间共享知识。
这些参数高效迁移方法需要训练两次。虽然它们的性能远超单一训练的参数高效方法,但它们的参数数量至少是后者的两倍。
在本文中,我们提出了一种称为OMPT的一阶段多提示迁移方法,这种新方法仅需一次训练即可实现知识迁移。如图1所示,OMPT方法中的任务提示包括一个编码提示和一个迁移提示。编码提示仅用于编码任务本身的知识,而迁移提示是多个编码提示的注意力加权总和,旨在吸收其他任务的知识。OMPT在一次训练中同时获取编码提示和迁移提示。与提示方法的主要区别在于,OMPT添加了一个额外的迁移提示,可以利用其他任务的知识来辅助任务。与需要两次训练的现有提示迁移方法不同,OMPT仅通过一次训练即可获得编码提示和迁移提示。
我们在多个混合NLP任务集上评估了OMPT的性能。在所有情况下,OMPT的性能都大幅优于提示方法,但其参数数量仅增加了27%,远低于现有的提示迁移方法(如SPoT或ATTEMPT)。与需要两阶段训练的SPoT方法相比,我们的OMPT更加自动化,训练参数更少,推理速度更快。