Prompt-NLP新范式

news2024/9/20 16:38:30

作者:子苏 来源:投稿
编辑:学姐

Prompt综述论文:Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing 论文作者知乎-近代自然语言处理技术发展的“第四范式”

NLP技术发展的四种范式

NLP发展的四种范式

范式a-b :不用手工配置模板,借助神经网络适当调参就能获得不错的结果。

范式b-c :比起排列组合各种网络结构却不一定能获得好的性能而言,探究将何种损失函数引入预训练语言模型从而更适配下游任务好像更简单。

范式c-d :随着预训练语言模型体量的不断增大,在下游任务上对其进行fine-tune的成本代价也不断上涨。因此研究学者们希望探索出更小巧轻量、普适高效的方法,Prompt就是沿着这个方向的一种尝试。在Fine-tune范式下,是预训练语言模型“迁就”各种下游任务,而在Prompt范式下,是下游任务“迁就”预训练语言模型,即通过对各种下游任务进行重构,使得它们更好地适配预训练语言模型,从而激发预训练语言模型的潜能。虽然Prompt的设计很繁琐,但它激活了很多新的研究场景,比如小样本学习。

Prompt起源

Prompt的起源可以追溯到GPT-2,T5,GPT-3等的一些研究,发现在输入样本前加入一个和任务相关的前缀,就可以提示模型接下来要输出的内容。比如在GPT-3的预测阶段,只需要在输入样本前加上Translate English to French: 就可以提示模型接下来要进行翻译任务,即完全依靠模型在预训练阶段学到的知识来进行预测,不需要在下游任务上再依靠task-specific的监督数据对模型进行fine-tune就可直接使用,一方面减少了fine-tune模型的计算和存储代价,另一方面也给样本量极度缺乏的少样本领域(zero/few-shot)带来了福音。

GPT-3

这种依靠提示信息(Prompt)来激发模型的内在潜能,挖掘模型在大规模预训练阶段学到的知识的做法引领了NLP领域的第四范式。人们逐渐开始思考如何更加高效地利用预训练语言模型的大量参数,如何将各种下游任务都统一到一个通用框架下,使得模型能够根据不同的提示信息进行不同的任务,从而不需要再为每个下游任务训练单独的模型。

论文发展

本文将对Prompt快速发展过程中一些重要论文的核心创新点进行简要介绍,而不会详细描述过多模型细节(欲知全貌建议直接读原论文)。

1.初立门派-PET(Pattern-Exploiting Training)

论文:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference (2020)

该论文对Prompt模式的研究进行了规范,提出了Pattern-Verbalizer的概念:

  • Pattern(Prompt)函数P将输入样本x映射为完形填空的形式P(x)
  • Verbalizer函数v将样本标签l映射为可填入完形填空的词v(l)

比如对于5分类任务,给定输入样本a,对应的模板函数P和标签映射函数v可为:

pattern-verbalizer

注意这里多种Prompt模板函数以及答案映射函数都是人工手动设计的。

然后利用新构建出来的P(x),v(l)对预训练模型进行fine-tune,其他更多细节不再展开,实验结果显示该方法在少样本任务上表现很好。

2.自证武功,以小博大-PET增强版

论文:It’s Not Just Size That Matters: Small Language Models Are Also Few-Shot Learners (PET原班人马)

GPT-3出来后显示了其在少样本学习上的惊人能力,但是其庞大的参数量也令人望而却步。而本文作者提出“小模型在少样本学习上也可以有卓越表现”,直接对标GPT-3这个庞然大物,从而奠定了PET所提范式在江湖的霸主地位,引起了各大武林人士的关注。

PET vs GPT-3

该文证明了PET所提范式的有效性,同时作者还分析发现设计不同的Prompt模板和标签映射函数Verbalizer对模型性能影响较大,从而引起后来人员涌入改进Prompt模板和标签映射Verbalizer构造的浪潮中。

3.百花齐放-自动构建Prompt

论文:Making Pre-trained Language Models Better Few-shot Learners

取代PET中手动构建Prompt模板和标签映射函数的过程,自动化搜索模板和标签映射,同时参考GPT-3中的in-context learning,在输入样本中加入示例(demonstrations)作为上下文,帮助模型更好地理解要做什么。

LM-BFF

实验表明,在少样本上,这种基于prompt的fine-tune效果能够明显好于标准的fine-tune,并且在样本中加入示例确实能够带来增益。

4.百花齐放-构建连续Prompt

也许未必非要构建人能理解的离散tokens式的Prompt,构建模型能够接受的连续向量式的Prompt也未尝不可。

4.1论文:Prefix-Tuning: Optimizing Continuous Prompts for Generation

该文针对NLG(Natural Language Generation)任务,提出了构建连续的prompts。在预训练模型的每一层加上一个Prefix前缀矩阵,固定预训练模型的参数,仅训练前缀矩阵的参数,在few-shot设定下,性能超过标准的fine-tune。

