0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Propt learnimng是如何发展形成的

深度学习自然语言处理 ? 来源:NLP日志 ? 作者:NLP日志 ? 2022-03-21 15:54 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1 简介

Prompt learning作为近期NLP的新宠,热度不断攀升,在接下来的一段日子,大概率还是会处于一个风口的位置。什么是Prompt learing?就是通过引入模版来将原始输入改造成类似于完形填空的格式,让语言模型去回答,进而推断出下游任务的结果。prompt leanring是如何发展形成的?包括组成?类型?面临哪些挑战?带着这些问题,我们对相关内容做了一定的梳理,希望能让大家对于Prompt learning整个框架有个清晰的认识。

2 NLP发展的四个阶段

要了解一个人的话需要去了解他/她的过去。prompt learning作为NLP发展的重大产物,又有怎样的一段过去呢?纵观整个NLP的发展,它可以分为以下几个阶段。

a) 第一个阶段:feature engineering

对应下图中的Fully Supervised Learning (Non-Neural Network),这是大家常提的特征工程阶段,由于缺乏充分的有监督训练数据,早期的NLP倚重于前期的特征工程,这需要相关研究人员或者专业人士利用自己扎实的领域知识从原始数据中定义并提取有用的特征供模型学习。这个阶段构建特征依赖于大量的人工,特征工程的效果也极大程度影响到模型的最终表现。

b) 第二个阶段:architecture engineering

对应下图中的Fully Supervised Learning (Neural Network),随着神经网络的到来,NLP逐渐过渡到架构工程这个阶段,在这个时期,大家更注重于如何设计一个合理的网络结果去学习有用的特征,从而减少对人工构建特征的依赖。

c) 第三个阶段:objective engineering

对应下图中的Pre-train, Fine-tune,这也是前几年常挂在嘴边的预训练时代。在这个时期,NLP流行的方法基本都是在大量语料上进行预训练,然后再在少量的下游任务下完成微调。在这种范式下,更注重于目标的设计,合理设计预训练跟微调阶段的目标函数,对最终的效果影响深远。前面两个阶段都依赖于有监督学习,但是这个阶段里的预训练可以不需要有监督的数据,极大的降低了对监督语料的依赖。

d) 第四个阶段:prompt engineering

对应下图中的Pre-train, Prompt, Predict,也就是本章节想要介绍的prompt learning的时期。在这个时期,依旧会在大量语料上进行预训练,但是在特定下游任务下可以通过引入合适的模版(prompt)去重构下游任务,管控模型的行为,实现zero shot或者few shot。一个合适的模版甚至可以让模型摆脱对下游特定任务数据的要求,所以如何构建一个合理有效的prompt成为了重中之重。

Propt learnimng是如何发展形成的

图2: NLP的发展历上的四种范式

3 Prompt learning

传统的监督学习任务,是去训练一个模型P(y|x),接收x作为输入,去预测y。Prompt learning则不然,它依赖于预训练语言模型P(x),通过引入合适的模版template将输入x调整为完形填空格式的x’,调整后的输入x’里含有某些空槽,利用语言模型P将空槽填充后就可以推断出对应的y。例如对于情感分析任务,传统的做法就是训练一个判别模型,去预测输入x对应的标签是positive或者negative,但是如果是prompt learning,则是利用合适模版,将输入x调整为 [x], it is [z]。然后作为语言模型的输入去预测相应z的取值,如果z是positive相关的词,就表示原始输入x是positive,反之就是negative的。

Prompt learning包括三个部分,分别是prompt addition,answer search, answer mapping。

a) Prompt addition

选择合适的模版,定义函数fprompt(x),可以将原始的输入x转化为x‘,即fprompt(x)=x’。经过该函数转化得到的输入都是带有空槽,槽位上的预测值会直接决定最后的结果。另外,这里的模版不仅仅可以是离散化的token,也可以连续的向量。在不同的下游任务,可以灵活调整,选择合适的模版。

