Deep Prompt 是一种常用且有效的 parameter-efficient 方法,可以通过训练少量的参数达到与全体参数训练一致的效果。本文作者利用 Deep Prompt 结构实现了检索模块。 在实现中,一个检索模型由一个预训练的语言模型、一个通用 prompt 和若干个属性 prompt 组成。预训练好的语言模型被冻结并不参与训练,通用 prompt 用于存储不同类型任务之间的通用知识,而属性 prompt 单独存储不同的任务属性知识。这种实现方法为未来可能存在的大量任务属性知识学习提供了存储和计算的高效性。 训练过程被分为两个阶段。第一阶段使用通用的检索任务(例如 MSMARCO 任务),单独训练 general prompt,以让其学习通用的检索能力。第二阶段联合训练多个 attribute prompts,并使用较小的学习率微调 general prompt。这样可以使 general prompt 更好地桥接多个 attribute prompts 和预训练模型,从而有效解决模块化学习中不同模块之间的兼容性问题。此外,这种多个 attribute prompts 的联合训练方法也能有效降低训练成本。
3.3 任务分解与模块合成
如何正确地将任务分解为模块是模块化学习的关键之一。本文根据各个任务的指示(task instructions)将任务分解为多个任务属性。例如,将 SciFact 数据集根据其任务指示 “Retrieve a scientific paper sentence to verify if the following claim is ture” 分解为 science 和 fact-checking 两个任务属性。然后,将对应的两个检索模块与预训练好的大模型组合起来,形成针对该数据集的一个检索模型。 如何组装训练模块也是一个关键点。在 REMOP 方法中,各个检索模块是由 Deep Prompt 结构实现的。因此,本文利用了在联邦学习中常见的加权平均方法(weighted averaging)对各个模块进行融合。同时,本文给出了一个基于梯度累加的模型融合的直觉解释:不同的 attribute prompt 相当于基于 general prompt 的针对特定任务属性的累积梯度。通过不同 attribute prompt 的累加,可以理解为模型在不同属性任务集合中按顺序进行训练。
[1] Suchin Gururangan, Mike Lewis, Ari Holtzman, Noah A Smith, and Luke Zettlemoyer. Demix layers: Disentangling domains for modular language modeling. arXiv preprint arXiv:2108.05036, 2021.[2] Akari Asai, Mohammadreza Salehi, Matthew E Peters, and Hannaneh Hajishirzi. Attentional mixtures of soft prompt tuning for parameter-efficient multi-task knowledge sharing. arXiv preprint arXiv:2205.11961, 2022.[3] Jonas Pfeiffer, Ivan Vuli ́c, Iryna Gurevych, and Sebastian Ruder. Mad-x: An adapter-based framework for multi-task cross-lingual transfer. arXiv preprint arXiv:2005.00052, 2020.[4] Alexandra Chronopoulou, Matthew E Peters, Alexander Fraser, and Jesse Dodge. Adaptersoup: Weight averaging to improve generalization of pretrained language models. arXiv preprint arXiv:2302.07027, 2023.