BERT和GPT3结合模板设计,释放语言模型潜能

举报
Cheri Chen 发表于 2021/04/23 16:41:11 2021/04/23
【摘要】 Pattern-Exploiting Training(PET)的方法通过人工构建的模版与BERT的MLM模型结合,能够起到非常好的零样本、小样本乃至半监督学习效果。《GPT Understands, Too》提出了名为P-tuning的方法,成功地实现了模版的自动构建,通过模版从语言模型中抽取知识,完成零样本、小样本等学习任务。

预训练模型(Pre-trained Models,PTMs)的出现将NLP带入了一个全新时代。其中主要包括以下三类:

  1. 单向特征表示的自回归预训练语言模型,统称为单向模型: ELMO/ULMFiT/SiATL/GPT1.0/GPT2.0;
  2. 双向特征表示的自编码预训练语言模型,统称为BERT系列模型:(BERT/MASS/UNILM/ERNIE1.0/ERNIE(THU)/MTDNN/ERNIE2.0/SpanBERT/RoBERTa)
  3. 双向特征表示的自回归预训练语言模型:XLNet;

image.png

BERT的MLM模型
2018年底,谷歌AI团队新发布的BERT模型,在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:全部两个衡量指标上全面超越人类!并且还在11种不同NLP测试中创出最佳成绩,包括将GLUE基准推至80.4%(绝对改进7.6%),MultiNLI准确度达到86.7% (绝对改进率5.6%)等。BERT突破了以往预训练表示的局限,提出一种新的预训练目标:遮蔽语言模型(masked language model,MLM),来克服标准语言模型的单向性。

MLM,可以翻译为“掩码语言模型”,实际上就是一个完形填空任务,随机Mask掉文本中的某些字词,然后要模型去预测被Mask的字词,示意图如下:
image.png

与从左到右的语言模型预训练不同,MLM 目标允许表征融合左右两侧的语境,从而预训练一个深度双向 Transformer。其中被Mask掉的部分,可以是直接随机选择的Token,也可以是随机选择连续的能组成一整个词的Token,后者称为WWM(Whole Word Masking)。

很长一段时间,MLM模型仅在BERT的预训练任务中起到了作用,一些开源的模型干脆没保留MLM部分的权重,比如brightmart版和clue版的RoBERTa。随着研究的深入,陆续有文章指出MLM可以作为一般的生成模型进行应用。

MLM模型与pattern设计
将MLM模型用于自然语言处理任务,给任务一个文本描述,然后转换为完形填空问题。

  • 短文本分类任务:

    下面报导一则______新闻。八个月了,终于又能在赛场上看到女排姑娘们了。
    

这样我们就将新闻主题分类也转换为完形填空问题了,一个好的MLM模型应当能预测出“体育”二字来。

  • 推理任务:

还有一些简单的推理任务也可以做这样的转换,常见的是给定两个句子,判断这两个句子是否相容,比如“我去了北京”跟“我去了上海”就是矛盾的,“我去了北京”跟“我在天安门广场”是相容的,常见的做法就是将两个句子拼接起来输入到模型做,作为一个二分类任务。如果要转换为完形填空,那该怎么构造呢?一种比较自然的构建方式是:

  我去了北京?______,我去了上海。

  我去了北京?______,我在天安门广场。

其中空位之处的候选词为{是的,不是}。

上述的转化就是给输入的文本增加一个前缀或者后缀描述,并且Mask掉某些Token,转换为完形填空问题,这样的转换在原论文中称为Pattern,这个转换要尽可能与原来的句子组成一句自然的话,不能过于生硬,因为预训练的MLM模型就是在自然语言上进行的。显然同一个问题可以有很多不同的Pattern,比如情感分类的例子,描述可以放最后,变成“这趟北京之旅我感觉很不错。____满意。”;也可以多加几个字,比如“觉得如何?____满意。这趟北京之旅我感觉很不错。”。

Pattern-Exploiting Training(PET)

基于上述内容,我们可以发现,同一个任务可以有多种不同的Pattern。不同的pattern设定对模型的影响很大。原论文是这样处理的:

1、对于每种Pattern,单独用训练集Finetune一个MLM模型出来;

2、然后将不同Pattern对应的模型进行集成,得到融合模型;

3、用融合模型预测未标注数据的伪标签;

4、用伪标签数据Finetune一个常规的(非MLM的)模型。

P-tuning:自动搜索连续空间中的 pattern

人工设计表现最佳的 pattern 无异于大海捞针,通常需要异常庞大的验证集。在很多情况下,有效的pattern工程意味着过拟合测试集。而且,这很容易导致对抗 prompt 的产生,进而导致模型性能大幅下降。《GPT Understands, Too》的论文提出了一种名为 P-tuning 的新方法来自动搜索连续空间中的 prompt,以提高 GPT 模型的自然语言理解能力。实验结果表明,利用 P-tuning 方法,GPT 的自然语言能力可以匹敌 BERT。而且,P-tuning 还可以提高 BERT 在 few-shot 和监督场景下的性能。
image.png

P-tuning考虑了如下形式的模版:
image.png

P-tuning直接使用[unused*]的token来构建模版,[u1]~[u6]代表BERT词表里边的[unused1]~[unused6],也就是用几个从未见过的token来构成模板,这里的token数目是一个超参数,放在前面还是后面也可以调整。为了让“模版”发挥作用,我们用标注数据来求出这个模板。

此外,在上面的例子中,目标token如“很”、“体育”是认为选定的,那么它们可不可以也用[unused*]的token代替呢?答案是可以,但也分两种情况考虑:1、在标注数据比较少的时候,人工来选定适当的目标token效果往往更好些;2、在标注数据很充足的情况下,目标token用[unused*]效果更好些,因为这时候模型的优化空间更大一些。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。