【一起入门NLP】中科院自然语言处理第17课-详细介绍:红到发紫的Prompt是什么?【下】

简明扼要:红到发紫的prompt是什么?中笔者从四大范式的发展入手简单介绍了Prompt的思想,并在OpenPrompt工具包如何使用?–【踩坑记录】中记录了使用OpenPrompt的细节,这篇文章笔者想要介绍一些Prompt的细节~

Prompt预测步骤与数学描述

在这里插入图片描述

🍄step1: Prompt Addition

这个步骤要完成两件事情:

  1. 选择一个模板,这个模板中要有两个空,一个空[x]用来填入输入的句子,另一个空[Z]为将来的预测结果。
  2. 在[x]中填入输入的字符串。
    在这里插入图片描述
    下图中最下面一行就是X’
    在这里插入图片描述

🍄step2: Answer Search

将X’输入语言模型,得到“最高分”输出
在这里插入图片描述

🍄step3: Answer Mapping

LM得到的输出,可能与下游任务需要的输出标签不一致,比如在下面这个例子中说LM的最高分输出为【很】,应该对应下游任务的输出标签【正向】。将LM输出映射为输出标签的过程就是answer mapping
在这里插入图片描述
函数形式表达为:
在这里插入图片描述
这里的map函数也别称为Verbalizer

Prompt 难题

对应prompt的三个步骤,需要解决以下三个问题:

  1. 输入端:怎么样选取合适的Prompt,适配不同任务,同时把模型潜能激发出来(怎么 把Prompt结合输入的句子构成模型的输入)
  2. 训练:怎样利用Prompt机制精调模型
  3. 输出端:模型的输出( Answer)可能与标签不同,拿到answer后如何往标准化的Y(标签空间)映射

Prompt 研究重点

1. Pre-trained Models :如何选择语言模型?

如何选择语言模型在第三范式时就已经是一个重要的问题了。语言模型可以分为从左至右的语言模型和双向的语言模型。

  1. Left-to-Right LM:从左至右的语言模型,是一种自回归模型,具有从左到右的顺序性,比如:“This is a good movie” good出现的概率与前面出现的单词有关。
  2. Bidirectional LM:双向的语言模型,用上下文来预测mask的值。比如 “This is a [mask] movie” ,mask的预测与整个句子都有关。
    在这里插入图片描述
    如果下游任务是翻译, 比如说 “ 好好学习,翻译成英文是:____” 需要预测的位置总在最右边,这就比较适合于 Left-to-Right的语言模型。如果下游任务是完形填空,比如说 “ 我去了北京?__ 我去了上海” 需要预测的位置在中间,与上下文都有关系,就应该选择一个双向的语言模型。

2. Prompt Enginering :如何构造模板?

在这一步中,首先需要考虑prompt的形式,然后决定采用手动还是自动的方式来创建Prompt。

prompt形式

有两种:

  1. 完形填空 cloze prompt : 用在如BERT-MLM式预训练模型上。如:「这个饼不错 ],太 [Z] 了。Z一般在句中
  2. 前缀提示 prefix prompt :用在如GPT2-3单向LM预训练模型上。如:「好好学习」,翻译成英文:[Z]一般在句末

选择哪种prompt 取决于任务和用于解决任务的模型。

  • 对于有关生成的任务或使用标准自回归 LM 解决的任务,前缀 prompt 往往更有帮助,因为它们与模型从左到右的性质刚好吻合
  • 对于使用掩码 (Mask) LM 解决的任务则完形填空 prompt合适,因为它们与预训练任务的形式非常匹配
  • 全文本重建模型则可以与完形填空 prompt 或前缀 prompt 一起使用。

