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

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

3天内不再提示

Prompt Tuning相比于Fine Tuning在哪些场景下表现更好?

深度学习自然语言处理 来源:深度学习自然语言处理 2023-02-02 14:36 次阅读

近年来 NLP 学术领域发展真是突飞猛进,刚火完对比学习(contrastive learning),又有更火的提示学习 prompt learning。众所周知,数据标注数据很大程度上决定了AI算法上限,并且成本非常高,无论是对比学习还是提示学习都着重解决少样本学习而提出,甚至在没有标注数据的情况下,也能让模型表现比较好的效果。本文主要介绍 prompt learning 思想和目前常用的方法。

目录

一. NLP的训练范式有哪些
二. 为什么需要提示学习
三. 提示学习是什么
四. 常见的提示学习方法
五. 总结

一. NLP的训练范式有哪些

目前学术界一般将NLP任务的发展分为四个阶段即NLP四范式:

  1. 第一范式:基于「传统机器学习模型」的范式,如 tf-idf 特征+朴素贝叶斯等机器算法;
  2. 第二范式:基于深度学习模型」的范式,如 word2vec 特征 + LSTM 等深度学习算法,相比于第一范式,模型准确有所提高,特征工程的工作也有所减少;
  3. 第三范式:基于「预训练模型 + finetuning」的范式,如 BERT + finetuning 的NLP任务,相比于第二范式,模型准确度显著提高,但是模型也随之变得更大,但小数据集就可训练出好模型;
  4. 第四范式:基于「预训练模型 + Prompt + 预测」的范式,如 BERT + Prompt 的范式相比于第三范式,模型训练所需的训练数据显著减少。

e705184c-a2c2-11ed-bfe3-dac502259ad0.jpg

在整个NLP领域,你会发现整个发展是朝着精度更高、少监督,甚至无监督的方向发展的,而 Prompt Learning 是目前学术界向这个方向进军最新也是最火的研究成果。

二. 为什么需要提示学习为什么呢?

要提出一个好的方式那必然是用来「解决另一种方式存在的缺陷或不足」,那我们就先从它的上一个范式来说起,就是预训练模型 PLM + finetuning范式 常用的是 BERT+ finetuning:

e7198016-a2c2-11ed-bfe3-dac502259ad0.jpg

这种范式是想要预训练模型更好的应用在下游任务,需要利用下游数据对模型参数微调;首先,模型在「预训练的时候,采用的训练形式:自回归、自编码,这与下游任务形式存在极大的 gap」,不能完全发挥预训练模型本身的能力

必然导致:较多的数据来适应新的任务形式——>少样本学习能力差、容易过拟合

e732a352-a2c2-11ed-bfe3-dac502259ad0.jpg

上下游任务形式存在gap

其次,现在的预训练模型参数量越来越大,为了一个特定的任务去 finetuning 一个模型,然后部署于线上业务,也会造成部署资源的极大浪费。

e7443374-a2c2-11ed-bfe3-dac502259ad0.jpg

模型专用性特定任务微调导致部署成本过高

三. 提示学习是什么

首先我们应该有的「共识」是:预训练模型中存在大量知识;预训练模型本身具有少样本学习能力。

GPT-3 提出的 In-Context Learning,也有效证明了在 Zero-shot、Few-shot场景下,模型不需要任何参数,就能达到不错的效果,特别是近期很火的GPT3.5系列中的 ChatGPT。

e754a286-a2c2-11ed-bfe3-dac502259ad0.jpg

Prompt Learning 的本质

将所有下游任务统一成预训练任务;「以特定的模板,将下游任务的数据转成自然语言形式」,充分挖掘预训练模型本身的能力。

本质上就是设计一个比较契合上游预训练任务的模板,通过模板的设计就是「挖掘出上游预训练模型的潜力」,让上游的预训练模型在尽量不需要标注数据的情况下比较好的完成下游的任务,关键包括3个步骤:

  1. 设计预训练语言模型的任务
  2. 设计输入模板样式(Prompt Engineering)
  3. 设计label 样式 及模型的输出映射到label 的方式(Answer Engineering)

Prompt Learning 的形式

以电影评论情感分类任务为例,模型需根据输入句子做二分类:

