Prompt学习笔记(二)Pre-train, Prompt, and Predict论文阅读2:Prompt的形式化描述

392 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

导语

本文对应原论文的第2章的部分内容。主要介绍Prompt的形式化描述。

2 Prompt的形式化描述

2.1 NLP中的有监督学习

在传统的监督学习系统中,输入 x 通常是文本数据,训练得到的模型 P(yx;θ)P(y|x; θ) 预测输出 y。然而,监督学习面临的一个主要问题是:找到大量的标注数据比较困难。

2.2 Prompt基础

基于提示的NLP学习方法试图通过学习LM来避免上述问题,这个LM学习的是文本本身的概率P(x;θ)P(x; θ)并使用该概率来预测y,减少或避免对大型监督数据集的需求。下表展示了一些Prompt中常见的术语,后续将分别进行解释。

image.png

总体来说,一般的Prompt分三步预测输出,即: 1)prompt添加、 2)answer搜索和 3)answer映射。

2.2.1 Prompt Addition

prompt添加是创建一个prompting函数,使得输入x 变为

函数的建立有两个步骤:

  • 建立一个含有两个slot的模板,分别用于放置input slot [x]和answer slot [z]
  • 将输入文本填充到 [x]

下表展示了几种常见的Prompt的形式:其中涵盖了包括文本分类(情感分类、主题分类、意图判断),基于方面的情感分析,文本对分类(自然语言推断),标注(如命名实体识别),文本生成(如概括和翻译)等任务。

image.png

其中需要注意的是:

  • 按slot的位置来分,prompt 有两种主要类型:
    • 填充文本字符串空白的完形填空 (cloze) prompt;
    • 用于延续字符串前缀的前缀 (prefix) prompt。
  • 模板中的词不一定是由自然语言tokens组成,也可以是连续空间的词嵌入向量。
  • [x][x][z][z] 的数量可以根据任务进行灵活的改变。

2.2.2 Answer Search

answer 搜索是搜索得分最高的文本z,使LM的得分最大化。

首先定义一个 z 的取值空间 Z。在文本生成任务中, Z 可以是整个语料范围,在文本分类任务中可以是语料词的一个小子集,比如 Z = { “excellent”, “good”, “OK”, “bad”, “horrible” }

定义一个填充函数fll(x,z)f_{fill}(x′, z),即用潜在的答案 z 填充 xx' 中的slot [z][z]

最后,我们通过使用预先训练的LM来计算对应的填充的prompts的概率来搜索可能的答案z

image.png

这里的搜索函数可以是一个搜索得分最高的输出的argmax搜索,也可以是根据LM的概率分布随机生成输出的抽样。

2.2.3 Answer Mapping

搜索得到answer z^\hat{z}后,我们最后需要将其转换为最终的label输出y^\hat{y}。在文本生成任务中,z^\hat{z}就等于y^\hat{y},而某些情况下,多个答案可能会得到相同的输出。例如,在文本情感分类中,“excellent”, “fabulous”, “wonderful”这些答案就可以归类到同一个类(++,即very positive)。

2.3 设计Prompt时的考虑

主要考虑如下:

  1. PLM的选取,即使用哪个PLM来估计P(x;θ)P(x; θ)
  2. Prompt工程,即如何设计选择Prompt模板;
  3. Answer工程,即ZZ的选取和answer mapping函数的设计;
  4. 扩展范式:上面展示的是最基础的Prompt的流程,我们也可以扩展至更加复杂的流程;
  5. 基于Prompt的训练策略:还有一些方法可以训练参数,prompt、LM或两者都可以。