b) Answer search

通过prompt函数后,将x’输入到语言模型,去预测使得语言模型得分最高的候选槽值。Answer search指的就是从所有可能的候选槽值进行搜索,然后选择合适的槽值填充到对应的空槽里。这里槽值的所有可能结果的集合为Z,对于生成任务而言,Z包括所有的token,但是对于分类任务而言,Z只包含跟特定分类任务相关的一部分token。例如对于之前那个例子而言,Z={positive相关的词语,negative相关的词语}

c) Answer mapping

当通过answer search得到合适的槽值时,需要根据槽值推断最终的预测结果。这部分比较直接,假如是生成任务,那么填充的槽值就是最终的结果。但如果是分类任务,就需要根据相应的槽值归纳到具体的类中。例如情感分类中,如果把跟positive相关的槽值都归类到positive一类,把跟negative相关的槽值归类到negative一类中。

Propt learnimng是如何发展形成的

图3: Prompt learning

在了解prompt learning的基本组成后,不容易发现,有以下几个方面都会影响prompt learning的最终效果,后续我们再围绕着这几点分别展开。

a) Prompt engineering,如何选择一个合适的模版,也就是设计合适的模版函数,是整个prompt learning的第一个步。

b) 预训练语言模型的选择, 如何预测空槽位置上的答案依赖于预训练语言模型的得分,同时预训练语言模型又有4大类。(在文本生成系列的文章对这这部分的介绍已经很详细了,这里就不赘述了。)

c) Answer engineering,如何构建一个合适的答案候选集以及一个从答案到最终结果的映射。

d) Expanding the paradigm,如何基于基础的prompt learning去扩展,包括multi prompt等。

e) Training strategy,如何选择训练策略,去训练一个合适的模型。

4 Prompt engineering

Prompt engineering,如何构建一个合适的模版函数,使得在下游任务能取得最高效的表现。Prompt learning利用预训练语言模型去预测最终结果,那么如何将输入x转化为语言模型擅长处理的样式就是Prompt engineering的工作。一个不合适的prompt function会导致语言模型不能做出令人满意的预测。为了最终任务的效果,我们需要根据语言模型和下游任务的特性,去构建合理的prompt。

如果模版处于输入x之中,那么称为cloze prompt,这种情形多应用于使用掩码语言模型的场景,它能够紧密的跟掩码语言模型的预训练过程相配合。如果输入x全部位于模版内容之前,那么称为prefix prompt,这种情形多应用于生成任务或者使用使用自回归的语言模型的场景,它能跟从左往右的回归模型本质更加匹配。

Prompt可以是通过人工构建的,根据人的经验知识构建合理的prompt,这也是最直接的方式。但是通过人工构建的模版需要耗费时间跟精力, 而且即便是专业人员也不一定能构建得到最优的prompt,为此,衍生了不少自动选择prompt的方法,其中包括离散的prompt,也包括连续的prompt。

5 Answer engineering

Answer engineering旨在寻找一个合适的答案空间Z以及一个从答案到最终输入y的一个映射。Prompt learning之所以能实现few shot甚至zero shot,是依仗于预训练语言模型强大的泛化能力。但是语言模型在预测时都是针对全词表的,对于下游任务而言并不一定需要全词表的,例如情感分析任务下如果预测到人称代词时要怎么推断最终结果的情绪呢?为此,Answer engineering要去寻找一个跟下游任务匹配的答案空间,也就是构建候选集,并定义好答案空间到最终输出之间的映射,候选词跟最终输出的对应关系。

Answer engineering里的答案空间可以是由token,或者片段,或者完整的句子组成。Token跟片段的情形多见于分类相关任务,完整的句子多见于生成相关任务。答案空间同样也可以通过人工构建,也可以通过模型去搜索查找。大部分的方法构造的候选集都是离散化的,只有很少部分方法是连续化的。

6 Multi-prompt learning