原始输入:特效非常酷炫,我很喜欢。

Prompt 输入:「提示模板1」: 特效非常酷炫,我很喜欢。这是一部[MASK]电影 ;「提示模板2」: 特效非常酷炫,我很喜欢。这部电影很[MASK]

提示模板的作用就在于:将训练数据转成自然语言的形式,并在合适的位置 MASK,以激发预训练模型的能力。

e764d458-a2c2-11ed-bfe3-dac502259ad0.jpg

提示学习模板框架

类别映射/Verbalizer:选择合适的预测词,并将这些词对应到不同的类别。

e77591b2-a2c2-11ed-bfe3-dac502259ad0.jpg

类别映射

通过构建提示学习样本,只需要少量数据的 Prompt Tuning,就可以实现很好的效果,具有较强的零样本/少样本学习能力。

四. 常见的提示学习方法

1. 硬模板方法

1.1 硬模板-PET(Pattern Exploiting Training)

PET 是一种较为经典的提示学习方法,和之前的举例一样,将问题建模成一个完形填空问题,然后优化最终的输出词。虽然 PET 也是在「优化整个模型的参数」,但是相比于传统的 Finetuning 方法,对「数据量需求更少」

建模方式:

以往模型只要对P(l|x)建模就好了(l是label),但现在加入了Prompt P以及标签映射(作者叫verbalizer),所以这个问题就可以更新为:

e789aeea-a2c2-11ed-bfe3-dac502259ad0.jpg

其中M表示模型,s相当于某个prompt下生成对应word的logits。再通过softmax,就可以得到概率:

e79785a6-a2c2-11ed-bfe3-dac502259ad0.jpg

作者在训练时又加上了「MLM loss」,进行联合训练。

e7b9353e-a2c2-11ed-bfe3-dac502259ad0.jpg

具体的做法:

  1. 在少量监督数据上,给每个 Prompt 训练一个模型;
  2. 对于无监督数据,将同一个样本的多个 prompt 预测结果进行集成,采用平均或加权(根据acc分配权重)的方式,再归一化得到概率分布,作为无监督数据的 soft label ;
  3. 在得到的soft label上 finetune 一个最终模型。

1.2 硬模板- LM-BFF

LM-BFF 是陈天琦团队的工作,在 Prompt Tuning 基础上,提出了Prompt Tuning with demonstration & Auto Prompt Generation。

e7d2ddb8-a2c2-11ed-bfe3-dac502259ad0.jpg

e7e7758e-a2c2-11ed-bfe3-dac502259ad0.jpg

「硬模板方法的缺陷」

硬模板产生依赖两种方式:根据经验的人工设计 & 自动化搜索。但是,人工设计的不一定比自动搜索的好,自动搜索的可读性和可解释性也不强。

e7fd91a2-a2c2-11ed-bfe3-dac502259ad0.jpg

上图实验结果可以看出硬模板 对于prompt,改变prompt中的单个单词 会给实验结果带来巨大的差异, 所以也为后续优化提供了方向,如索性直接放弃硬模板,去优化 prompt token embedding。

2. 软模板方法

2.1 软模板- P tuning

不再设计/搜索硬模板,而是在输入端直接插入若干可被优化的 Pseudo Prompt Tokens,「自动化地寻找连续空间」中的知识模板:

  1. 不依赖人工设计
  2. 要优化的参数极少,避免了过拟合(也可全量微调,退化成传统 finetuning)

e8185f14-a2c2-11ed-bfe3-dac502259ad0.jpg

传统离散prompt 直接将模板 T 的每个 token 映射为对应的embedding,而 P-Tuning 将模板 T 中的Pi(Pseudo Prompt)映射为一个「可训练的参数 hi」

「优化关键点」在于,自然语言的hard prompt,替换为可训练的soft prompt;使用双向LSTM 对模板 T 中的 pseudo token 序列进行表征;引入少量自然语言提示的锚字符(Anchor)提升效率,如上图的“capital” ,可见 p-tuning是hard+soft的形式,并不是完全的soft形式。

