ChatGPT背后的指令学习是什么?PSU最新首篇《指令学习》技术全面综述,详述指令学习关键问题
来源: 专知
任务语义可以用一组输入到输出的例子或一条文本指令来表示。传统的自然语言处理(NLP)机器学习方法主要依赖于大规模特定任务样本集的可用性。出现了两个问题: 首先,收集特定于任务的标记示例,不适用于任务可能太复杂或太昂贵而无法注释,或系统需要立即处理新任务的场景;其次,这对用户来说并不友好,因为最终用户可能更愿意在使用系统之前提供任务描述,而不是一组示例。因此,社区对NLP的一种新的监督寻求范式付出了越来越大的兴趣: 从任务指令中学习。尽管取得了令人印象深刻的进展,但社区仍面临一些共同的问题。本文试图从以下几个方面对当前的指令学习研究进行总结:(1)什么是任务指令,存在哪些指令类型?(ii)如何为指令建模?(iii)哪些因素影响和解释指令的执行?(四)指令中还存在哪些挑战?据我们所知,这是第一次对文本指令的全面调查。
下载地址:https://pan.baidu.com/s/14CajSkOyuH-AiXlfZoZb8Q?pwd=8e8m
1. 引言
人工智能的一个目标是建立一个可以普遍理解和解决新任务的系统。标记示例作为主流任务表示,不太可能大量可用,甚至不存在。那么,是否有其他任务表示可以有助于任务理解?任务指令为表达任务语义提供了另一个监督维度,指令往往包含比单个标记示例更抽象和全面的目标任务知识。如图1所示,通过任务指令的可用性,可以快速构建系统来处理新任务,特别是在特定于任务的注释稀缺的情况下。指令学习是受典型的人类对新任务的学习启发,例如,小孩可以通过从指令和几个例子中学习来很好地解决一个新的数学任务(Fennema et al., 1996;)。这种新的学习范式最近引起了机器学习和NLP社区的主要关注(Radford等人,2019;Efrat和Levy, 2020;Brown等人,2020年)。
当谈到任务指令时,我们大多数人首先会将这个概念与提示联系起来——使用一个简短的模板将新的输入重新格式化为语言建模问题,以便为启动PLM回复响应 (Liu et al., 2023)。尽管提示在文本分类、机器翻译等中普遍存在,但提示只是指令的一种特殊情况。本文对指令驱动的NLP研究进行了全面和更广泛的看法。具体来说,我们试图回答以下问题:
-
-
什么是任务指令,存在哪些指令类型?
-
给定任务指令,如何对其进行编码以帮助完成目标任务?
-
哪些因素(如模型大小、任务数量)影响指令驱动系统的性能,以及如何设计更好的指令?
-
指令学习能带来什么应用?
-
指令学习中存在哪些挑战,未来的方向是什么?
-
据我们所知,这是第一篇调研文本指令学习的论文。与一些现有的侧重于特定上下文指令的调研相比,例如提示(Liu等人,2023)、按输出输入的演示(Dong等人,2023)或推理(Huang和Chang, 2022;Qiao et al., 2022),我们提供了一个更广泛的视角,以有组织的方式连接该领域的不同研究。希望本文能呈现一个更好的指令学习故事,吸引更多同行来研究这个具有挑战性的人工智能问题。我们还发布了本次调研的相应阅读清单。
2. 基础知识
对于任务式学习,目标是通过遵循指令来驱动系统达到给定输入的输出。因此,一个数据集由三个元素组成:
Input (X): 实例的输入;它可以是一段文本(如情感分类)或一组文本(如文本蕴涵、问题回答等)。
Output (Y): 实例的输出;在分类问题中,它可以是一个或多个预定义标签;在文本生成任务中,它可以是任何开放形式的文本。
模板(T): 一种文本模板,试图单独表达任务的含义,或者充当X和y之间的桥梁。T可能还不是一种组件结构。
3. 什么是任务指令?
在之前的零样本和少样本NLP任务中已经使用了各种类型的文本指令,例如提示(Hendrycks等人,2021;Srivastava等人,2022;Bach等人,2022,除其他外),Amazon Mechanical Turk 指令(Mishra等人,2022b;王等,2022c;Yin等人,2022年),辅以演示的指令 (Khashabi等人,2020年;Ye等人,2021;Min等人,2022b,特别是)和思维链解释(Wei等人,2022b;Lampinen等人,2022;Li et al., 2022c,等。不同的指令最初是为不同的目标设计的(例如,Mturk指令最初是为人类标注者理解而创建的,提示是为了控制PLM)。在本节中,如图2所示,我们首先将这些指令总结为三个类别,它们执行T、X和ˆY的不同组合(面向蕴含、面向PLM和面向人),然后比较它们并提供指令的正式定义。
3.1 I=T^+Y:Entailment主导的指令
处理分类任务的一个传统方案是将目标标签转换为索引,并让模型决定输入属于哪个索引。这种范式侧重于对输入语义进行编码,同时丢失标签语义。为了让系统识别新标签而不依赖于大量标记的示例,Yin等人(2019)提出为每个标签建立一个假设——然后,推导标签的真值被转换为确定假设的真值。如表1所示,这种方法内置在指令(I)中,将模板(T)与标签Y相结合,以解释每个目标标签(Y)。由于这种范式自然地满足文本蕴含的格式(TE,其中任务输入和指令可以分别被视为前提和假设),这些类型的指令被称为"面向蕴含(Entailment)的指令"。
面向蕴含(entailment)的指令学习方法具有以下4个方面的优势:(i)保持了标签语义,使得输入编码和输出编码在建模输入输出关系时得到同等的重视;(ii)形成了一个统一的推理过程——文本蕴含——来处理各种NLP问题;(iii)它创造了利用现有TE数据集的间接监督的机会,以便预训练TE模型有望在不进行特定任务微调的情况下在这些目标任务上工作;(iv)将原始的闭集标签分类问题扩展为具有少量甚至零类属类样本的开放域开放形式标签识别问题。因此,它被广泛应用于各种少样本/零样本分类任务中,如分类主题(Yin等人,2019)、情感(Zhong等人,2021)、姿态(Xu等人,2022b)、实体类型(Li等人,2022a)和实体关系(Murty等人,2020;Xia等,2021;Sainz等人,2021,2022)。
3.2 I=T^+X:面向PLM的指令(如ˆ提示)
提示是面向PLM的指令的代表,它通常是一个简短的语句,前面加上任务输入(前缀提示),或者一个完形填空问题模板(完形填空提示)。它主要用于从预训练的语言模型(PLM)中查询中间响应(可以进一步转换为最终答案)。由于提示输入符合PLM的预训练目标(例如,完形风格的输入满足掩码语言建模目标(Kenton和Toutanova, 2019)),它有助于摆脱对传统监督微调的依赖,并大大减轻人工标注的成本。因此,快速学习在大量之前的少量/零样本NLP任务上取得了令人印象深刻的结果,例如问答(Radford等人,2019;Lin等人,2021)、机器翻译(Li等人,2022d)、情感分析(Wu和Shi, 2022)、文本蕴含(Schick和Schütze, 2021a,b)和命名实体识别(Cui等人,2021;王等,2022a)。
3.3 以人为本指示
以人为本的指令基本上是指在人类注释平台上用于众包的指令(例如Amazon MTurk指令)。与面向人的指令不同,面向人的指令通常是一些人可读的、描述性的、段落式的任务特定文本信息,由任务标题、类别、定义、要避免的事项等组成。因此,以人为本的指令更加友好,可以理想地应用于几乎任何复杂的NLP任务。
4 如何为指令建模?
在本节中,我们总结了几种最流行的指令学习建模策略。总体而言,本文介绍了四种不同的建模方案:对于早期的基于机器学习的系统,(i)基于语义解析器的策略是编码指令的常用方法;随着神经网络和预训练语言模型的出现,(ii)基于提示模板和(iii)基于前缀指令的指令学习模式成为两种备受青睐的范式;最近,(iv).基于超网络的方法也引起了更大的兴趣。
5 应用
5.1人机交互
文本指令可以自然地视为一种人机交互方式。之前的许多工作使用自然语言指令来"指导"计算机执行各种现实世界的任务。
对于非NLP(多模态)任务,大多数专注于基于环境的语言学习,即驱动智能体将自然语言指令与环境相关联,并做出相应的反应,例如从图像/视频中选择提到的对象(Matuszek等人,2012;Krishnamurthy和Kollar, 2013;Puig等人,2018),按照导航指示移动智能体(Tellex等人,2011;Kim和Mooney, 2012;陈,2012;Artzi和Zettlemoyer, 2013;Bisk et al., 2016),在地图上绘制相应的痕迹(Vogel和Jurafsky, 2010;Chen和Mooney, 2011),基于给定规则玩足球/纸牌游戏(Kuhlmann等人,2004;爱森斯坦等人,2009;Branavan等人,2011;Babe s-Vroman等人,2012;Goldwasser和Roth, 2014),生成实时体育广播(Chen和Mooney, 2008;Liang et al., 2009)、控制软件(Branavan et al., 2010)和查询外部数据库(Clarke et al., 2010)等。与此同时,指令也被广泛适用于帮助与系统沟通,以解决NLP任务,例如,遵循操作字符串的指令(Gaddy和Klein, 2019),根据给定的解释对电子邮件进行分类(Srivastava等人,2017,2018),以及文本到代码生成(Acquaviva等人,2021)。
近年来,越来越多的研究倾向于以迭代和模块化的方式设计人机通信过程。例如,Li et al.(2020)构建了一个系统来帮助用户处理日常任务(例如,点咖啡或请求Uber)。得益于用户友好的图界面,系统可以迭代地询问有关任务的问题,用户可以不断改进他们的指令,以避免不明确的描述或模糊的概念。类似地,Dwivedi-Yu等人(2022)提出了一个基准来迭代地指导PLM改进文本,其中每次迭代只使用具有精确目的的一小段指令(例如,“简化文本”或“使文本中性”)。此外,Chakrabarty等人(2022)构建了一个协作写诗系统,用户可以最初提供一个模棱两可的指令(例如,“写一首关于蛋糕的诗”),然后通过观察模型的中间输出,用更多的细节逐步完善指令(例如,“包含单词-‘巧克力’”)。同时,Mishra和Nouri(2022)提出了一个传记生成系统,该系统逐步从用户那里收集必要的个人信息(通过在对话场景中提出问题来引导用户),并最终生成一个段落式的传记。针对非专家用户难以一次性编写完整的指令的问题,在基于指令的人工智能系统设计中采用迭代式、模块化的设计范式,可以引导用户逐步丰富任务指令,从而有效地缓解用户的思维需求,使系统更加面向用户。鉴于其实用价值,本文强调了这一分支工作的重要性。
5.2 数据和特征增强
任务指令被认为是一种间接的监督资源,其中有时包含一些肤浅且武断的规则。这些规则也被称为标记函数,可以直接应用于注释(例如,句子“a very fair price”是情感积极的,因为“单词‘price’之前直接有‘fair’”)。因此,现有的一些工作还将指令作为远程监督来执行数据或特征增强(Srivastava等人,2018;Hancock等人,2018;Ye等人,2020)。例如,Srivastava等人(2017)使用语义解析器将自然语言解释转换为逻辑形式,并将它们应用于数据集中的所有实例以生成额外的二进制特征。而Wang et al.(2020)利用标签解释自动标注原始语料库,并在产生的噪声数据上训练分类器。除了直接的扩充外,Su等人(2022)进一步使用任务指令来丰富模型表示,并实现了较强的跨任务泛化。具体来说,他们在具有对比学习的不同指令数据集上训练了一个嵌入模型(单个编码器),然后使用该模型为下游未见过的任务生成基于指令的特定任务表示。
5.3 通用语言模型
根据通用人工智能(Artificial General Intelligence, AGI)的定义,“通用模型”通常是一个能够胜任不同任务并在多变环境中可扩展的系统,这将远远超出其创造者最初的预期(Wang and Goertzel, 2007;Goertzel写到,2014)。虽然特定于NLP领域,但通用语言模型应该是一个优秀的多任务助手,能够以完全零样本/少样本的方式熟练处理各种现实世界的NLP任务和不同的语言(Arivazhagan等人,2019;Pratap等人,2020;Wei等,2022a)。由于许多现有工作证明了在跨任务泛化中使用指令的惊人能力(Wei等人,2022a;Sanh等人,2022;Mishra等人,2022b;王等,2022c;Chung等人,2022,除其他外),该指令很可能成为实现这一最终目标的突破。
值得注意的是,最近指令的两个显著应用,即InstructGPT (Ouyang et al., 2022)和ChatGPT,也表明在构建通用语言模型方面迈出了一大步。然而,与其他主要采用指令学习的工作不同,ChatGPT还采用了一些其他组件,如人工反馈的强化学习(RLHF) 14。虽然“哪个组件对ChatGPT的出色结果贡献更大”的答案仍然是模糊的,需要进一步调研,但我们介绍了一些最近的工作,以强调指令学习的关键作用。例如,Chung等人(2022)进行了广泛的实验来评估人类对PaLM的偏好对齐(Chowdhery等人,2022)。他们发现,即使没有任何人类反馈,指令微调也显著降低了PaLM开放式世代的毒性,比如性别和职业偏见。此外,其他一些工作也单独采用创造性指导而不是人工反馈,并取得了显著的跨任务结果(Bai等人,2022;Honovich等人,2022a;王志强等,2022b)。尽管ChatGPT仍然存在许多不令人满意的方面,距离通用语言模型还很远(Qin等人,2023;郭等,2023;Koco 'n等人,2023;Wang et al., 2023),我们希望AGI的目标可以通过采用和发展更强大的技术来继续推动,包括指令学习。
相关文章:

ChatGPT背后的指令学习是什么?PSU最新首篇《指令学习》技术全面综述,详述指令学习关键问题
来源: 专知 任务语义可以用一组输入到输出的例子或一条文本指令来表示。传统的自然语言处理(NLP)机器学习方法主要依赖于大规模特定任务样本集的可用性。出现了两个问题: 首先,收集特定于任务的标记示例,不适用于任务可能太复杂或太昂贵而无法注释&#…...

【Python】《我的世界》简简单单就可以完成?OMG~(附教学)
文章目录前言一、准备二、运行及操作三.代码解读与自定义总结前言 《我的世界 Minecraft》大家应该都听说过,但你有没有想过自己写一个这样的游戏呢?太难、太复杂了?也许吧,但是不试一试你怎么知道能不能成呢? 国外有…...

【SpringSecurity】认证授权框架——SpringSecurity使用方法
【SpringSecurity】认证授权框架——SpringSecurity使用方法 文章目录【SpringSecurity】认证授权框架——SpringSecurity使用方法1. 概述2. 准备工作2.1 引依赖2.2 测试3. 认证3.1 认证流程3.2 登录校验问题3.3 实现3.3.1 实现UserDetailsService接口3.3.2 密码存储和校验3.3.…...

java的Lambda表达式与方法引用详解
1. 定义 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 使用 Lambda 表达式可以使代码变的更加简洁紧凑。 1.1 通用定义 lambda 表达…...

JUnit5用户手册~并行执行
两种运行模式 SAME_THREAD:默认的,测试方法在同一个线程CONCURRENT:并行执行,除非有资源锁junit-platform.properties配置参数配置所有测试方法都并行 junit.jupiter.execution.parallel.enabled true junit.jupiter.execution.…...

【从零开始学习 UVM】3.3、UVM TestBench架构 —— UVM Environment [uvm_env]
文章目录 什么是UVM Environment?为什么验证组件不应该直接放置在test class中?创建UVM环境的步骤UVM环境示例Examples环境重用示例什么是UVM Environment? 一个UVM环境包含多个可重用的验证组件,并根据应用程序要求定义它们的默认配置。例如,一个UVM环境可能有多个agent…...

Vue的简单介绍
一、简介 Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,…...

我给Chat GPT写了个记忆系统
ChatGPT-LifeTime OpenAI 的模型有一个固定的 Token 限制,例如 GPT-3 的 Davinci 模型最多可以处理2049 个 Token,大约 1500 个英文单词。最新 Turbo 模型大约是 4,096 个 Token,大约是 3000 个英文单词,也就是意味着Chat GPT它会…...

哈希表题目:砖墙
文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题:砖墙 出处:554. 砖墙 难度 5 级 题目描述 要求 你的面前有一堵矩形的、由 n\texttt{n}n 行砖块组成的砖墙。这些砖块高度相同(…...

【程序环境详解】
每个源程序(.c文件)都需要经过编译链接形成 .exe的可执行文件。 在ANSI C的任何一种实现中,存在两个不同的环境 第一种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第二种是执行环境,它用于实际执行代码…...

栈(Stack)
目录 1.1 概念 1.2 栈的使用 1.3 栈的模拟实现 1.4 栈的应用场景 1. 改变元素的序列 2. 将递归转化为循环 1.1 概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为…...

【计算机网络】2、网络编程模型理论
文章目录一、网络基本概念1.1 网段1.2 子网掩码 netmask1.3 子网 subnet1.4 网络地址 network1.5 实战 192.168.0.1/27 的含义二、socket2.1 sockaddr 格式2.1.1 IPv4 sockaddr 格式2.1.2 IPv6 sockaddr 格式2.1.3 本地 sockaddr 格式2.2 http 与 websocket三、TCP 编程3.1 ser…...

jmeter接口测试及详细步骤以及项目实战教程
如果看完这篇文章还是不太明白的话,可以看看下面这个视频 2023年B站最新Jmeter接口测试实战教程,精通接口自动化测试只需要这一套视频_哔哩哔哩_bilibili2023年B站最新Jmeter接口测试实战教程,精通接口自动化测试只需要这一套视频共计16条视…...

抖音进攻,B站退守
“爱优腾芒”等长视频平台的崛起,在一定层面上丰富了人们的日常生活,而抖音、快手等短视频平台的出现,则在很大程度上改变了用户观看视频的方式。只不过,近几年,随着流量增长逐渐遭遇瓶颈,各视频平台便纷纷…...

2022国赛E题完整成品文章数据代码模型--小批量物料的生产安排
基于LSTM循环神经网络的小批量物料生产安排分析 摘要 某电子产品制造企业面临以下问题:在多品种小批量的物料生产中,事先无法知道物料的 实际需求量。企业希望运用数学方法,分析已有的历史数据,建立数学模型,帮助企业…...

学生党,快来 Azure 一起学习 OpenAI (一):注册 Azure 和申请 OpenAI
大家好我是微软学生大使 Jambo , 在刚结束的微软学生开发者峰会 2023中我们了解到微软为学生提供了 Azure for Student 大礼包,通过 Azure for Student 除了学习和部署云原生的应用外,还可以申请使用 Microsoft OpenAI Service 。在这个 AIGC 火热的年代…...

深入理解【正则化的L1-lasso回归和L2-岭回归】以及相关代码复现
正则化--L1-lasso回归和L2-岭回归1- 过拟合 欠拟合 模型选择2- 正则L1与L23- L2正则代码复现3-1 底层逻辑实现3-2 简洁实现1- 过拟合 欠拟合 模型选择 1-1 欠拟合: 在训练集和测试集上都不能很好的拟合数据【模型过于简单】 原因: 学习到的数据特征过少 …...

入侵检测——如何实现反弹shell检测?
反弹shell的本质:就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。 反弹shell的结…...

Python常用语句学习
人生苦短,我用Python。 ——吉多范罗苏姆 文章目录前言一、判断语句(一)if语句1. 作用2. 构成3. 语法4. 样例5.说明(二)if嵌套二、循环语句(一)while循环1. 作用2. 语法3. 样例4. 说明ÿ…...

测试3年还不如应届生,领导一句点醒:“公司不是只雇你来点点点的”
你的身边,是否有这样的景象? A:写了几年代码,写不下去了,听说测试很好上手,先来做几年测试 。 B:小文员一枚,想入行 IT,听说测试入门简单,请问怎么入行 。 …...

华为网络设备之路由策略,前缀列表(使用,规则)
华为网络之路由策略 前言:在企业网络的设备通信中,常面临一些非法流量访问的安全性及流量路径不优等问题,故为保证数据访问的安全性、提高链路带宽利用率,就需要对网络中的流量行为进行控制,如控制网络流量可达性、调…...

白噪音简介与实现
一、简介: 白噪音(White Noise)是一种具有平均功率频谱密度的噪音信号,其功率在所有频率上均匀分布。白噪音是一种随机信号,其包含所有频率成分的等幅随机振荡。因此,白噪音看起来像是一种随机的“嘈杂声”…...

Springboot结合线程池的使用
1.使用配置文件配置线程的参数 配置文件 thread-pool:core-size: 100max-size: 100keep-alive-seconds: 60queue-capacity: 1配置类 Component ConfigurationProperties("thread-pool") Data public class ThreadPoolConfig {private int coreSize;private int ma…...

AOP工作流程
AOP工作流程3,AOP工作流程3.1 AOP工作流程流程1:Spring容器启动流程2:读取所有切面配置中的切入点流程3:初始化bean流程4:获取bean执行方法验证容器中是否为代理对象验证思路步骤1:修改App类,获取类的类型步骤2:修改MyAdvice类,不增强步骤3:运行程序步骤…...

Modbus相关知识点及问题总结
本人水平有限,写得不对的地方望指正 困惑:线圈状态的值是否是存储在线圈寄存器里面?是否有线圈寄存器的说法?网上有说法说是寄存器占两个字节,但线圈的最少操作单位是位。类似于继电器的通断状态,直接根据电…...

【MySQL】函数
文章目录1. DQL执行顺序2. 函数2.1 字符串函数2.2 数值函数2.3 日期函数2.4 流程函数2.5 窗口函数2.5.1 介绍2.5.2 聚合窗口函数2.5.3 排名窗口函数2.5.4 取值窗口函数1. DQL执行顺序 2. 函数 2.1 字符串函数 函数功能concat(s1,s2,…sn)字符串拼接,将s1,s2…sn拼…...

MySQL高级
一、基础环境搭建 环境准备:CentOS7.6(系统内核要求是3.10以上的)、FinalShell 1. 安装Docker 帮助文档 : https://docs.docker.com/ 1、查看系统内核(系统内核要求是3.10以上的) uname -r2、如果之前安装过旧版本的D…...

带你弄明白c++的4种类型转换
目录 C语言中的类型转换 C强制类型转换 static_cast reinterpret_cast const_cast dynamic_cast RTTI 常见面试题 这篇博客主要是帮助大家了解和学会使用C中规定的四种类型转换。首先我们先回顾一下C语言中的类型转换。 C语言中的类型转换 在C语言中,如果赋…...

8个明显可以提升数据处理效率的 Python 神库
在进行数据科学时,可能会浪费大量时间编码并等待计算机运行某些东西。所以我选择了一些 Python 库,可以帮助你节省宝贵的时间 文章目录1、Optuna技术提升2、ITMO\_FS3、Shap-hypetune4、PyCaret5、floWeaver6、Gradio7、Terality8、Torch-Handle1、Optun…...

互联网公司吐槽养不起程序员,IT岗位的工资真是虚高有泡沫了?
说实话,看到这个话题的时候又被震惊到。 因为相比以往,程序员工资近年来已经够被压缩的了好嘛? 那些鼓吹泡沫论的,真就“何不食肉糜”了~~~ 而且这种逻辑就很奇怪, 程序员的薪资难道不是由行业水平决定么ÿ…...