Learning to Prompt for Continual Learning

Abstract

持续学习背后的主流范式是使模型参数适应非平稳数据分布,其中灾难性遗忘是核心挑战。典型方法依赖于排练缓冲区或测试时已知的任务标识来检索已学知识并解决遗忘问题,而这项工作提出了一种持续学习的新范式,旨在训练一个更简洁的记忆系统,且在测试时无需访问任务标识。我们的方法学习动态提示(L2P)预训练模型,以便在不同任务转换下顺序学习任务。在我们提出的框架中,提示是可学习的小参数,保存在记忆空间中。目标是优化提示以指导模型预测,并在保持模型可塑性的同时,显式管理任务不变和特定于任务的知识。我们在流行的图像分类基准测试下,针对不同具有挑战性的持续学习设置进行了全面实验,L2P始终优于先前的最先进方法。令人惊讶的是,即使没有排练缓冲区,L2P也能取得与基于排练的方法相媲美的结果,并且可直接应用于具有挑战性的任务无关持续学习。

Introduction

与在独立同分布(i.i.d.)数据上进行训练的普通监督学习不同,持续学习旨在解决在非平稳数据分布上训练单个模型的问题,其中不同的分类任务是按顺序呈现的。然而,由于该模型在学习周期的单个阶段中仅能访问当前数据,它易于对当前可用数据过拟合,并且由于灾难性遗忘,在先前数据上会出现性能下降的情况。

先前工作的局限性在持续学习中提出了关键问题[13, 16]:(1) 情景记忆的形式能否超越对过往数据的缓冲,发展为更智能、简洁的情景记忆系统?(2) 如何在不知道任意样本的任务身份的情况下,自动为其选择相关的知识组件?
为了回答第一个问题,我们从基于提示的学习(提示法)[29] 的最新进展中汲取灵感,这是自然语言处理(NLP)领域的一种新的迁移学习技术。提示法通过包含额外特定任务信息的模板化或可学习的提示词来设计模型文本输入,以便预训练语言模型能够处理参数化输入,从而执行特定于提示的预测 [25, 27, 53]。直观地说,基于提示的学习将下游任务的学习从直接调整模型权重重新规划为设计提示,这些提示 “指导” 模型有条件地执行任务。提示编码了特定任务的知识,并且比普通的微调更能有效地利用预训练的冻结模型。因此,在持续学习的背景下,利用提示来学习知识,并进一步存储所学知识是很有前景的。
然而,目前尚不清楚如何直接应用提示来解决持续学习中上述的第二个问题。一方面,如果我们按顺序针对不同任务训练不同的提示,那么在测试时,仍需要知道任务标识,以便使用合适的特定任务提示进行预测。另一方面,作为一种迁移学习技术,提示的目标是让冻结的预训练模型在下游任务上各自表现良好,而不是按顺序表现良好。因此,如果我们改为对所有任务使用单一共享提示,灾难性遗忘的问题可能仍然存在。
为此,我们提出了一种新的持续学习方法,称为持续学习的提示学习(L2P),它与流行的基于排练的方法相互独立,并且适用于不知道任务身份或边界的实际持续学习场景。图1对我们的方法与典型的持续学习方法进行了对比概述。L2P利用预训练模型的代表性特征;然而,在持续学习过程中,L2P并不对参数进行微调,而是保持预训练模型不变,转而学习一组提示,这些提示可以动态指导模型解决相应的任务。具体来说,提示信息以键值对的形式组织在一个名为提示池的共享内存空间中,并且我们设计了一种查询机制,以便根据实例级输入特征动态查找与任务相关的提示信息子集。提示池与监督损失联合优化,确保共享提示对用于知识迁移的共享知识进行编码,而非共享提示对有助于维持模型可塑性的特定任务知识进行编码。我们的设计明确地将共享知识和特定任务知识解耦,从而在很大程度上减少了优化过程中特定任务知识之间的干扰,实现了最小化的灾难性遗忘,且无需使用重放缓冲区。实例级查询机制消除了了解任务身份或边界的必要性,使最具挑战性但研究不足的任务无关持续学习成为可能。然后,将选定的提示添加到输入嵌入之前(图2),这会隐式地将与任务相关的指令添加到预训练模型中,以便模型回忆起最相关的特征来执行相应的任务。

