表达的“艺术”:prompt learning助力AI发展

发布时间:2022-12-26 07:00

摘  要

Stable diffusion、ChatGPT都是时下大热的机器学习实现。尽管应用领域不同,这些模型的出现都得益于时下新兴的提示学习(prompt learning)技术的进步。本文讨论了提示学习的基本思想、最新进展和应用。

背景介绍

生活中,我们通常碰到一个没见过的场景,会不知所措。这时如果我们得到一些提示或指示,就可以开始推进工作。比如大家到医院后往往不知道如何看病,这时导医会给出简单介绍和提示,我们就知道如何办理挂号、挂什么科等等。

 

同样,提示也是机器学习领域中重要的性能提升技术。Stable diffusion、ChatGPT都是时下大热的机器学习实现。尽管应用领域不同,这些模型的出现都得益于时下新兴的提示学习(prompt learning)技术的进步。

 

  1. 什么是提示学习

提示学习是近两年应对NLP大模型发展起来的模型——下游任务适配技术。在此之前,大家比较熟悉的任务适配方法是“预训练-微调”,即通用数据训练一个基础模型,再用针对下游任务的数据finetune模型以使得模型适配下游任务。

 

随着GPT-3等超大模型的提出,人们意识到通过“预训练-微调”方式让这些巨无霸模型适配不同下游任务的成本令人无法接受。另一方面,超大模型由巨量基础数据训练本身具有足够的知识与理解能力。只要告诉它下游任务是什么就能很好的完成任务,实际上这可以通过提示大模型的方式来实现。

 

提示学习的思路可以用大家日常工作的例子来理解。新人入职时被要求填写个人情况。如果没有提示相信大多数人会对要提供的具体内容有困扰,不知怎样填写。因此一般个人情况填写都会以表格提供,而表格分为很多项,并给了相应的提示,如“姓名”、“籍贯”等,入职者根据提示填空就完成了填表。

 

同样,NLP大模型具备了足够的知识完成特定任务,只是没有适配到下游任务。而提示学习通过各种方式来提示设计使得下游任务可以适配到基础模型。以匹配任务为例,语言模型要根据输入的城市名来给出所属国家。 比如:输入X: 巴黎;输出应为:法国。以提示学习的方法来适配模型,可以设计如下的提示:

 

[X]位于哪个国家?[Y]

 

这样就形成了一个下游任务的适配的过程。通过这种方法基础模型可直接用于下游任务而无需对模型本身做调整。

 

除了填空式提示,还有前缀式提示等其他方式。前缀方式是将要完成的任务显式的加到提示里。比如上面例子中,直接将任务要求加在提示中:

 

找到这个城市所属国家:[x]。选项: A中国;B美国

 

由于前缀直接给出了完成任务的指令,这种方式也可以看作是指令学习。DeepMind的研究人员在他们的研究中明确了这一概念[4]。

 

前缀任务提示后,还可直接添加样例,类似图1的例子。这样在无需再训练模型情况下,可进一步提高准确性。

 

图1 指令+样例的提示模板[4]

图片来源:https://arxiv.org/abs/2109.01652

 

另外,提示学习也发展出了各种与finetune和训练相结合的方法,而不仅仅限于zero-shot的实现。我们将在后文逐步介绍。

 

需要说明的是,提示学习尚在快速发展和迭代中,各类术语并不完全统一,同时也会有新的提示学习方法被提出或形成独立的分支。比如随着ChatGPT而引起广泛关注的指令学习,可以广义的看作是一种提示学习方法。该方法结合强化学习发展出了一套新的大模型优化模式。

 

由于prompt learning和语言大模型的巨大成功,它也被广泛应用到图像视频和其它多模态任务中。后文中我们会结合热点模型做详细分析。

 

  1. 提示学习类型

最直接的提示学习采用人工的方式设计提示模板与形式,如上节例子。但是研究者发现模型的性能对提示的具体内容高度敏感。下表是一个经典的实例,可以看到不同的设计使模型准确率有巨大的差异。

 

表1不同提示的影响[1]

图片来源:https://arxiv.org/abs/2103.10385v1

 

很自然地,学者们想到了自动搜索提示的方法,从而自动找到最优的词汇/token组合[2]。

 

