ELECTRA - 比BERT更快更好的预训练模型

论文:ELECTRA: Pre-training Text Encoders As Discriminators Rather Then Generators

本文目前在ICLR 2020盲审中,前几天有审稿人发表文章对它大夸特夸,被称为19年最佳NLP预训练模型,另外,在上周的智源北京人工智能大会上,Christopher Manning对这个工作也做了详细介绍,那么,已经不用匿名了,这就是Manning大师的工作,怀着崇拜加欣喜的心情,细细学习了这篇文章,笔记如下。

摘要:虽然诸如BERT之类的掩码语言建模(MLM)预训练方法在下游NLP任务上产生了出色的结果,但它们需要大量的计算才能有效。这些方法通过用[MASK]替换一些词来改变输入,然后训练模型以重建原始词。作为替代方案,我们提出了一种更加样本有效的预训练任务,称为替换词检测。我们的方法不是掩盖输入,而是通过使用从小的生成网络采样的词替换一些输入词来改变输入。然后,我们训练一个判别模型,该模型可以预测损坏的输入中的每个词是否被生成器样本替换,而不是训练一个预测损坏的词的原始身份的模型。实验表明,这种新的预训练任务比MLM更有效,因为该模型从所有输入词中学习,而不仅仅是从被掩盖的小子集中学习。结果显示,在相同的模型大小、数据和计算条件下,通过我们的方法学习的上下文表示大大优于通过BERT和XLNet等方法学习的上下文表示,小模型的收益特别大,例如,在GLUE自然语言理解基准上,我们在一个GPU上训练了4天的模型优于GPT(使用30倍的计算能力训练)。我们的方法在规模上也能很好地发挥作用,我们和RoBERTa(当前最先进的预训练transformer)的性能相当,而使用的计算量不到它的1/4

1. 简介

当前最先进的语言表示学习方法可以看作是学习降噪自动编码,这类仅选择未标记输入序列的一小部分(通常为15%),掩盖这些标记或注意这些标记,然后训练网络以恢复原始输入的标记。 这些方法可以学习双向表示,因此比语言模型预训练更有效,但是这些掩码语言模型(MLM)方法仅从每个样本15%的词中学习,计算成本非常大。

我们提出了一个新的预训练任务replaced token detection,它的目标是学习区分输入的词。这个方法不采用mask,而是从一个建议分布中采样词来替换输入,这个过程解决了[mask]带来的预训练和fine-tune不一致的问题,然后我们训练一个判别器来预测每个词是原始词还是替换词。判别任务的一个好处是模型从输入的所有词中学习,而不是MLM中那样仅使用掩盖的词,因此计算更加有效。我们的方法很容易让人想起GAN,但其实并不是对抗学习,我们采用的是最大似然,目前GAN应用在文本领域还是有不少困难。

我们的方法称为 ELECTRA (Efficiently Learning an Encoder that Classifies Token Replacements Accurately),与之前的工作一样,我们用它来训练transformer的文本编码器,然后在下游任务上进行fine-tune。通过一系列的扩展,我们证明从所有输入序列中学习使得ELECTRA比BERT训练的更快,并且当完全训练时在下游任务上取得的效果也更好。

我们训练了不同大小的ELECTRA模型并在GLUE上评价它们的效果,发现:在相同的模型大小、数据、计算量的情况下,ELECTRA显著优于MLM类的方法,例如BERT和XLNet,详细对比如下图所示。此外,ELECTRA小模型仅需要在1块GPU训练4天即可得到,这个小模型比BERT小模型在GLUE上高5个点,甚至比更大的GPT模型效果还要好。此外,我们的方法在大规模情况下也取得了与当前最先进模型RoBERTa相当的效果,并且具有更少的参数,训练过程需要的计算不到它的1/4。我们的方法证明,区分真实数据和有挑战的负样本的判别式任务是一种更加计算有效和参数有效的语言表示学习方法。

2. 方法

本文提出的方法包括两个神经网络:一个生成器G和一个判别器D,两者都采用形如transformer的编码网络来获取输入序列x的向量表示h(x)。生成器的目标是训练成掩码语言模型,即给定输入序列x,首先按照一定的比例(通常15%)将输入中的词替换成[MASK]得到,然后通过网络得到向量表示hG(x),接着采用softmax层来为输入序列中掩盖的位置预测一个词,训练的目标函数为最大化掩盖词的似然。判别器的目标是判断输入序列每个位置的词是否被生成器替换过,如果与原始输入序列对应位置的词不相同就认为替换过。

生成器和判别器的损失函数如下:

最终的损失函数为生成器和判别器的加权和:

尽管我们的训练与GAN非常相似,但是有以下重要不同:

(1) 如果生成器生成的词恰好与输入相同,那么我们认为是没有替换过;