Prefix-tuning

实验结果表明,在全量数据下,prompt-based fine-tune的效果能够相当standard fine-tune;在少样本下,能够超过standard fine-tune。

4.2论文:GPT Understands, Too (P-tuning)

该文针对NLU(Natural Language Understanding)任务,也提出了构建连续的prompts。与Prefix-tuning不同的是,这里的prompts仅需要加在输入层,而不用加在网络的每一层,就可以work well。

P-tuning

利用biLSTM对prompts进行Encode,然后将编码后的prompts embedding和样本x输入预训练语言模型(PLM),之后同时fine-tune prompt embeddings和pretrained model。

考虑到优化连续的prompt向量有两个问题:

  • (1) 随机初始化prompts对应的权重向量hi,在优化过程中容易陷入局部最优
  • (2) Prompt的tokens之间应该有一定的关联,而不是完全独立

因此作者提出先采用biLSTM作为Prompt Encoder来编码prompt向量。

具体Prompt模板设计为:

  • [Prompt 1] X [Prompt 2] [MASK] for unidirectional models, e.g. GPT
  • [Prompt 1] X [Prompt 2] [MASK] [Prompt 3] for bidirectional models, e.g. BERT 每个[Prompt]位置的tokens个数需要事先指定,X表示输入样本,[MASK] 表示预测目标。

实验结果表明,在全量数据下,prompt-based fine-tune的效果能够相当或超过standard fine-tune。

5.后起之秀-Prompt Tuning

论文:The Power of Scale for Parameter-Efficient Prompt Tuning

该文提出为每个下游任务设计自己的prompt,拼接到输入样本上,然后完全freeze预训练模型的权重,仅训练prompts对应的权重参数。发现随着模型体积的增大,Prompt-tuning的效果逐渐追上标准fine-tune的效果。

Prompt-tuning

这里Model Tuning就是指标准的fine-tune,即在下游任务上对预训练模型的参数进行更新。

总结

最后对各论文实验结果的普遍规律进行一个总结。各论文采用的fine-tune策略主要有以下三种:

  • Standard Fine-tune:一般会在预训练模型的最后一层加上一个随机初始化的全连接层,引入new parameters
  • Prompt-based Fine-tune:reuse预训练模型的权重参数,不引入new parameters
  • Prompt Tuning:freeze预训练模型权重参数,仅训练引入的prompts的权重参数

Prompt-based Language Models:模版增强语言模型小结

2021年,Pre-train+finetune还是“新”范式吗?乘风破浪的Prompt-base methods Prompt范式第二阶段|Prefix-tuning、P-tuning、Prompt-tuning P-tuning: 自动构建模板,释放语言模型潜能 Prompt Pre-training:迈向更强大的Parameter-Efficient Prompt Tuning

论文解读+代码合集可点击卡片关注👇领取

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

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

相关文章

【回答问题】ChatGPT上线了!推荐40个以上比较好的目标检测模型

推荐40个以上比较好的目标检测模型? 目标检测是指在图像中找到并标识出特定目标的计算机视觉任务。近年来,机器学习技术的发展使得目标检测取得了长足进步。目前有许多优秀的目标检测模型,下面是推荐的40个以上的比较好的目标检测模型: R-…

事务到底是隔离的还是不隔离的?

我在第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无…

尚医通-医院列表接口-等级接口-功能测试(二十二)

目录: (1)医院列表接口-医院等级接口 (2)医院列表接口-远程调用 (3)医院列表接口-功能测试 (1)医院列表接口-医院等级接口 由于我们的医院等级、省市区地址都是取的数据…

BGP在数据中心的应用1——数据中心网络介绍

注: 本文根据《BGP in the Datacenter》整理,有兴趣和英文阅读能力的朋友可以直接看原文:https://www.oreilly.com/library/view/bgp-in-the/9781491983416/ 引子 在传统的大型数据中心,网络通常是三层结构。Cisco称之为&#x…

js函数之call和apply

一、含义 function test() {console.log(----) }//执行 test(); test.call() 结果一致,调用test()默认会调用call,二者效果一致,call省略掉了。 二、改变this指向 call还有一个很重要的功能是改变this的指向。 function Car(brand, color)…

[Java]泛型

文章目录🥽 泛型简介🌊 泛型的概念🌊 使用泛型的原因🌊 小结🌊 类型推断🥽 自定义泛型🌊 自定义泛型类🌊 自定义泛型类/泛型接口注意点🌊 自定义泛型方法🥽 泛…

2022HW11