人工提示是从人的视角来选择token用于模板,而设计的模板却是面向语言模型的。我们可以设计出一套template方法,在预训练模型输入加上一个可学习的prompt生成器,由机器来学习到合适的输入的embedding向量。注意这里学习的是新的embedding向量,而不是预训练模型权重。这些输入向量不是原来token set的一部分。它们不是token对应离散向量的子集,而是学到的特征空间向量,也称为连续向量,而这类方法可称为soft prompt。通过这种方法,我们就可以将提示模板的部分或全部向量用学到的连续向量来代替。前者保留由token代表的关键信息,其它向量由连续向量代替(p-tuning)。后者则完全用连续向量构建提示(p-tuning v2)。

 

  1. 提示学习的实施

如前文所述,prompt和fine-tuning是并行的概念。Prompt learning可通过完全无参的定制prompt,直接结合预训练模型完成下游任务。整个流程没有任何fine-tuning或训练参数的过程。在预训练模型固定应用中,我们也可以让一个额外的提示生成器产生提示,而生成器则由fine-tuning来确定参数,即prompt-only tuning。

 

在代价允许的情况下,prompt learning也可以和预训练模型fine-tuning结合,从而在基本模型层面提升完成特定任务的能力。根据prompt本身是否需要fine-tuning,可以分为fixed-prompt tuning(仅微调预训练模型)和prompt-LM tuning。

 

  1. 提示学习的最新应用及进展

 

提示学习在语言和多模态应用中取得空前成功。我们通过具体的模型来进一步理解提示学习的应用。

 

4.1 stable diffusion

      

Stable diffusion是diffusion生成模型最流行和成功的版本。其整体结构如下:

图2 Stable diffusion整体架构[4]

图片来源:https://arxiv.org/abs/2109.01652

 

可以看到右侧生成控制变量文本、图像等不同模态的提示接入到denoise模型。以文本生成图像为例,输入的文本提示经过文本encoder生成特征序列,与来自denoise diffusion的隐变量交互从而产生与文字内容耦合的隐空间内容,并最终产生输出图像。在上述实现中,文本提示通过多级cross-attention与隐空间内容交互,很显然该模型需要预先训练集成cross-attention模块的diffusion模型。这种方式可以看作是prompt固定,基础模型训练的prompt-tuning。

 

除了文本对图像的prompt,stable diffusion用到预训练CLIP text encoder将输入文本转换为特征序列。众所周知,CLIP是prompt learning的经典应用案例。它在预训练的语言和视觉模型基础上,通过构建prompt实现了zero-shot的下游新任务。

 

2. ChatGPT

 

ChatGPT是GPT-3的最新发展,它利用来自人类反馈的强化学习实现模型与人类价值观对齐,减少有害内容输出。与22年上半年发表的instructGPT[5]类似,ChatGPT首先用人工构建的指令-答案数据集对GPT-3微调。微调(SFT, supervised finetune)模型产生提示-回答,由人工排序,用于训练一个奖励模型(RM, Reward Model)。RM模型和SFT模型通过多轮强化学习,形成最终的ChatGPT。

 

小  结

提示学习开始的出发点是通过合适的提示设计使得下游任务能适配预训练NLP模型,或者让模型能“了解”任务。该技术很快引起大家广泛关注,并扩展到不同领域,极大推进了NLP,多模态和AIGC等领域和应用的进步。提示学习是目前深度学习领域重要的研究方向,相信在近期我们还会看到更多激动人心的应用案例。

 

参考文献

[1] GPT Understands, Too, arXiv:2103.10385v1.

[2] Efficient (Soft) Q-Learning for Text Generation with Limited Good Data,arXiv:2106.07704.

[3] P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks, arXiv:2110.07602v3.

[4] Wei, Jason, et al. "Finetuned language models are zero-shot learners." * arXiv:2005.14165v4.

[5] Long Ouyang, et.al., Training language models to follow instructions with human feedback, arXiv:2203.02155v1.

上一个: 加速Transformer:稀疏注意力加速器调研

下一个: 通往AI化EDA之路的研究综述

近期文章

AI 智能体:应用前景与对算力需求的影响

人工智能技术的迅猛发展,尤其是 AI 智能体这一核心部分。本文讨论了AI智能体的定义、应用前景和其对算力需求的影响。

2023-11-13

查看更多