PET(Pattern-Exploiting Training)出自《Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference》(EACL2021),是一种半监督的训练方法。

目标

​ 由于大量的language、domain和task以及人工标注数据的成本,在NLP的实际使用中,通常只有少量带标签的示例,所以few-shot是值得研究的部分;如果依然使用传统的监督学习方法,容易过拟合,效果会非常差,因为当仅有很少的样本时,仅有的文本无法让模型知道要具体如何进行分类

​ 在本文中,作者提出了Pattern-Exploiting Training(PET),一种半监督的训练方法,将一句完整的输入样本构造成完形填空的语句后再进行输入预处理模型。

先前的预训练模型

​ BERT的预训练其中一个任务是MLM,就是去预测被【MASK】掉的token,采用的是拿bert的最后一个encoder(base版本,就是第12层的encoder的输出,也即下图左图蓝色框)作为输入,然后接全连接层,做一个全词表的softmax分类(这部分就是左图的红色框)。但在fine tuning的时候,我们是把MLM任务的全连接层抛弃掉,在最后一层encoder后接新的初始化层来做具体的下游任务。

能不能通过某些巧妙的设计,把MLM层学习到的参数也利用上?

举例:

输入一条汽车论坛的评论,输出这个评论是属于【积极】or【消极】每个类别如果只有10个labeled数据,1K条unlabeled数据。

现在通过改造输入,如下图,

model对下划线__部分进行预测。BERT预训练时MLM任务是预测整个词表,而这里把词表限定在{好,差},cross entropy交叉熵损失训练模型。预测时,假如预测出好,即这个样例预测label就为积极,预测为差,这个样例就是消极。

「BERT预训练时的MLM层的参数能利用上」。而且「即使model没有进行fine tunning,这个model其实就会含有一定的准确率

参数说明

Pattern-Verbalizer-Pair

定义函数P(pattern):输入x,输出包含掩码标记的句子或短语,使得输出可以被看作是一个完形填空问题。可以理解为“模板构造”。输入x=“Best pizza ever!” P(x)="Best pizza ever! It was___.” P ( X )表示将 X 转化为带有[MASK]的phrase

映射V(verbalizer):将PLM预测标签映射为词表中的一个单词。比如预测结果为负向标签0,将0映射为单词“bad”,可以理解为“答案映射”的逆过程。

M 表示一个预训练语言模型

词汇表记做 V

[MASK](原文作者用下划线表示)_

L表示目标任务 A的所有标签集合

T表示标签数据集

D表示无标签数据集(往往比T大很多)

任务 A 的输入记做 X = ( s 1 , s 2 , . . . , s k ) 。其中 s i 表示一个句子。如果 k = 2,则输入的 X 是两个句子

PET的训练与推理

​ 定义一个 M ( w ∣ Z ) 表示给定带有一个[MASK]标记的序列 Z,语言模型可以在该[MASK]位置填入词 w ∈ L 的得分,其次通过softmax操作定义概率分布:

​ 通过计算真实标签和q之间的cross-entropy得到损失。将整个训练集的损失总和即为该PVP在模型M上的损失。

Auxilliary Language Modeling

作者在这里引入无标签数据一起来训练MLM模型

这里的[MASK]可以采用BERT的方法,随机对句子的15%token进行【MASK】。

​ 作者发现,由于这是在非常少的样本集合 T 上进行训练,可能会导致灾难性遗忘,因此作者引入预训练模型的loss作为辅助损失(Auxiliary MLM loss),两个损失通过加权方式结合。

作者根据先前的工作,取了一个经验值 α = 1 0 − 4 。

评价PVP定义的性能

​ 作者采用的方法是知识蒸馏。选取20个labeled数据训练4个PVP模型,然后拿这四个PVP模型对1K条unlabeled数据进行预测,预测的结果用下式进行平均。

Uniform:所有PVP权重为1
Weighted:PVP权重设置为label数据集训练上的准确率

经过这样处理后,噪声减少了,利用多个PVP平均的思想把某些本来单个PVP预测偏差比较大的进行平均后修正。

总结流程

•第一步:先定义PVPs,然后对每个PVP用labeled数据通过M进行单独的训练,该步可以加入上面提到的Auxiliary Language Modeling一起训练;

•第二步:用训练好的PVPs,对unlabled数据进行预测,并知识蒸馏,得到大量的soft label;

•第三步:用第二步得到的带有soft label的data,用传统的fine tuning方法训练model。

从20条labeled数据扩充到1K条有带有soft label的数据,labeled数据量大大增加

iPET

​ 由于一些模式的表现(可能要比其他模式差得多),因此我们最终模型的训练集可能包含许多错误标记的示例。在每个PVP训练的过程中,互相之间是没有耦合的,就是没有互相交换信息,因此作者提出了iPET(在原始数据集中加入随机的PET模型产生的labeled example,example∈D),IPET的就是想通过迭代,不断扩充上面训练PVP的数据集。

  1. 随机从前一步的迭代中选取λ*(n-1)的模型

  2. 用选到的模型创建labeled dataset

  3. 对每个类别 l 从 选取个样本,选择的概率为每个样本获得的

  4. 将样本合并(不断用准确率高的label dataset来填充)

数据集

Yelp:任务是根据顾客的评论文本估计顾客给一家餐厅的1-5星评分

AG’s News:新闻分类数据集

Yahoo:是一个文本分类数据集。 给定一个问题A和一个答案B,必须指定十个可能的类别之一。 我们使用与AG的新闻相同的模式,但我们将P5中的“news”替换为“question”。 我们定义了一个动词,将类别1-10映射到“社会”、“科学”、“健康”、“教育”、“计算机”、“体育”、“商业”、“娱乐”、“关系”和“政治”。

