Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

机器之心编辑部报道

Fine-tune之后的NLP新范式:Prompt越来越火,CMU华人博士后出了篇综述文章

CMU 博士后研究员刘鹏飞:近代自然语言处理技术发展的第四范式可能是预训练语言模型加持下的 Prompt Learning。

近几年,NLP 技术发展迅猛,特别是 BERT 的出现,开启了 NLP 领域新一轮的发展。

从 BERT 开始,对预训练模型进行 finetune 已经成为了整个领域的常规范式。

但是从 GPT-3 开始,一种新的范式开始引起大家的关注并越来越流行:prompting。

近段时间以来,我们可以看到大量有关 prompting 的论文出现。从清华大学开源的论文列表 thunlp / PromptPapers 中,我们可以看到大量的相关研究。

项目地址:https://github.com/thunlp/PromptPapers

作为一个值得关注、学习的新方向,近日来自 CMU 的博士生刘鹏飞新推出的一篇相关综述论文作为学习资源备受推崇。

清华大学刘知远老师微博推荐

在这篇文章中,机器之心也把该论文推荐给大家。

论文地址:https://arxiv.org/pdf/2107.13586.pdf

背景介绍

监督学习,即仅在目标任务的输入输出样本数据集上训练特定任务模型,长期以来在许多机器学习任务中发挥着核心作用,同样的,全监督学习在 NLP 领域也非常重要。但是全监督的数据集对于学习高质量的模型来说是不充足的,早期的 NLP 模型严重依赖特征工程。随着用于 NLP 任务的神经网络出现,使得特征学习与模型训练相结合,研究者将研究重点转向了架构工程,即通过设计一个网络架构能够学习数据特征。

NLP 中的四种范式。

然而,从 2017-2019 年开始,NLP 模型发生了翻天覆地的变化,这种全监督范式发挥的作用越来越小。具体而言,研究重点开始转向预训练、微调范式。在这一范式下,一个具有固定架构的模型通过预训练作为语言模型(LM),用来预测观测到的文本数据的概率。由于训练 LM 所需的原始文本数据需要足够丰富,因此,这些 LM 都是在比较大的数据集上训练完成。之后,通过引入额外的参数,并使用特定任务的目标函数对模型进行微调,将预训练 LM 适应于不同的下游任务。在这种范式下,研究重点转向了目标工程,设计在预训练和微调阶段使用的训练目标(损失函数)。

当前我们正处于第二次巨变中,「预训练、微调」过程被称为「预训练、prompt 和预测」的过程所取代。在这种范式中,不是通过目标工程使预训练的语言模型(LM)适应下游任务,而是重新形式化(Reformulate)下游任务,使其看起来更像是在文本 prompt 的帮助下在原始 LM 训练期间解决的任务。通过这种方式,选择适当的 prompt,该方法可以操纵模型的行为,以便预训练的 LM 本身可以用于预测所需的输出,有时甚至无需任何额外的特定任务训练。这种方法的优点是给定一组合适的 prompt,以完全无监督的方式训练的单个 LM 就能够用于解决大量任务。然而该方法也存在一个问题——这种方法引入了 prompt 挖掘工程的必要性,即需要找出最合适的 prompt 来让 LM 解决面临的任务。

该综述研究试图通过提供 prompting 方法的概述和形式化定义,以及使用这些 prompt 的预训练语言模型的概述,来梳理这一迅速发展领域的当前知识状态。然后该论文对 prompt 方法进行了深入的讨论,包括 prompt 工程、answer 工程等基础和多 prompt 学习方法、prompt 相关的训练方法等更高级的概念。

然后,该研究列出了已有的基于 prompt 学习方法的多种应用,并探讨了不同应用场景中如何选择合适的训练方法。最后,该研究尝试在研究生态系统中定位 prompt 方法的当前状态,并与其他研究领域建立联系。此外,该研究提出一些可能适合进一步研究的挑战性问题,并针对当前研究趋势进行了分析。