Learning to Prompt

From prompt to prompt pool

引入提示池有三个动机。首先,测试时的任务身份是未知的,因此训练与任务无关的提示是不可行的。其次,即使与任务无关的提示在测试时可以得知,它也会阻碍相似任务之间可能的知识共享。第三,虽然为所有任务学习单一共享提示的简单方法能够实现知识共享,但它仍然会导致严重的遗忘问题。理想情况下,人们希望学习一种模型,该模型能够在任务相似时共享知识,而在其他情况下保持知识的独立性。因此,我们建议使用提示池来存储编码后的知识,这些知识可以灵活地组合起来作为模型的输入。
提示池被定位为
P = P 1 , P 2 , P 3 . . . , P M , P = {P_1,P_2,P_3...,P_M} , P=P1,P2,P3...,PM,
其中, P j ∈ R L p × D P_j \in R^{L_p \times D} PjRLp×D是单个prompt,Lp为token长度,embedding size D与x相同。
我们分别令 x x x x e = f e ( x ) x_e = f_e(x) xe=fe(x)为输入和对应的embedding feature。请注意,我们在符号表示中省略了(x)的任务索引(t),因为我们的方法对于与任务无关的设置具有足够的通用性。

x p = [ P s 1 ; . . . . ; P s N ; x e ] , 1 < = N < = M x_p = [P_{s1};....;P_{sN};x_e], 1<=N<=M xp=[Ps1;....;PsN;xe],1<=N<=M
其中;表示沿标记长度维度的连接。提示可以自由组合,因此它们可以联合编码知识(例如视觉特征或任务信息),以供模型处理。我们希望通过实例级别的提示组合来实现更细粒度的知识共享方案:相似的输入倾向于共享更多的通用
在这里插入图片描述

Instance-wise prompt query

我们设计了一种基于键值对的查询策略,以便为不同的输入动态选择合适的提示。这种查询机制与其他领域的方法有一些共同的设计原则,例如可微神经计算机[14]和矢量量化变分自编码器(VQ-VAE)[41],它们具有外部存储器,用于出于不同目的进行维护和使用。
我们将每个提示与一个可学习的键相关联,把提示作为值:
在这里插入图片描述
we denote the set of all keys by K = { k i } i = 1 M \mathbf{K} = \left\{ \mathbf{k}_i \right\}_{i=1}^{M} K={ki}i=1M
理想情况下,我们希望让输入实例本身通过查询-键匹配来决定选择哪些提示。为此,我们引入查询函数q
将输入x编码到和key相同的维度。 此外,q 对于不同任务应该是一个确定性函数,并且没有可学习参数。我们直接将整个预训练模型作为一个固定的特征提取器,以获取查询特征:q(x) = f(x)0,:.
Denote γ : R D k × R D k → R \gamma:R^{D_k} \times R^{D_k} \rightarrow R γ:RDk×RDkR作为一个对查询与提示键之间的匹配进行评分的函数。(我们发现余弦距离效果很好)。给定输入x,我们使用q(x)通过简单地求解目标来查找前N个键:
在这里插入图片描述
其中Kx代表从K中为专门为x选择的前N个key的子集。请注意,这种键值策略的设计将查询机制学习和提示学习过程解耦,实验表明这一点至关重要。此外,对提示的查询是以实例方式进行的,这使得整个框架与任务无关,也就是说,该方法在训练期间无需明确的任务边界,在测试时也无需任务标识即可运行。

可选择地使提示选择多样化。
虽然我们的方法不需要任务边界信息,但在现实场景和实验数据集中,任务转换通常是离散的,因此在训练时任务边界是已知的。我们发现,在我们的框架中加入这样一个先验知识,可以帮助模型学习到更好的特定任务提示,特别是当任务具有高度多样性时。为此,我们提出了一种简单的扩展方法,以添加任务边界先验,这对于L2P而言是可选的。
在任务t的训练过程中,我们维护一个提示频率表Ht = [h1, h2, ··· , hM],其中每个条目表示在任务t - 1之前提示Pi被选中的归一化频率。
为鼓励查询机制选择多样化的提示,我们修改了公式3为
在这里插入图片描述
h s i h_{si} hsi对频繁使用的提示进行惩罚,避免其被选中,以鼓励多样化选择。公式4只在训练中适用,在测试时间,公式3被使用。