prompt创建方式

  • 手工模板创建
    • 手工制作模板的策略很直观,且可以在一定程度上准确地解决各种任务,但方法也存在一些问题:创建和对这些 prompt 进行实验需要大量的时间和经验,特别是对于一些复杂的任务,例如语义解析等即使是经验丰富的 prompt 设计者可能也无法手工发现最佳的prompt
  • 自动化模板创建
    • 自动化搜索的 prompt 可以进一步被分为离散 prompt(其中prompt 是一个实际的文本字符串)和连续 prompt(其中 prompt 直接在底层LM 的嵌入空间中进行描述。

3. Answer Engineering :答案如何映射到标签?

Answer 工程的目的是搜索一个 answer 空间 Z 和一个到原始输出 Y 的映射,从而得到一个有效的预测模型。需考虑的两个维度:确定 answer 形式和选择 answer 设计方法。

answer 形式

answer 的形式决定了它的粒度,一些常见的选择包括:

  • Token:预训练 LM 词汇表中的一个 token,或者词汇子集;
  • Span:短的 multi-token span,这些通常与 cloze prompt 一起使用;
  • 句子或文档:这些通常与前缀 prompt 一起使用。

补充:token是分词后的基本单元,“我很开心”分词为“我,很,开心”,这里就是三个token。span是一个范围,可以是一个或多个token组成。下图中的开心就是由span表示的。
在这里插入图片描述
比较好理解的是,对于机器翻译这样的任务,比较适合用句子来描述答案,对于分类任务,比较适合和用span或者token来描述答案。

answer 设计方法

下一个需要回答的问题是,如果答案不用作最终输出,如何设计适当的答案空间Z,以及如何映射到输出空间Y。也就是将下图中的“很”映射为“正向”,不映射为“负向”。有两种创建方式:手动创建 answer 和自动搜索answer
在这里插入图片描述

4. Multi-Prompt Engineering :如何设计多个 prompt 获得更好的效果?

前面探讨的 prompt 工程方法主要集中于为输入构建单个 prompt。大量的研究表明,多重 prompt 可以进一步提升 prompting 方法的效果。常见的方法:

  1. prompt ensembling:集成学习,把多个prompt通过某种加权方法组合到一起。如图(a)
  2. prompt augmentation:启发式学习。对 prompt 进行数据增强。如图(b)
  3. prompt composition:将复合的prompt句子,拆解成多个小段prompt,最后再组合在一起训练。如图(C)
  4. prompt decomposition:由于一些任务的mask工作使用句子数量有限(如词性标注任务)固只能通过decomposition将一个句子拆分成多个部分后,再对每个部分做prompt单独训练。如图(D)
    在这里插入图片描述

5. Prompt-based Training Strategies :模型参数如何训练?

  在上一篇博客解释“为什么Prompt最大的优点是适用于零样本学习”时,已经提到了模型训练参数的问题,在这一部分我们再详细展开来看一下每一种策略的优缺点。
  在基于Prompt的下游任务学习中,通常存在两种类型的参数,即来自预训练模型的参数和Prompt的参数。根据(i) 底层LM的参数(LM params)是否被调优,(ii)是否有额外的与Prompt相关的参数(Additional),(iii)如果有额外的与提示相关的参数,这些参数是否被调优,总结了5种调优策略(如下图所示)。
在这里插入图片描述

  • Prompt less Fine-tuning:直接使用下游任务进行训练,不用prompt,更新预训练参数;优点:简单,不需要设计prompt;缺点:小数据集上容易过拟合或者不稳定
  • Tuning-free Prompting:基于prompt直接生成答案,无需调参。优点:简单高效;缺点:需要较重的prompt设计
  • Fixed-LM Prompt Tuning:固定预训练参数,调整prompt参数,使下游任务更好作
    用于prompt的产生;优点:适合小样本学习;缺点:不适合零样本学习,prompt模版通常不再是人工设计的
  • Fixed-Prompt LM Tunin:固定prompt参数,调整预训练参数
  • Prompt+LM Fine-tuning:调整prompt参数,调整预训练参数。适合大数据集,小数据集易过拟合

总结

简要介绍Prompt
OpenPrompt工具demo实现

加上本篇文章,笔者分别用三篇博客完成了下面这些内容的介绍,希望有所帮助。
在这里插入图片描述

在这里插入图片描述

参考:
国科大胡玥老师自然语言处理课件
https://mp.weixin.qq.com/s/vyKCCjAEbuOxpKOd6zhz3w

  • 11
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vector<>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值