prompting 的正确描述

在传统的用于 NLP 任务的监督学习系统中,输入 x 通常是文本数据,并基于模型 P(y|x; θ) 预测输出 y。但是,监督学习面临的一个主要问题是,即为了训练模型 P(y|x; θ),必须要有用于训练任务的监督数据,但找到这种适用数据是比较困难的。

在 NLP 中,基于 Prompt 的学习方法试图通过学习 LM 来规避这一问题,该 LM 对文本 x 本身的概率 P(x; θ) 进行建模并使用该概率来预测 y,从而减少或消除了训练模型对大型监督数据集的需求。

本节中研究者对最基本的 Prompt 形式进行了数学描述,其中包含许多有关 Prompt 的工作,并且可以扩展到其他内容。具体来说,基础 Prompt 分三步预测得分最高的 ^y,即 prompt 添加、answer 搜索和 answer 映射

下表 2 为 prompting 方法的术语和符号。

下表 3 为不同任务的输入、模板和 answer 示例:

Prompting 的一些设计考虑

现在有了 Prompting 的基本数学公式,下面详细阐述了关于 Prompting 设计考虑:
  • 预训练模型选择:有许多预训练 LM 可以用来计算 P(x; θ)。在第 3 章中,研究者对预训练 LM 进行了初步的介绍;

  • Prompt 工程:如果 prompt 指定了任务,那么选择正确的 prompt 不仅对准确率影响很大,而且对模型首先执行的任务也有很大影响。在第 4 章中,研究者讨论了应该选择哪个 prompt 作为 f_prompt(x) 方法;

  • Answer 工程:根据任务的不同,会有不同的方式设计 Z (Answer),可能会和映射函数一起使用。在第 5 章中,详细介绍了不同的设计方式;

  • 扩展范式:如上所述, 上面的公式仅仅代表了各种底层框架中最简单的一种,这些框架已经被提议用于执行各种 prompting。在 第 6 章中,研究者讨论了扩展这种基本范式以进一步提高结果或适用性的方法;

  • 基于 Prompt 的训练策略:在第 7 章中,研究者总结了不同的训练策略并详细说明它们的相对优势。

下图 1 为本文结构概览:

Prompt 工程

Prompt 工程是创建 prompting 函数 f_prompt(x) 的过程,该函数可在下游任务上获得最有效的性能。在此前的许多工作中,这涉及到 prompt 模板工程,其中人类工程师或算法需要为模型预期执行的每个任务搜索最佳模板。如图 1 的「Prompt Engineering」部分所示,首先要考虑 prompt 的形式,然后决定是采用手动还是自动的方式来创建所需形式的 prompt,具体如下:

Prompt 的形式

Prompt 主要有两种主要类型:填充文本字符串空白的完形填空(Cloze)prompt,和用于延续字符串前缀的前缀 (Prefix) prompt。

选择哪一个取决于任务和用于解决任务的模型。一般来说,对于有关生成的任务或使用标准自回归 LM 解决的任务,前缀 prompt 往往更有帮助,因为它们与模型从左到右的性质刚好吻合。对于使用掩码 (Mask) LM 解决的任务(比如,BERT),完形填空 prompt 则非常合适,因为它们与预训练任务的形式非常匹配。全文本重建模型则可以与完形填空 prompt 或前缀 prompt 一起使用。最后,对于一些涉及多个输入的任务,例如文本对分类,prompt 模板必须包含至少两个输入的空间。

手工模板工程

创建 prompt 最自然的方式也许是基于手工创建比较直观的模板。例如, LAMA 数据集提供了手工创建的完形填空模板来探索 LM 中的知识。Brown 等在 2020 年创建了手工制作的前缀 prompt 来处理各种各样的任务,包括问答、翻译和常识推理的探索任务。

自动化模板学习