Optimization objective for L2P

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/89008.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读笔记】知网SCI——基于主成分分析的空间外差干涉数据校正研究

论文词条选择 —— 知网 【SCI】【数据分析】 题目&#xff1a;基于主成分分析的空间外差干涉数据校正研究 原文摘要&#xff1a; 空间外差光谱技术(SHS)是一种新型的高光谱遥感探测技术&#xff0c;被广泛应用于大气观测、天文遥感、物质识别等领域。通过空间外差光谱仪获取…

如何用VS Code、Sublime Text开发51单片机

文章目录 一、前置工作二、VS Code2.1 Code Runner配置2.2 编译快捷键 三、Sublime Text3.1 Build System创建3.2 编译快捷键 四、使用STC-ISP下载代码到单片机 使用VS Code开发51单片机的好处自不必多说&#xff0c;直接进入正题。本博客的目标是让你能够使用VS Code或者Subli…

信息抽取数据集全景分析:分类体系、技术演进与挑战_DEEPSEEK

信息抽取数据集全景分析&#xff1a;分类体系、技术演进与挑战 摘要 信息抽取&#xff08;IE&#xff09;作为自然语言处理的核心任务&#xff0c;是构建知识图谱、支持智能问答等应用的基础。近年来&#xff0c;随着深度学习技术的发展和大规模预训练模型的兴起&#xff0c;…

利用 Python 脚本批量查找并删除指定 IP 的 AWS Lightsail 实例

在 AWS Lightsail 管理中&#xff0c;随着实例数量的增多&#xff0c;我们常常会遇到这样一个问题&#xff1a; “我知道某个公网 IP 地址&#xff0c;但不知道它关联的是哪台实例。” 或者&#xff1a; “我有一批老旧的实例只知道 IP&#xff0c;需要一键定位并选择删除。…

CompletableFuture 深度解析

本文将探讨 Java 8 引入的 CompletableFuture&#xff0c;一个在异步编程中实现非阻塞、可组合操作的强大工具。我们将从 CompletableFuture 的基本概念、与传统 Future 的区别、核心 API 用法&#xff0c;到复杂的链式调用、组合操作以及异常处理进行全面解析&#xff0c;并通…

给自己网站增加一个免费的AI助手,纯HTML

助手效果图 看完这篇文章&#xff0c;你将免费拥有你自己的Ai助手&#xff0c;全程干货&#xff0c;先到先得 获取免费的AI大模型接口 访问这个地址 生成key https://openrouter.ai/mistralai/mistral-small-3.2-24b-instruct:free/api 或者调用其他的免费大模型&#xff0c;这…

ASProxy64.dll导致jetbrains家的IDE都无法打开。

在Windows11中,无法打开jetbrains的IDE的软件,经过排查,发现与ASProxy64.dll有关。 E:\idea\IntelliJ IDEA 2024.1.7\bin>idea.bat CompileCommand: exclude com/intellij/openapi/vfs/impl/FilePartNodeRoot.trieDescend bool exclude = true # # A fatal error has bee…

springboot+Vue逍遥大药房管理系统

概述 基于springbootVue开发的逍遥大药房管理系统。该系统功能完善&#xff0c;既包含强大的后台管理模块&#xff0c;又具备用户友好的前台展示界面。 主要内容 一、后台管理系统功能 ​​核心管理模块​​&#xff1a; 用户管理&#xff1a;管理员与普通用户权限分级药品分…

探索阿里云智能媒体管理IMM:解锁媒体处理新境界

一、引言&#xff1a;开启智能媒体管理新时代 在数字化浪潮的席卷下&#xff0c;媒体行业正经历着前所未有的变革。从传统媒体到新媒体的转型&#xff0c;从内容生产到传播分发&#xff0c;每一个环节都在寻求更高效、更智能的解决方案。而云计算&#xff0c;作为推动这一变革…