(2) 生成器的训练目标是最大似然,这点跟GAN的对抗训练非常不同;

(3) 我们并没有像GAN那样,给生成器应用噪声向量。

预训练结束后,我们采用判别器的来fine-tune下游任务

3. 实验

1. 模型扩展

(1) 权重共享

如果生成器和判别器采用相同的size,那么它们编码器的权重参数都可以共享,但是我们发现:采用更小的生成器,并将生成器和判别器的embeddings共享更加有效。具体地,当不采用权重共享时GLUE分数为83.6,当共享embeddings时分数为84.3,当所有参数共享时分数为84.4。考虑到所有参数共享时提升很少,但是还要求生成器和判别器的size相同,不够灵活,我们选择仅仅共享embeddings。

(2) 更小的生成器

如果生成器和判别器采用相同的size,那么总体的训练时间差不多是MLM的两倍,为了提高效率,我们尝试更小的生成器。我们在保持其他参数不变的情况下,减少生成器的layer size进行实验,同时我们还采用简单的unigram生成器作为对比,实验结果如下左图。我们发现,判别器的size越大越好(256 -> 512 -> 768),生成器的size介于判别器size的1/4-1/2时效果最佳。原因大概是太强的生成器对判别器太难了吧。

(3) 训练算法

我们对比了多种训练算法,效果如上右图:

(1) 两阶段训练方法:将联合训练的目标函数分成两步来做,首先训练生成器,然后固定生成器,并用它的参数来初始化判别器,训练判别器;

(2) 尝试GAN的对抗训练,利用强化学习来适应生成器采样的离散操作;

(3) 此外还对比了BERT。

我们发现:两阶段的训练算法在切换到第二阶段时提升明显,另外对抗训练的方法优于BERT,但是不如最大似然的联合训练。

2. 小模型

基于BERT-base的超参数,我们减少序列长度(512 -> 128),减少batch size(256 -> 128),减少隐层大小(768 -> 256),采用更小的embedding(768 -> 128),在相同算力的情况下进行模型效果对比,如下图。我们发现:ELECTRA小模型的效果比其他更多参数的模型更好,ELECTRA中等模型的效果甚至超越了BERT大模型

3. 大模型

我们的ELECTRA大模型采用BERT大模型相同的size,实验结果如下图,我们发现:ELECTRA达到了当前最先进模型RoBERTa的效果,但是训练的计算量不到它的1/4,简直是厉害!我们相信ELECTRA训练更久会有更好的结果。

4. 效率分析

为了更好地理解ELECTRA效果提升的原因在哪里,作者对比了一系列预训练方法:

(1) ELECTRA 15%:判别器在计算损失时仅考虑那些被掩盖的词(15%),除此之外都与标准的ELECTRA相同;

(2) Replace MLM:不同于MLM中用[MASK]替换掩盖的词,它用一个生成器模型预测的词来替换掩盖的词,其他的都与MLM保持一致,这是为了分析解决[MASK]在预训练和fine-tune过程不一致问题的收益有多大。

(3) All-Token MLM:与Replace MLM一样,采用生成器模型预测的词来替换掩盖的词,并且,该模型预测所有输入对应的输出,而不仅仅是掩盖的词。我们发现采用一个显式的拷贝机制,对每个词输出一个拷贝概率D,最终预测概率为拷贝概率D乘以输入,再加上 (1-D) 乘以MLM的softmax输出。这个模型结合了BERT和ELECTRA。

实验结果如下表所示,我们发现:

(1) ELECTRA 15%的效果相比ELECTRA差很多,说明ELECTRA对输入的所有词计算损失这一点收益非常大;

(2) Replace MLM效果略好于BERT,说明BERT采用[MASK]替换掩盖词会略微降低模型效果;

(3) All-Token MLM的几乎快弥补了BERT和ELECTRA之间的gap,是最接近ELECTRA效果的模型。

总的来说,ELECTRA的提升一大部分来自于从所有词中学习,一小部分来自于解决[MASK]在预训练和fine-tune过程的不一致

我们进一步对比了BERT和ELECTRA在不同模型大小的效果,如下图所示。我们发现:

(1) ELECTRA模型越小,相比BERT的提升就越明显(下图左边和中间);

(2) 模型收敛后ELECTRA效果明显优于BERT(下图右图)。

4. 总结

本文提出的ELECTRA在取得当前最先进模型相当效果的同时,计算量仅不到原来的1/4,非常有效。有效的原因一大部分来自于从所有词中学习,一小部分来自于解决[MASK]在预训练和fine-tune过程的不一致。

个人觉得,NLP预训练模型目前已经发展到了爆发期,新模型出来的节奏越来越快,非常期待更多的工作出来,对于我辈NLPer,这是一个最美好的时代,一定要跟紧节奏。

 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值