具体的做法:

  1. 初始化一个模板:The capital of [X] is [mask]
  2. 替换输入:[X] 处替换为输入 “Britian”,即预测 Britain 的首都
  3. 挑选模板中的一个或多个 token 作为 soft prompt
  4. 将所有 soft prompt 送入 LSTM,获得每个 soft prompt 的「隐状态向量 h」
  5. 将初始模板送入 BERT 的 Embedding Layer,「所有 soft prompt 的 token embedding用 h 代替」,然后预测mask。

核心结论:基于全量数据,大模型:仅微调 prompt 相关的参数,媲美 fine-tuning 的表现。

代码:https://github.com/THUDM/

2.2 软模板- Prefix tuning

P-tuning 更新 prompt token embedding 的方法,能够优化的参数较少。Prefix tuning 希望能够优化更多的参数,提升效果,但是又不带来过大的负担。虽然prefix tuning是在生成任务上被提出来的,但是它对soft prompt后续发展有着启发性的影响。

e8272a58-a2c2-11ed-bfe3-dac502259ad0.jpg

优化每一层的 Prompt token embedding,而不仅仅是输入层

由上图可见,模型上在每层 transformer 之前加入 prefix。特点是 prefix 不是真实的 token,而是「连续向量」(soft prompt),Prefix-tuning 训练期间冻结 transformer 的参数,只更新 Prefix 的参数。

只需要存储大型 transformer 的一个副本和学习到的特定于任务的前缀即可,为每个附加任务产生非常小的开销。

e8419230-a2c2-11ed-bfe3-dac502259ad0.jpg

自回归模型

以图上自回归模型为例的做法:

  1. 输入表示为 Z = [ prefix ; x ; y ]
  2. Prefix-tuning 初始化一个训练的 矩阵 P,用于存储 prefix parameters
  3. 前缀部分 token,参数选择设计的训练矩阵,而其他部分的token,参数则固定 且为预训练语言模型的参数

核心结论:Prefix-tuning 在生成任务上,全量数据、大模型:仅微调 prompt 相关的参数,媲美 fine-tuning 的表现。

代码:https://github.com/XiangLi1999/PrefixTuning

2.3 软模板- Soft Prompt Tuning

Soft Prompt Tuning 系统后验证了软模板方法的有效性,并提出:固定基础模型,有效利用任务特定的 Soft Prompt Token,可以大幅减少资源占用,达到大模型的通用性。

对 Prefix-tuning 的简化,固定预训练模型,只对下游任务的输入「添加额外的 k个可学习的 token」。这种方式在大规模预训练模型的前提下,能够媲美传统的 fine-tuning 表现。

e858220c-a2c2-11ed-bfe3-dac502259ad0.jpg

代码:https://github.com/kipgparker/soft-prompt-tuning

五. 总结

「Prompt Learning 的组成部分」

  1. 提示模板:根据使用预训练模型,构建 完形填空 or 基于前缀生成 两种类型的模板
  2. 类别映射/Verbalizer:根据经验选择合适的类别映射词、3. 预训练语言模型

「典型的 Prompt Learning 方法总结」

  1. 硬模板方法:人工设计/自动构建基于离散 token 的模板
    1)PET 2)LM-BFF
  2. 软模板方法:不再追求模板的直观可解释性,而是直接优化 Prompt Token Embedding,是向量/可学习的参数
    1)P-tuning 2)Prefix Tuning

后续会在分类、信息抽取任务中尝试 Prompt Learning,持续更新中...


	
		

审核编辑 :李倩


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

    关注

    1

    文章

    3038

    浏览量

    48396
  • 深度学习
    +关注

    关注

    73

    文章

    5425

    浏览量

    120633
  • nlp
    nlp
    +关注

    关注

    1

    文章

    481

    浏览量

    21940

原文标题:Prompt Tuning 相比于 Fine Tuning 在哪些场景下表现更好?

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

