欢迎光临
我们一直在努力

L2P: 学会提示持续学习(CVPR 2022)

目录

摘要

引言

相关工作

方法

实验

结论

摘要❀

        持续学习的主流范式一直是调整模型参数以适应非平稳数据分布,其中灾难性遗忘是核心挑战。典型方法依赖于回放缓冲区或在测试时已知的任务身份来检索已学知识并应对遗忘,而本文提出了一种新的持续学习范式,旨在训练一个更简洁的记忆系统,且在测试时无需访问任务身份。我们的方法学习动态提示(L2P)一个预训练模型,以在不同的任务转换下顺序学习任务。在我们提出的框架中,提示是微小的可学习参数,它们被维护在一个记忆空间中。目标是优化提示以指导模型预测,并明确管理任务不变和任务特定的知识,同时保持模型的可塑性。我们在流行的图像分类基准测试下进行了全面的实验,这些基准测试具有不同的、具有挑战性的持续学习设置,L2P 持续优于先前最先进的方法。令人惊讶的是,即使没有回放缓冲区,L2P 也能达到与基于回放的方法相竞争的结果,并且直接适用于具有挑战性的任务不可知持续学习。源代码可在 https://github.com/google-research/L2P 获取。

引言🎶

        与在独立同分布数据上训练的普通监督学习相反,持续学习处理的是在单个模型上训练非平稳数据分布的问题,其中不同的分类任务按顺序呈现。然而,由于模型在学习周期的各个阶段只能访问当前数据,它容易过度拟合当前可用的数据,并由于灾难性遗忘而在先前训练的数据上性能下降 [37]。

        持续学习中的大部分工作遵循这样的学习范式:随着数据分布的变化,持续调整全部或部分模型权重,重点在于保留过去的知识 [9, 34]。尽管许多类型的方法取得了良好的结果,但仍存在一些需要解决的关键局限性。首先,受互补学习系统理论中海马体情景记忆的启发 [23, 36],许多最先进的方法 [3,4,8] 依赖回放缓冲区来重新训练部分过去的样本。然而,当缓冲区较小时,它们的性能会大幅下降 [4],并且在不允许使用回放缓冲区的情况下(例如,在数据隐私至关重要的现实世界场景中 [54])变得无效。这表明简单地缓冲过去数据并重新训练模型可能不是检索过去知识的最佳方法。在不访问回放缓冲区的情况下,另一类工作 [19,26,45] 通过假设在测试时已知任务身份来绕过遗忘问题,这样它们能够将任务独立的模块附加到共享模型上进行推理。然而,在测试时知道任务身份限制了其实际用途。

        先前工作的局限性引发了持续学习中的关键问题 [13, 16]:(1) 情景记忆的形式能否超越数据缓冲,成为一种更智能、更简洁的情景记忆系统?(2) 如何在不知道任务身份的情况下,为任意样本自动选择相关的知识组件?

        为了回答第一个问题,我们从自然语言处理领域最近基于提示的学习(prompting)的进展中汲取灵感 [29]。提示技术使用模板化的或可学习的提示标记(包含额外的任务特定信息)来设计模型文本输入,使得预训练语言模型能够处理参数化的输入,从而执行特定于提示的预测 [25, 27, 53]。直观地说,基于提示的学习将下游任务的学习从直接调整模型权重转变为设计"指导"模型有条件地执行任务的提示。提示编码了特定任务的知识,并且比普通的微调更有效地利用冻结的预训练模型 [25, 47]。因此,在持续学习的背景下,利用提示来学习知识并进一步存储已学知识是有前景的。

        然而,如何直接应用提示来解决上述持续学习中的第二个问题尚不清楚:一方面,如果在持续学习环境中为不同任务训练不同的提示,那么在测试时仍然需要任务身份才能使用适当的特定任务提示进行预测。另一方面,作为一种迁移学习技术,提示的目标是让冻结的预训练模型分别在各个下游任务上取得良好性能,而不是顺序学习。因此,如果我们改为为所有任务维护一个单一的共享提示,灾难性遗忘的问题可能仍然存在(见第 5.4 节)。

        为此,我们提出了一种新的持续学习方法,称为学习提示实现持续学习(L2P),它与流行的基于回放的方法正交,适用于没有已知任务身份或边界的实际持续学习场景。图 1 概述了我们的方法与典型持续学习方法的对比。L2P 利用了预训练模型的代表性特征;然而,L2P 并没有在持续学习过程中调整模型参数,而是保持预训练模型不变,学习一组提示,这些提示动态地指导模型解决相应的任务。具体来说,这些提示被结构化为一个称为提示池的键值共享记忆空间,我们设计了一个查询机制,基于样本的输入特征动态查找与任务相关的提示子集。提示池与监督损失联合优化,确保共享的提示编码共享知识以促进知识迁移,而不共享的提示编码特定任务知识以帮助保持模型的可塑性。我们的设计明确地解耦了共享知识和特定任务知识,从而大大减少了优化过程中任务特定知识之间的干扰,在无需回放缓冲区的情况下将灾难性遗忘降至最低。样本级的查询机制消除了知道任务身份或边界的必要性,使得最具挑战性且研究不足的任务不可知持续学习成为可能。选中的提示随后被添加到输入嵌入的前面(图 2),隐式地为预训练模型添加了任务相关的指导,使得模型能够回忆起最相关的特征来执行相应的任务。总之,这项工作做出了以下贡献:

  • 我们提出了 L2P,一个基于提示的新型持续学习框架,为应对持续学习挑战提供了一种新机制——通过学习一个提示池记忆空间,作为预训练模型顺序学习任务的参数化"指令"。该方法适用于处理最具挑战性的任务不可知持续学习。

  • 我们进行了全面的实验,证明了 L2P 在多个持续学习基准上的有效性,包括类增量、域增量和任务不可知设置。提出的 L2P 在所有基准测试上持续优于先前的最先进方法。令人惊讶的是,即使不使用回放缓冲区,L2P 仍然能达到与基于回放的方法相竞争的结果,这在禁止使用回放缓冲区的现实场景中是理想的。

  • 据我们所知,我们是第一个将提示的思想引入持续学习领域的。我们期望我们的方法能为解决持续学习中的前沿挑战提供不同的视角。

  • 相关工作📱

    持续学习。 最近的持续学习算法主要有三大类。基于正则化的方法 [1, 21, 28, 65] 通过限制对先前任务重要参数的学习率来限制模型的可塑性。尽管这些方法在不存储过去样本的情况下在一定程度上解决了灾难性遗忘问题,但在具有挑战性的设置 [34] 或复杂数据集 [49, 61] 下,它们无法获得令人满意的性能。

    基于回放的方法 [7, 8, 17] 构建一个数据缓冲区,用于保存旧任务的样本,并与当前任务的数据一起训练。基于这个简单而有效的想法,许多近期方法通过引入额外的知识蒸馏惩罚 [3,6,49,61] 或利用自监督学习技术 [4, 44] 对其进行了改进。尽管概念简单,但基于回放的方法在各种基准测试上都取得了最先进的性能 [34, 42]。然而,基于回放方法的性能通常会随着缓冲区大小的减小而下降 [4],并且最终不适用于需要考虑数据隐私的场景 [54]。与直接保存过去数据以重新训练模型不同,我们的方法将过去知识存储在小型的可学习提示参数中,以指导模型处理当前任务,并反过来将当前知识积累到提示中。我们的方法不需要回放缓冲区就能达到接近基于回放方法的性能,并且给定一个小的回放缓冲区可以进一步改进,创下新的最先进水平。

    基于架构的方法旨在为每个任务提供独立的组件。特定任务的组件可以通过扩展网络 [26, 31, 48, 50, 64, 68] 来识别,或者通过关注特定任务的子网络 [19, 35, 51, 59] 来实现。然而,大多数方法需要在测试时利用任务身份来条件化网络,这在任务身份未知的更现实的类增量和任务不可知设置中不适用。一些近期方法要么直接推断任务身份 [60],要么额外添加回放缓冲区来绕过这个问题 [44, 63]。尽管如此,这些方法需要大量额外参数,有时接近完整模型的大小 [19, 59]。相反,L2P 不需要测试时的任务身份,并且只增加了微不足道的额外参数(约 0.1%)。虽然 L2P 也引入了额外的提示参数,但其设计原则与基于架构的方法完全不同:L2P 设计了一种新颖的基于提示的记忆,从模型输入中学习高级指令来控制模型输出,并保持已学习的架构固定。相比之下,大多数基于架构的方法旨在分离模型参数。

    最后,最近的工作 CTN [45] 和 DualNet [44] 开始考虑通过一个控制器来管理知识,该控制器除了骨干模型外,还建模任务级信息。然而,CTN 在测试时仍然需要任务身份,而 DualNet 需要一个回放缓冲区才能工作。此外,CTN 和 DualNet 的灵感来自于不同的 CLS 视角,该理论表明人类通过两个系统实现持续学习,这两个系统分别促进快速学习和长期记忆。有趣的是,尽管我们的灵感来源不同,但 L2P 可以通过 CLS 理论来解读:提示池处理快速学习,而骨干模型作为长期记忆。

    用于迁移学习的提示学习。 提示学习的高级思想是应用一个函数来修改输入文本,使语言模型获得关于任务的额外信息。然而,提示函数的设计具有挑战性,并且需要启发式方法。最近的工作,包括提示调优 [25] 和前缀调优 [27],试图通过在连续空间中应用可学习的提示来解决这个问题,在迁移学习上取得了优异的性能。提示以其更小的额外参数捕获特定任务的知识,优于其竞争对手,如适配器 [43, 58] 和 LoRA [18]。提示学习的核心思想主要用于迁移学习。需要注意的是,直接将提示学习应用于持续学习并非易事。我们提出的新颖框架揭示了其对持续学习问题的价值。

    方法🔧

    (1)从提示到提示池

    引入提示池的动机有三。首先,测试时的任务身份未知,因此训练任务独立的提示是不可行的。其次,即使可以在测试时知道任务独立的提示,它也会阻止相似任务之间可能的知识共享 [16]。第三,虽然为所有任务学习一个单一共享提示的简单方法能够实现知识共享,但它仍然会导致严重的遗忘问题(见第 5.4 节)。理想情况下,人们会学习一个模型,该模型能够在任务相似时共享知识,同时在任务不相似时保持知识独立。因此,我们建议使用一个提示池来存储编码后的知识,这些知识可以灵活地组合起来作为模型的输入。提示池定义为:

     (2)实例级提示查询

    (3)L2P 的优化目标

    实验⌚️

    结论🍵

    本文提出了一种新颖的方法来解决持续学习中的一些关键挑战,该方法可以在不需要回放和任务身份的情况下实现强大的性能。L2P 将基于提示的学习引入持续学习,并提出了一种新技术,通过共享提示池使单个预训练模型能够适应顺序任务,成功缓解了灾难性遗忘问题。由此产生的方法在多个持续学习问题(包括类增量和域增量)上显著优于先前的最先进技术。我们展示了我们的方法足够通用,甚至可以处理更具挑战性的任务无关设置,而先前的方法在此设置下无能为力。

    赞(0)
    未经允许不得转载:171主机测评 » L2P: 学会提示持续学习(CVPR 2022)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址