文章目录任务描述-域自适应二、代码三、实验1、Simple Baseline2、Medium Baseline3、Strong Baseline任务描述-域自适应 ●想象一下,你想做与3D环境相关的任务,然后发现 ○3D图像很难标记,因此也很昂贵。 ○模拟图像(如GTA-5上的…

shell-流程控制之循环

1.for创建20用户用户前缀由用户输入用户初始密码由用户输入 例如&#xff1a;test01,test10 [rootcotenos day06]# vim useradd.sh #!/bin/bash read -p "请输入用户前缀&#xff1a;" user read -p "请输入初始密码&#xff1a;" pass for ((i1;i<…

重新成长再出发

文章大纲突然的转型&#xff0c;逼自己一把也能重新成长为什么脱口秀突然火了起来&#xff1f;上天是给了你一个重新成长的机会&#xff01;2022 一些成长的点滴突然的转型&#xff0c;逼自己一把也能重新成长 年初的时候&#xff0c;航旅纵横给我弹窗问我很久没有坐飞机了怎么…

微三云陈志坤:盘点帮助企业转型到线上的模式

今/天小编给大家介绍一下泰山众筹模式系统&#xff0c;想搭建系统平台的联系微三云陈志坤。 泰山众筹模式已经走了4个多年头&#xff0c;目前仍在运行。 第一部分&#xff1a;泰山众筹模式介绍 一、无泡沫——安全长久 所有的互联网金融项目的死穴就是泡沫无法消除&#xf…

对于此版本,windows installer和即点即用的Office不能并行运行,因此只能安装一种类型(安装Visio破解版时的报错)

阅读前请看一下&#xff1a;我是一个热衷于记录的人&#xff0c;每次写博客会反复研读&#xff0c;尽量不断提升博客质量。文章设置为仅粉丝可见&#xff0c;是因为写博客确实花了不少精力。不用担心你关注我而我却不关注你&#xff0c;因为我是个诚信互关的人&#xff01;&…

gem5 arm架构 fullsystem spec2017 benchmark 仿真

gem5 system emulation 模式&#xff0c;内部实现了对system call的模拟&#xff0c;使用了一段时间后&#xff0c;有一些发现: 如果使用spec2017 X86编译&#xff0c;那么会存在对intel比较新的指令不支持的问题&#xff1b;后来使用gcc march K6 m32来解决&#xff0c;即使用…

FPGA知识汇集-FPGA配置模式和配置设计

所有现代FPGA的配置分为两类:基于SRAM的和基于非易失性的。其中&#xff0c;前者使用外部存储器来配置FPGA内的SRAM;后者只配置一次。 Lattice和Actel的FPGA使用称为反熔丝的非易失性配置技术&#xff0c;其主要优点是系统设计更加简单、不需要外部存储器和配置控制器、功耗低…

Kotlin之泛型的高级特性

Kotlin泛型中的基本用法和Java中的泛型用法是大致相同的&#xff0c;因此也比较好理解。然而实际上&#xff0c;Kotlin在泛型方面还提供了不少特有的功能&#xff0c;接下来将进行介绍。 一、对泛型进行实化 泛型实化这个功能对于绝大多数Java程序员来讲是非常陌生的&#xf…

对云台、IMU、鲁棒性和硬件时间同步的理解

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> slam是一门集硬件和软件的多科学技术&#xff0c;涉及到很多技术术语、概念以及数学公式等等。下面我将结合网上资料以及个人理解进行介绍。 什么叫云台…

navicat导入sql数据库文件的简单操作步骤

目录 前言必读 一、概念 二、操作步骤 &#xff08;一&#xff09;新建连接 &#xff08;二&#xff09;新建数据库 &#xff08;三&#xff09;数据库导入sql文件 前言必读 读者手册&#xff08;必读&#xff09;_云边的快乐猫的博客-CSDN博客 一、概念 在很多项目当…

LeetCode 309. 最佳买卖股票时机含冷冻期

309. 最佳买卖股票时机含冷冻期 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: 卖出股票后&#x…

第二个岳云鹏,跨年晚会含泪主持,成为一道最靓丽的风景

中国人自古讲究&#xff1a;百善孝入先&#xff0c;尤其是对于娱乐圈的明星来说&#xff0c;孝心和爱心更是他们成功的根本。 在这方面&#xff0c;德云社的小岳岳走在了前列&#xff0c;他用自己的孝心和爱心感动了粉丝&#xff0c;也收获了无数的鲜花和掌声。小岳岳的爱心体现…

2022年终总结 2023展望

一、回首2022 总结2022&#xff0c;同时也给新的一年设定目标&#xff0c;明年来还愿。 2022对我来说意义非凡&#xff0c;最重要莫过于考上了理想的研究生学校。 1~2月 考研初试刚结束&#xff0c;很长时间没敲过代码&#xff0c;而且本科期间刷的算法题不多&#xff0c;感觉…

02 USART

串口是一种应用十分广泛的通讯接口&#xff0c;串口成本低、容易使用、通信线路简单&#xff0c;可实现两个设备的互相通信。 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信&#xff0c;极大地扩展了单片机的应用范围&#xff0c;增强了单片…