跟打比赛时经常会集成多个模型的思路如出一辙,相对于单个prompt,多个prompt往往能提高prompting methods的有效性。常见的多个prompt的方法有以下几种类型。

Propt learnimng是如何发展形成的

图4: multi-prompt的类型

a) Ensemble

多个prompt,每个prompt都按照单prompt的方法并行进行,然后再把最终的结果汇总,可以通过加权或者投票的方式汇总多个单prompt的方法的结果。

b) Augmentation

增强的方式其实就是找一个跟当前问题相似的case,然后将这个case跟当前输入x‘一起输入,这种模型就可以根据那个case对x‘做出更精准的预测了。

c) Composition

同时利用多个prompt构建prompt函数,每个prompt负责一个子任务,把多个prompt的内容融合到一起,同时进行多个子任务的预测。例如关系抽取任务,有的prompt负责实体识别,有的prompt负责判断实体间的关系。

d) Decomposition

对于有多个预测值的任务,将原始的任务拆分程多个子任务,引入多个prompt,分别处理子任务,彼此隔离。也就是把多个预测值的任务拆分程多个单prompt任务去分别处理。

7 Training strategy

根据是否需要在语言模型的基础上引进新的跟模版相关的参数,以及模型参数是否冻结可以分为以下4种。(图中第一种不算是prompt learning)

Propt learnimng是如何发展形成的

图5:训练策略

a) Prompt fine-tuning

NLP发展史上第三个阶段的先预训练然后再微调的方法。

b) Tuning-free Prompting

不需要微调,直接利用一个prompt做zero-shot任务

c) Fixed_LM Prompt Tuning

引进了额外的跟prompt相关的的参数,通过固定语言模型参数,去微调跟prompt相关的参数。

d) Fixed-prompt LM Tuning

引进了额外的跟prompt相关的的参数,通过固定prompt相关参数,去微调语言模型参数。

f) Prompt+LM Tuning

同时微调语言模型跟prompt相关的参数。

8 总结

Propt learnimng,充分利用了预训练语言模型强大的泛化能力,极大的减少了对下游任务有监督数据的依赖,能实现few shot甚至zero shot,对于当下数量众多的NLP下游任务,有很大的应用前景。但是关于如何构建prompt,如何选择语言模型,构建候选答案空间,构建答案到最终输出的映射,如何选择训练策略,如何寻找一个最佳配置使得下游任务效果达到最优,依旧是个需要持续探索的事情。

原文标题:Prompt learning入门

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络
    +关注

    关注

    14

    文章

    7891

    浏览量

    91359
  • 模型
    +关注

    关注

    1

    文章

    3551

    浏览量

    50760
  • nlp
    nlp
    +关注

    关注

    1

    文章

    490

    浏览量

    22720