[附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的新生报道管理系统,推荐!

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了新生报道管理系统的开发全过程。通过分析高校新生入学报到信息管理的不足&#xff0c;创建了一个计算机管理高校新生入学报到信息的方案。文章介绍了新生报道管…

给定一个整型矩阵map,求最大的矩形区域为1的数量

题目: 给定一个整型矩阵map,其中的值只有0和1两种,求其中全是1的 所有矩形区域中,最大的矩形区域为1的数量。 例如: 1 1 1 0 其中,最大的矩形区域有3个1,所以返回3。 再如: 1 0 1 1 1 1 1 1 1 1 1 0 其中,最大的矩形区域有6个1,所以返回6。 解题思…

第8章-财务数据

get_fund # 查看股票代码000001.XSHE在2022年9月1日的总市值 q query( valuation ).filter( valuation.code 000001.XSHE ) df get_fundamentals(q, 2022-09-01) print(df[market_cap][0]) # 获取第一行的market_cap值 这段代码看起来是用于查询股票在特定日期的总…

SQL关键字三分钟入门:ROW_NUMBER() —— 窗口函数为每一行编号

在进行数据分析时&#xff0c;我们常常需要为查询结果集中的每条记录生成一个唯一的序号或行号。例如&#xff1a; 为每位员工按照入职时间排序并编号&#xff1b;按照订单金额对订单进行排序&#xff0c;并给每个订单分配一个顺序编号&#xff1b;在分组数据内为每条记录编号…

微信小程序如何实现通过邮箱验证修改密码功能

基于腾讯云开发&#xff08;Tencent Cloud Base&#xff09;实现小程序邮箱验证找回密码功能的完整逻辑说明及关键代码实现。结合安全性和开发效率&#xff0c;方案采用 ​​云函数 小程序前端​​ 的架构&#xff0c;使用 ​​Nodemailer​​ 发送邮件。Nodemailer 是一个专为…

C# VB.NET中Tuple轻量级数据结构和固定长度数组

C# VB.NET取字符串中全角字符数量和半角字符数量-CSDN博客 https://blog.csdn.net/xiaoyao961/article/details/148871910 在VB.NET中&#xff0c;使用Tuple和固定长度数组在性能上有细微差异&#xff0c;以下是详细分析&#xff1a; 性能对比测试 通过测试 100 万次调用&am…

建筑物年代预测与空间异质性分析解决方案

建筑物年代预测与空间异质性分析解决方案 1. 问题分析与创新点设计 核心任务:预测建筑物建造年代,并分析空间异质性对预测的影响 创新点设计: 空间权重矩阵集成:构建空间邻接矩阵量化地理邻近效应多尺度特征提取:融合建筑物微观特征与街区宏观特征异质性分区建模:基于…

FOUPK3system5XOS

Foupk3systemX5OS系统19.60内测版&#xff08;X9&#xff09;2023年4月16日正式发布 1.0Foupk3systemX5OS系统19.60&#xff08;X9&#xff09;2024年10月6日发布 Foupk3systemX5OS系统19.60增强版&#xff08;X9X5&#xff09;2024年10月6日发布Foupk3systemX5OS系统19.60正…

随机生成的乱码域名”常由**域名生成算法(DGA)** 产生

“随机生成的乱码域名”常由**域名生成算法&#xff08;DGA&#xff09;** 产生&#xff0c;是网络攻击&#xff08;尤其是僵尸网络、恶意软件控制场景 &#xff09;中躲避检测的手段&#xff0c;以下是关键解析&#xff1a; ### 一、本质与产生逻辑 乱码域名是攻击者利用 **DG…

Solidity学习 - 继承

文章目录 前言继承的基本概念继承的基本用法单继承实现函数重写&#xff08;overriding&#xff09; 构造函数的继承处理多重继承抽象合约 前言 继承是面向对象编程中的核心概念之一&#xff0c;Solidity作为一种面向对象的智能合约语言&#xff0c;同样支持继承机制。通过继承…

依赖注入(Dependency Injection, DI)的核心概念和解决的核心问题

核心概念&#xff1a; 依赖注入是一种设计模式&#xff0c;也是实现控制反转&#xff08;Inversion of Control, IoC&#xff09; 原则的一种具体技术。其核心思想是&#xff1a; 解耦&#xff1a; 将一个类&#xff08;客户端&#xff09;所依赖的其他类或服务&#xff08;依…