MNLI:提供很多句子对,任务是找出A是否暗示B,A和B是否相互矛盾或两者都不矛盾

训练结果

消融实验

模型蒸馏

辅助语言模型

iPET迭代

总结

文章表明,为预先训练的语言模型提供任务描述可以与标准监督训练相结合。 提出的方法PET包括定义成对的完形填空问题模式和映射词,帮助利用预先训练的语言模型中包含的知识来完成下游任务。 通过用所有pattern-verbalizer来调整语言模型,并使用它们创建大型注释数据集,在这些数据集上可以训练标准分类器。 当初始训练数据量有限时,PET比标准监督训练和强半监督方法有很大的改进。
训练过程总结
•对于每个pattern,分别使用一个语言模型(PLM)在小规模的数据集上进行微调;
•集成所有的语言模型并为unlabeled数据集上进行标注,标注结果为soft-label(即每个label的概率分布);
•使用带有soft-label的数据,使用标准的classifier进行分类。

参考博客

NLP文本分类大杀器:PET范式

论文解读:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

Prompt-Tuning的鼻祖--PET相关推荐

  1. 【NLP】五万字综述!Prompt Tuning:深度解读一种新的微调范式

    作者 | 王嘉宁 整理 | NewBeeNLP https://wjn1996.blog.csdn.net/article/details/120607050 这绝对是我看过最全面细致的Prompt ...

  2. 直播活动丨BMMeetup第1期:大模型Prompt Tuning技术,8场学术报告和Poster提前下载...

    「Big Model Meetup」系列活动是由智源研究院悟道团队.青源会.清华大学计算机科学与技术系博硕论坛.中国中文信息学会青年工作委员会共同组织,智源社区提供社区支持,PaperWeekly提供 ...

  3. 线下活动丨Big Model Meetup 第1期:大模型Prompt Tuning技术,8场学术报告和Poster展示...

    「Big Model Meetup」系列活动是由智源研究院悟道团队.青源会.清华大学计算机科学与技术系博硕论坛.中国中文信息学会青年工作委员会共同组织,智源社区提供社区支持,PaperWeekly提供 ...

  4. 清华大学刘知远组:基于Prompt Tuning对低维本征任务子空间进行探索

    ©作者 | 曾伟豪 学校 | 北京邮电大学 研究方向 | 对话摘要生成 论文标题: Exploring Low-dimensional Intrinsic Task Subspace via Prom ...

  5. CPT:刷爆少样本REC任务!清华刘知远团队提出跨模态预训练Prompt Tuning

    关注公众号,发现CV技术之美 本文分享论文『CPT: Colorful Prompt Tuning for Pre-trained Vision-Language Models』,由清华刘知远团队提出 ...

  6. 清华刘知远团队巨作!Pre-trained Prompt Tuning框架,让超大模型调参变简单

    点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 机器之心报道 来自清华大学的刘知远.黄民烈等研究者提出了一个名为「PPT」的新框架.PPT=Pre-trained Prompt T ...

  7. prompt tuning

    Prompt-Tuning--深度解读一种新的微调范式 prompt tuning 整体解读 连续pattern构建论文解读整理 prompt tuning 整体解读 1级:Prompt是一种对任务的 ...

  8. P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks论文笔记

    论文链接:P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks ...

  9. The Power of Scale for Parameter-Efficient Prompt Tuning及prefix tuning与prompt tuning的区别

    1.本文贡献 (1)提出prompt tuning,并在大型语言模型领域展示其与model tuning(fine tuning)的竞争力: (2)减少了许多设计选择,显示质量和鲁棒性随着规模的增加而 ...

  10. 多模态Prompt Tuning,你到底行不行?

    作者丨霜清老人@知乎 编辑丨极市平台 https://zhuanlan.zhihu.com/p/550544232 一次关于将prompt tuning应用到生成式多模态预训练模型的尝试. 最近两个月 ...

最新文章

  1. 1.python全栈之路:python基础
  2. linux下的打包与压缩
  3. GPU高效通信算法-Ring Allreduce
  4. Spark编程指南(Python版)
  5. 网络安全泡沫是否即将破灭?
  6. 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识
  7. 22 FI配置-财务会计-定义收益留存科目(Retained Earning Account)
  8. Netty实现的一个异步Socket代码
  9. Centos开放查看端口 防火墙关闭打开
  10. Notepad++集成nasm编译器
  11. 模拟人生 4:如何在游戏中生成收藏品
  12. 机器视觉常用算法C语言实现
  13. 最新AZ自动发卡网源码
  14. PHP实现打印出库单,有没有实现过?
  15. 数据库设计说明书(GB8567——88) (转)
  16. 怎样判断计算机硬盘损坏,检测硬盘是否损坏的方法来了,这里有四种判断方法!...
  17. 程序员为何喜欢debian_程序员为何拖延以及如何停止
  18. GEE实现图像随机森林分类
  19. 如何创建dblink
  20. Nacos更改配置导致AnnotationConfigApplicationContext has been closed

热门文章

  1. 【数据库】CTE(Common Table Expression(公共表表达式))
  2. mysql 5.6物化视图_mysql实现物化视图详解及视图与物化视图区别
  3. 同是取悦用户,产品经理和研发人员可能会有不同的理解
  4. 云联惠认证时间_2018云联惠案情最新进展 检察机关正式批捕38名犯罪嫌疑人
  5. 国外巨头苹果对国内小程序厂商的无情收割——Apple Clips,苹果主推亲儿子苹果小程序
  6. HIT软件构造第五章第三节知识点总结
  7. HTML:base标签统一让a标签在新窗口打开链接
  8. c++7-2 求集合数据的均方差
  9. 股票入门技巧-----股票开户
  10. 2023高频前端面试题(含答案)