原文标题:Prompt learning入门

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电路漏电流形成及预防知识

    电路漏电流形成及预防知识 介绍了印制电路板漏电流的形成及影响,对不同环境条件下的印制板印制线间绝缘电阻进行了测试,得出了电路漏电流的控制方法,为可能出现的因电路漏电流导致的故障分析
    发表于 12-23 16:22

    雨滴形成

    请问哪位大虾有"雨滴形成"C语言的程序啊,如果有的话能不能发给我啊,感激不尽!!!!{:soso_e183:}
    发表于 10-23 13:45

    电压形成的原因?

    我也一直困扰这个问题,希望高人给指点一下,电压到底是怎么形成的?内部电子流怎么流的,动能在哪?百度上有一个朋友是这样回答的。如下***************开始
    发表于 02-16 16:00

    PIM的形成原因与测试方法

    的问题。Summitek结合了通过制造和发展其PIM分析仪而获得相关的知识,形成的PIM测量基本方法,以及构筑Summitek分析仪的测试性能等方面,从而逐步形成了现有的观点和看法。Summitek建议如下:· 在
    发表于 06-11 06:31

    基于FPGA器件和LVDS技术设计的高速实时波束形成

    雷达作为一种特殊的无线电装备,也必然遵循从模拟到数字再到软件化这样的发展道路。数字波束形成技术被视为新一代雷达所必须采用的技术,它保留了天线阵列单元信号的全部信息,并可采用先进的数字信号处理技术对阵
    发表于 11-25 06:49

    高速PCB设计信号完整性问题形成原因是什么?

    随着半导体技术和深压微米工艺的不断发展,IC的开关速度目前已经从几十M H z增加到几百M H z,甚至达到几GH z。在高速PCB设计中,工程师经常会碰到误触发、阻尼振荡、过冲、欠冲、串扰等信号
    发表于 03-17 06:52

    什么是地环路?地环路是如何形成的?怎么解决?

    什么是地环路?地环路是如何形成的?地环路如何引入噪声?如何解决地环路噪声?
    发表于 06-15 07:19

    PID控制算法是如何形成

    常用的控制算法有哪几种?分别有何特点?PID控制算法的基本思想是什么?PID算法是如何形成的?
    发表于 12-21 07:05

    智能卡芯片的发展及其所形成的设计方法

    智能卡芯片的发展及其所形成的设计方法:“中央处理单元(CPU)(或早期的中央控制逻辑)+ 各种存储器(ROM/RAM/EEPROM)+ 通讯接口”就形成了智能卡的基本功能。
    发表于 12-13 19:55 ?15次下载

    中国工业互联网发展加快形成 中国企业如何“突围”

    中国工业互联网发展大环境正在加快形成,华为、海尔、阿里等名企纷纷开始出手,为利用互联网创新优势,打造中国版“工业4.0”,上海、辽宁等地已经制定发布了工业互联网发展行动计划,在这股浪潮下中国企业如何“突围”。
    发表于 02-24 10:07 ?1069次阅读

    仓储机器人近两年飞速发展 竞争格局逐渐形成

    伴随着电商的发展,对物流服务能力和效率提出了更高的要求,物流智能化加速发展。就仓储机器人而言,随着资本的热衷、技术的进步以及政策优势等因素,近两年飞速发展,竞争格局逐渐形成,但不变的是
    发表于 01-04 09:34 ?3595次阅读

    VR产业发展的战略窗口期已然形成

    2018年,经历了“炒作波峰”与“死亡裂谷”的虚拟现实(VR)产业逐渐展露锋芒,不仅在个人和家庭市场迎来一波发展,亦快速渗透到各行各业之中,影响力迅速扩大。正如工业和信息化部部长苗圩所言,VR产业发展的战略窗口期已然形成
    发表于 01-28 16:33 ?1192次阅读

    工信部新版新能源汽车发展规划初稿形成 将推动新能源汽车产业高质量可持续发展

    据悉,前期,工信部联合多家单位组成编写组,形成了《2021年-2035年新能源汽车发展规划》(以下简称《规划》)初稿,并征求了地方行业主管部门和《规划》咨询委意见。其中,提到了燃料电池汽车产业发展的有关内容。根据计划,上述
    发表于 12-03 14:21 ?486次阅读

    OLED产业发展集群化,带动产业链加速形成

    产业发展集群化,带动产业链加速形成。OLED面板定制化程度不断提升,对产业链配套能力要求也越来越苛刻,为保障供应链安全和创新速度,全球OLED产业呈现出集群化发展态势。韩国三星以牙山为中心,LGD以
    的头像 发表于 07-24 11:50 ?2737次阅读

    开关电器电弧的形成

    一、电弧的形成 开关电器触头刚分开瞬间,阴极在强电场和高温的作用下发射电子,自由电子在触头电压作用下高速运动,产生碰撞游离导致介质击穿形成电弧。电弧形成后,由于弧柱温度很高,介质产生游离使电弧得以
    的头像 发表于 09-28 16:11 ?4115次阅读
    开关电器电弧的<b class='flag-5'>形成</b>