提示学习(Prompt Learning)

AI应用信息2个月前发布 XIAOT
170 0
Part 0

 NLP领域的技术(范式*)变迁

在正式介绍 prompt learning 之前,了解自然语言处理NLP)领域的研究范式变迁,有利于我们更好地理解 prompt learning 提出的背景,其和其他方法的异同,以及其研究价值所在。
Stage 1. 非神经网络时代的完全监督学习(Fully Supervised Learning, Non-Neural Network), 针对目标任务,仅仅在包含了输入-输出(input-output)样本的数据集上训练出一个task-specific的模型。该范式长期在机器学习领域发挥了重要的作用,然而往往因为全监督的数据数量不足而难以训练出高质量的模型,因此大量的研究者聚焦于利用领域知识从原始数据(raw data)中定义或抽取一些显著特征(salient feature)从而为模型引入恰当的归纳偏置(inductive bias),使其能从有限的数据中学习,因此该阶段的NLP模型主要依赖于特征工程(feature engineering)
Stage 2. 基于神经网络的完全监督学习 (Fully Supervised Learning, Neural Network), 随着神经网络在NLP领域中的发展,训练模型的同时能一并学习特征,因此研究者们的聚焦点转移到了结构工程(architecture engineering),因此该阶段是通过设计一些有利于特征学习的模型结构来引入归纳偏置。
Stage 3. 预训练,精调范式 (Pre-trAIn, Fine-tune), 2017-2019年间,NLP领域的范式又一次发生了巨大的变化,模型的参数不再是随机初始化的,而是通过一些前置任务,预先进行训练,得到一套模型参数作为目标任务的初始化,并再目标任务上再训练进行精调。这种预先训练好的模型作为语言模型(langugage model,abr. LM),如 BERTGPT,Elmo 等, 海量的无标注语料为语言模型的训练提供了足量的数据,从而得到较为鲁棒的具有通用含义的特征。在此基础上,通过引入额外的参数以及任务相关的目标函数就可以对不同的下游任务进行微调(fine-tune)。因此,研究的聚焦点又转为目标函数工程(objective engineering),使LM模型能得到较好的微调以适应下游任务。
Stage 4. 预训练,提示,预测范式(Pre-train, Prompt, Predict),  论文[6] 提出拥有175B参数的语言模型 GPT-3 带来了一种将 LM 用于下游任务的新方法:通过使用自然语言提示(prompt)和任务示例(demonstration)作为上下文(context),GPT-3 只需要几个样本就可以处理很多任务,而不需要更新底层模型中的参数。该新引入的提示学习(prompt learning)范式核心在于,不再让 LM 去适应下游任务,取而代之的是通过增加提示(prompt)的方式调整下游任务,使其更接近在训练 LM 过程中能被解决的问题。换言之,第四范式将 “LM 迁就下游任务” 的模式转化为 “下游任务迁就 LM” 的模式了。
接下来的部分,我们会用一些 NLP 中常见的任务来进一步 formulate 以及阐述提示学习(prompt learning, abr. PL)。
Part 1

浅探提示学习(Prompt Learning)

此章主要介绍提示学习中的提示,提示学习的一般工作流程,以及该种形式下独有的优势。
1.0

    什么是提示

此处借用刘鹏飞老师在北京智源大会 Big Model Meetup 第1期:大模型 Prompt Tuning 技术中给出的例子来进行阐述。
A. An Intuitive Definition
Prompt is a cue given to the pre-trained language model to allow it better understand human’s questions.

“提示” 是一种提供给预训练语言模型的线索,让预训练语言模型能更好的理解人类的问题。

B. More Technical Definition
Prompt is the technique of making better use of the knowledge from the pre-trained model by adding additional texts to the input.

目的是更好地利用预训练模型中的知识

手段是在输入中增加额外的文本(clue/prompt)

如下图所示,根据提示,BERT 能回答/补全出 “JDK是由 Oracle 研发的”,BART 能对长文本进行总结,ERNIE 能说出鸟类的能力。
提示学习(Prompt Learning)
An illustration of prompt (Liu P, et al. 2021)
1.1

    提示学习的通用流程(General Workflow)

提示学习的基本流程主要包括以下四个步骤:提示构造(Prompt Construction),答案构造(Answer Construction),答案预测(Answer Prediction),以及答案-标签映射(Answer-Label Mapping)。接下来以NLP中很常见的 text classification 任务:情感分类(Sentiment Classification)作为例子来分别阐述这四个步骤。

情感分类的任务描述:

输入:句子 x(e.g. Input:  x = I love this movie.)

输出:对 x 的情感极性预测 (i.e., 😔 v.s  😊)

1.1.0 Prompt Construction 将input x 转为为带提示的 x’的过程。

首先,需要设计一个模板, 一个包含输入槽(input slot)[x] 和答案槽(answer slot)[z] 的文本串,输入槽留给 input x答案槽 [z] 用于生成答案(answer)z答案 z 之后会被映射到输出的标签或文本(output label or text)。

接下来,将 input x 代入到输入槽 [x] 中。具体过程如下图所示:

提示学习(Prompt Learning)
注:答案槽 [z] 可以位于 x’ 的中间位置或者末尾位置,通常称 [z] 在中间的 x’ 为 cloze prompt(完形填空提示),[z] 在末尾的 x’ 为 prefix prompt(前缀型提示)。
1.1.1 Answer Construction:设计 answer 和 class label 之间的映射函数
 
提示学习(Prompt Learning)
注:特殊情况1,answer 和 label 是相同的,比如机器翻译任务;特殊情况2,多个 answer 可以映射到同一个 label,比如情感分类任务中 “excellent, good, wonderful” 等词均可映射到正向的情感😊。
1.1.2 Answer Predicting: 选择合适的LM, 并让其通过给定的x’ 预测 answer z
提示学习(Prompt Learning)
首先选择合适的 LM,此处以 Masked LM Bert 为例,关于 LM 的选择策略将会在后续介绍。可以看出,BERT 的输入和我们之前构造好的 x’ 形式相同,其中的 [mask] 与 x’ 中的 [z] 相同,都是为输出预留的槽位。
提示学习(Prompt Learning)
通过构造 promting x’,情感分类的任务被转化为了 LM 任务,可以直接使用 LM 来对 [z] 进行预测得到答案(answer)z。
1.1.3 Answer Mapping:将 LM 预测出来的 answer z 映射为 label。
 
提示学习(Prompt Learning)
至此,就完成了一个使用 prompt learning 方法进行情感分类任务的过程,也大致介绍了 prompt learning 中的基本术语,总结于下表中:
提示学习(Prompt Learning)
Summary of terminology in prompt learning. Credit to Pengfei Liu.
    © 版权声明

    相关文章

    暂无评论

    暂无评论...