收藏 人收藏

    评论

    相关推荐

    使用DCC tuning tool 调试gamma,不可以通过曲线拉伸,请问这是什么原因?

    本帖最后由 一只耳朵怪 2018-5-31 15:56 编辑 TI好,我正在尝试着使用DCCtuning tool 调试gamma,但是发现一个比较疑惑的问题,不知道是不是版本号引起的,我
    发表于 05-31 08:25

    请问导致image tuning tools打开raw文件出错是什么原因?如何解决?

    本帖最后由 一只耳朵怪 2018-6-22 11:38 编辑 我更改dvsdk 4.02里面的dmai和encode,改成single-shot resize,然后从encode
    发表于 06-22 03:18

    请问DM36x Image Tuning Tool这个软件哪里可以下载?

    Dear Ti:我需要使用DM36x Image Tuning Tool ,这个软件在哪里可以下载到呢?如何使用啊,有没有相关的使用文档?我的开发包环境是:dvsdk_dm365-evm_4_02_00_06谢谢!
    发表于 02-18 13:54

    Altium差分信号length tuning中的gap,amplitude increase gap increase该怎么设置?

    我想问一下差分信号length tuning中,gap,amplitude increasegap increase如何设置,和差分线的width和gap是什么关系
    发表于 09-06 05:35

    晶振温度特性-音叉Tuning Fork

    本帖最后由 Jackie12 2020-7-13 15:35 编辑 Tuning fork音叉晶振,也叫圆柱晶振,是石英晶体谐振器产品中出现最早,应用最广的系列之一,最常见的频率
    发表于 07-13 15:33

    DM365ImageTuningTooll里面的NF2 Tuning Tool模块调试图像滤波怎么减少拖影?

    Hi TI现在尝试使用 DM365ImageTuningTooll里面的NF2 Tuning Tool模块调试图像滤波的问题。我是这样的,使能了tnf滤波,程序调用默认的滤波参数,达不到理想的效果
    发表于 08-14 08:28

    请问采用开关电容进行tuning,精度上可行吗?

    小弟最近要设计一块滤波器电路,采用的是Gm_C结构,是第一次接触这类电路。那么问题来了我采用开关电容进行tuning,精度上可行吗?还有最近看论文,很多人的设计步骤是这样的,先用filter
    发表于 06-24 07:49

    Antenna Tuning Approach Aids C

    and emerging technologies for efficient antenna tuning in wireless handset devices.
    发表于 02-25 23:36 24次下载

    Tuning the MAX2009/MAX2010 RF

    Tuning the MAX2009/MAX2010 RF Predistorters for Optimal Performance Abstract: Linear
    发表于 10-03 08:01 1288次阅读
    <b class='flag-5'>Tuning</b> the MAX2009/MAX2010 RF

    电子管的Tuning Indicator——调谐指示管

    电子管的Tuning Indicator——调谐指示管 精密的测量仪器和高级的通信机所采用的指示器都是采用动圈电表,但是动圈电表的价格一直比较昂贵。为了在广泛应用的收音机
    发表于 11-10 10:35 2875次阅读

    Hand-Tuning Loops and Control Code on the TMS320C6000

    Hand-Tuning Loops and Control Code on the TMS320C6000
    发表于 08-08 18:27 15次下载

    Prompt范式你们了解多少

    Prompt-tuning-The Power of Scale for Parameter-Efficient Prompt Tuning 自动化Prompt
    的头像 发表于 09-10 10:22 2623次阅读
    <b class='flag-5'>Prompt</b>范式你们了解多少

    基于预训练视觉-语言模型的跨模态Prompt-Tuning

    论文:CPT:Colorful Prompt Tuning for Pre-Training Vision-Language Models 状态:Work in Progress 单位:清华大学
    的头像 发表于 10-09 15:10 3143次阅读
    基于预训练视觉-语言模型的跨模态<b class='flag-5'>Prompt-Tuning</b>

    如何更高效地使用预训练语言模型

    本文对任务低维本征子空间的探索是基于 prompt tuning, 而不是fine-tuning。原因是预训练模型的参数实在是太多了,很难找到这么多参数的低维本征子空间。作者基于之前的工作提出了一个
    的头像 发表于 07-08 11:28 1177次阅读

    新版Audio tuning音频工具使用指引

    1.MT6739,MT6750,MT6755,MT6763,MT6765 平台都需要使用新版的音频调试工具才可以调试音频。 2.手机的软件版本需要是工程版本的。 3.手机开机后,插上 USB,然后打开 Audio tuning tool,点击连接。
    发表于 07-22 16:56 0次下载