虽然手工制作模板的策略很直观,并且确实可以在一定程度上准确地解决各种任务,但这种方法也存在一些问题:
  • 创建和对这些 prompt 进行实验需要大量的时间和经验,特别是对于一些复杂的任务,例如语义解析(Shin 等,2021);

  •  即使是经验丰富的 prompt 设计者可能也无法手工发现最佳的 prompt(Jiang 等,2020c)。

为了解决这些问题,很多研究提出了一些自动化模板设计过程的新方法。特别地,自动化搜索的 prompt 可以进一步被分为离散 prompt(其中 prompt 是一个实际的文本字符串)和连续 prompt(其中 prompt 直接在底层 LM 的嵌入空间中进行描述。

answer 工程

与 prompt 工程相反,answer 工程的目的是搜索一个 answer 空间 Z 和一个到原始输出 Y 的映射,从而得到一个有效的预测模型。图 1 中的 answer 挖掘工程部分说明了在执行 answer 工程时必须考虑的两个维度:确定 answer 形式和选择 answer 设计方法。

answer 形式

answer 的形式决定了它的粒度,一些常见的选择包括:
  • Token:预训练 LM 词汇表中的一个 token,或者词汇子集;

  • Span:短的 multi-token span,这些通常与 cloze prompt 一起使用;

  • 句子或文档:这些通常与前缀 prompt 一起使用。

answer 空间设计方法

如何设计适当的 answer 空间 Z,以及如果 answer 不用作最终输出,如何设计到输出空间 Y 的映射。可以采取多种策略来执行此设计。

与手动创建 prompt 一样,手动创建 answer 可能不是 LM 实现理想预测性能的最佳选择。因此,有一些关于自动 answer 搜索的工作,尽管少于搜索理想 prompt 的工作,但这些方法适用于离散 answer 空间和连续 answer 空间。

 multi-prompt 学习

以上探讨的 prompt 工程方法主要集中于为输入构建单个 prompt。但是,大量的研究表明,多重 prompt 可以进一步提升 prompting 方法的效果,他们将这些方法称为 multi-prompt 学习方法。在实践中,有数种方法可以将单个 prompt 学习扩展至 multi-prompt,如下图 4 所示,这些方法包括如下:
  • prompt 集成

  • prompt 增强

  • prompt 合成

  • prompt 分解

prompting 方法的训练策略

通过上文提到的方法,现在如何获得适当的 prompt 和对应的 answer 已经非常清楚了。因此下一步研究者探讨了显式训练与 prompting 方法一致的模型的方法。

训练设置

在很多情况下,无需对下游任务的语言模型进行任何显式训练即可使用 prompting 方法,只需采用训练用于预测文本 P(x) 出现概率的语言模型并按原样用它填充为指定任务定义的完形填空或前缀 prompt 就行了。这在传统上被称为零样本设置,因为感兴趣任务的训练数据为零。

但学界依然有一些方法使用训练数据来训练与 prompting 方法一致的模型,它们包括全数据学习或少样本学习。prompting 方法在少样本学习中非常有用,因为通常没有足够的训练示例来完全指定期望的行为,因此使用 prompt 将模型推向正确的方向特别有效。

参数更新方法

在基于 prompt 的下游任务学习中,通常存在两种类型的参数,即来自预训练模型和 prompt 的参数。哪类参数应该更新是一项重要的设计决策,可以在不同场景中产生不同程度的适用性。

研究者基于底层语言模型参数是否需要调整、是否有额外的 prompt 参数和这些额外的 prompt 参数是否需要调整这三个方面总结以下 5 种调整策略,如下表 6 所示,它们分别为:
  • Promptless Fine-tuning 

  • Tuning-free Prompting 

  • Fixed-LM Prompt Tuning 

  • Fixed-prompt LM Tuning 

  • Prompt+LM Fine-tuning 

应用

根据研究者的调研,prompt 方法在以下诸多领域具有广泛的应用:
  • 知识探索(事实探索和语言学探索)

  • 分类任务(文本分类自然语言推理

  • 信息提取(关系提取语义分析命名实体识别

  • NLP 中的推理(常识推理和数学推理)

  • 问答

  • 文本生成

  • 文本生成的自动评估

  • 多模态学习

  • 元应用(域自适应、除偏和数据集创建)

具体研究工作以及相应任务如下表 7 和 8 所示:

研究者为不同的 prompt 应用收集了一些有用的资源,并且设计用于少样本和零样本学习的一些数据集如下表 9 所示:

下表 10 展示了现有手动设计的常用 prompt,它们可以看作是适用于未来研究和应用的现成资源。

Prompt 相关研究主题

研究者总结了与 prompt 相关的主题,包括集成学习、少样本学习、更大规模上下文学习、查询重构、基于问答的多任务学习、可控生成、监督注意力和数据增强。

刘博士在知乎上也写了一篇文章介绍 promoting,感兴趣的同学可以浏览查看:https://zhuanlan.zhihu.com/p/395115779。
理论Prompt LearningCMU博士后研究员刘鹏飞
2
相关数据
清华大学机构

清华大学(Tsinghua University),简称“清华”,由中华人民共和国教育部直属,中央直管副部级建制,位列“211工程”、“985工程”、“世界一流大学和一流学科”,入选“基础学科拔尖学生培养试验计划”、“高等学校创新能力提升计划”、“高等学校学科创新引智计划”,为九校联盟、中国大学校长联谊会、东亚研究型大学协会、亚洲大学联盟、环太平洋大学联盟、清华—剑桥—MIT低碳大学联盟成员,被誉为“红色工程师的摇篮”。 清华大学的前身清华学堂始建于1911年,因水木清华而得名,是清政府设立的留美预备学校,其建校的资金源于1908年美国退还的部分庚子赔款。1912年更名为清华学校。1928年更名为国立清华大学。1937年抗日战争全面爆发后南迁长沙,与北京大学、南开大学组建国立长沙临时大学,1938年迁至昆明改名为国立西南联合大学。1946年迁回清华园。1949年中华人民共和国成立,清华大学进入了新的发展阶段。1952年全国高等学校院系调整后成为多科性工业大学。1978年以来逐步恢复和发展为综合性的研究型大学。

http://www.tsinghua.edu.cn/
相关技术
刘知远人物

刘知远,清华大学计算机系副教授、博士生导师。主要研究方向为表示学习、知识图谱和社会计算。2011 年获得清华大学博士学位,已在 ACL、IJCAI、AAAI 等人工智能领域的著名国际期刊和会议发表相关论文 60 余篇,Google Scholar 统计引用超过 2100 次。承担多项国家自然科学基金。曾获清华大学优秀博士学位论文、中国人工智能学会优秀博士学位论文、清华大学优秀博士后、中文信息学会青年创新奖,入选中国科学青年人才托举工程、CCF-Intel 青年学者提升计划。担任中文信息学会青年工作委员会执委、副主任,中文信息学会社会媒体处理专委会委员、秘书,SCI 期刊 Frontiers of Computer Science 青年编委,ACL、COLING、IJCNLP 领域主席。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

关系提取技术

关系抽取任务需要检测和分类一组工件中的语义关系提及,通常来自文本或XML文档。该任务与信息提取(IE)的任务非常相似,但是IE另外需要去除重复关系(消歧),并且通常指的是提取许多不同的关系。

集成学习技术

集成学习是指使用多种兼容的学习算法/模型来执行单个任务的技术,目的是为了得到更佳的预测表现。集成学习的主要方法可归类为三大类: 堆叠(Stacking)、提升(Boosting) 和 装袋(Bagging/bootstrapaggregating)。其中最流行的方法包括随机森林、梯度提升、AdaBoost、梯度提升决策树(GBDT)和XGBoost。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

文本分类技术

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

多模态学习技术

现实世界中的信息通常以不同的模态出现。例如,图像通常与标签和文本解释联系在一起;文本包含图像以便更清楚地表达文章的主要思想。不同的模态由迥异的统计特性刻画。例如,图像通常表示为特征提取器的像素强度或输出,而文本则表示为离散的词向量。由于不同信息资源的统计特性不同,发现不同模态之间的关系是非常重要的。多模态学习是一个很好的模型,可以用来表示不同模态的联合表示。多模态学习模型也能在观察到的情况下填补缺失的模态。多模态学习模型中,每个模态对应结合了两个深度玻尔兹曼机(deep boltzmann machines).另外一个隐藏层被放置在两个玻尔兹曼机上层,以给出联合表示。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

语义分析技术

语义分析是编译过程的一个逻辑阶段, 语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查,进行类型审查。语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。比如语义分析的一个工作是进行类型审查,审查每个算符是否具有语言规范允许的运算对象,当不符合语言规范时,编译程序应报告错误。如有的编译程序要对实数用作数组下标的情况报告错误。又比如某些程序规定运算对象可被强制,那么当二目运算施于一整型和一实型对象时,编译程序应将整型转换为实型而不能认为是源程序的错误。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

命名实体识别技术

命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

零样本学习技术

从仅仅一个或一小撮样本中学习一个新的概念,而普通的机器学习标准算法通常需要几十或几百个表现类似的样本。

模型选择技术

模型选择是从给定数据的一组候选模型中选择统计模型的任务。对于具有类似预测或解释力的候选模型,最简单的模型最有可能是最佳选择(奥卡姆剃刀)。

多任务学习技术

文本生成技术

文本生成是生成文本的任务,其目的是使人类书写文本难以区分。

知乎机构

知乎,中文互联网综合性内容平台,自 2010 年成立以来,知乎凭借认真、专业、友善的社区氛围,独特的产品机制,以及结构化、易获得的优质内容,聚集了中文互联网科技、商业、影视、时尚、文化等领域最具创造力的人群,已成为综合性、全品类,在诸多领域具有关键影响力的内容平台。知乎将AI广泛应用与社区,构建了人、内容之间的多元连接,提升了社区的运转效率和用户体验。知乎通过内容生产、分发,社区治理等领域的AI应用,也创造了独有的技术优势和社区AI创新样本。

zhihu.com
自然语言推理技术

自然语言推理是在给定“前提”的情况下确定“假设”是真(蕴涵),假(矛盾)还是未确定(中立)的任务。

语言学技术

每种人类语言都是知识和能力的复合体,语言的使用者能够相互交流,表达想法,假设,情感,欲望以及所有其他需要表达的事物。语言学是对这些知识体系各方面的研究:如何构建这样的知识体系,如何获取,如何在消息的制作和理解中使用它,它是如何随时间变化的?语言学家因此关注语言本质的一些特殊问题。比如: 所有人类语言都有哪些共同属性?语言如何不同,系统的差异程度如何,我们能否在差异中找到模式?孩子如何在短时间内获得如此完整的语言知识?语言随时间变化的方式有哪些,语言变化的局限性是什么?当我们产生和理解语言时,认知过程的本质是什么?语言学研究的就是这些最本质的问题。

常识推理技术

常识推理是人工智能(AI)的一个分支,它关注模拟人类每天遇到的普通情境的类型和本质的假设。这些假设包括对人和物体的物理特性,目的,意图和行为的判断,以及他们的行为和相互作用的可能结果。展示常识推理的设备将能够预测结果并得出类似于人类民间心理学(人类对人们的行为和意图进行推理的天生能力)和天真物理学(人类对物理世界的自然理解)的结论。

语言模型技术

统计式的语言模型是借由一个几率分布,而指派几率给字词所组成的字串。语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。

推荐文章
暂无评论
暂无评论~