ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS

目录

摘要

1 简介

2 方法

3 实验

3.1 实验设置

3.2 MODEL EXTENSIONS

3.3 小模型

3.4 大模型

3.5 EFFICIENCY ANALYSIS

4 相关工作

结论

附录

A 预训练细节

B FINE-TUNING DETAILS

E COUNTING FLOPS

F ADVERSARIAL TRAINING

G EVALUATING ELECTRA AS A MASKED LANGUAGE MODEL

H NEGATIVE RESULTS


摘要

诸如BERT之类的Masked 语言模型(MLM,masked language modeling)预训练方法通过用[MASK]替换一些标记来破坏输入,然后训练模型以重建原始标记。尽管它们在转移到下游NLP任务时会产生良好的结果,但它们通常需要大量计算才能有效。作为替代方案,我们提出了一种更有效的样本预训练任务,称为替换令牌检测(RTD, replaced token detection)。我们的方法不是掩盖输入,而是通过使用从小型生成器网络进行可行的替代词汇的采样,来替换一些tokens来改变输入。然后,我们训练一个判别模型,该模型可以预测改变的输入中的每个token是否被生成器样本替换,而不是训练一个预测被改变的token的原始token的模型。全面的实验表明,此新的预训练任务比MLM更有效,因为该任务是在所有输入token上定义的,而不是仅被掩盖的一小部分。结果,在相同的模型大小,数据和计算条件下,通过我们的方法学习的上下文表示大大优于由BERT学习的上下文表示。小型模型的收获特别大。例如,在GLUE自然语言理解基准上,我们在一个GPU上训练了4天的模型优于GPT(使用30倍的计算能力训练)。我们的方法在规模上也能很好地发挥作用,在使用少于1/4的计算量的情况下,其性能与RoBERTa和XLNet相当,而在使用相同量的计算量时,性能要优于它们。

1 简介

当前最先进的语言表示学习方法可以看作是学习去噪自编码器(Vincent等,2008)。 他们选择未标记输入序列的一小部分(通常为15%),掩盖这些标记的身份(例如BERT; Devlin等(2019)),或者掩盖那些标记的注意力权重(例如XLNet; Yang等( 2019)),然后训练网络以恢复原始输入。 虽然由于学习双向表示而比常规语言模型预训练更有效,但是由于每个示例网络仅从15%的令牌中学习,所以MLM方法会产生大量的计算成本。

作为替代方案,我们提出了替换令牌检测(replaced token detection),这是一种预训练任务,在该任务中,模型学习区分真实输入令牌和看似合理但合成生成的替换令牌。我们的方法不是掩盖一些序列,而是用a proposal distribution(通常是小型MLM的输出)中的样本替换一些令牌,从而破坏输入。此破坏过程解决了BERT中的不匹配问题(尽管在XLNet中没有),就是在BERT中,网络在预训练期间看到人工的[MASK]token,但在对下游任务进行微调时却看不到。然后,我们将网络预先训练为一个 discriminator,它可以分辨每个令牌是原始令牌还是替换令牌。相比之下,MLM将网络训练成一个可以预测损坏tokens的原始身份的生成器。我们分类任务的一个关键优点是,该模型从所有输入token学习,而不仅仅是从小的屏蔽子集学习,从而提高了计算效率。尽管我们的方法让人想起训练GAN的 discriminator,但我们的方法并不具有对抗性,因为生成损坏tokens的生成器由于难以用maximum likelihood将GAN应用于文本(Caccia等人,2018)。

我们将方法ELECTRA称为“Efficiently Learning an Encoder that Classifies Token Replacements Accurately”。 与之前的工作一样,我们将其应用于可以对下游任务进行微调的预训练Transformer文本编码器(Vaswani等人,2017)。 通过一系列的消融,我们表明,从所有输入位置学习都会使ELECTRA的训练速度比BERT快得多。 我们还发现,ELECTRA经过充分训练,在下游任务上可以达到比BERT更高的准确性。

当前大多数的预训练方法都需要大量的算力才能有效,这引起了对其成本和可获取性(accessibility)的思考(算力太大,普通老百姓跑不起来)。由于具有更多算力的预训练几乎总是可以带来下游任务的更高的准确率,因此我们认为,预训练方法的重要考虑因素应该是计算效率以及绝对的下游任务的performance。从这个角度出发,我们训练各种大小的ELECTRA模型,并评估其下游任务的performance与算力。特别是,我们在GLUE(Wang等人,2019)和SQuAD(Rajpurkar等人,2016)上进行了实验。在相同的模型大小,数据和计算条件下,ELECTRA的性能明显优于基于BERT和XLNet的基于MLM的方法(请参见图1)。例如,我们建立了一个ELECTRA-Small模型,可以在4天之内在1个GPU上进行训练. ELECTRA-Small在GLUE上比同类的BERT模型精确度要高5个点,甚至比更大的GPT模型要好(Radford等。 ,2018)。我们的方法在大规模上也行之有效,尽管参数较少且使用了1/4,但我们训练了一个与RoBERTa(Liu等,2019)和XLNet(Yang等,2019)相当的ELECTRA-Large模型。用于训练的计算。在GLUE上训练ELECTRA-Large会进一步产生更强大的模型,该模型优于ALBERT(Lan等人,2019),并是现在SQuAD 2.0上最先进的模型。两者合计,我们的结果表明,将区分真实数据与具有挑战性的否定样本的区分性任务比现有的语言表示学习生成方法具有更高的计算效率和参数效率。
在这里插入图片描述
图一:在相同的计算预算下,替换后的token检测预训练始终优于MLM预训练。 左图是虚线框的放大视图。

2 方法

我们首先描述替换的token检测预训练任务; 概述见图2。 我们在第3.2节中建议并评估此方法的一些建模改进。
在这里插入图片描述
图二:RTD概述。 生成器可以是在token上产生输出分布的任何模型,但是我们通常使用与discriminator一起训练的小型MLM。 尽管模型的结构像GAN中一样,但是由于将GAN应用于文本的难度很大,我们训练生成器的可能性最大,而不是对抗性地训练。 经过预训练后,我们扔掉生成器,仅对下游任务微调鉴别器(ELECTRA模型)。

我们的方法训练了两个神经网络,一个生成器G和一个鉴别器D。每个神经网络主要由一个编码器(例如Transformer网络)组成,该编码器将输入标记x xx = [x 1 x_1x1​,…,x n x_nxn​]上的序列映射为一个向量化的向量表示形式h hh = [h 1 h_1h1​,…,h n h_nhn​]的序列。 对于给定位置t(在我们的情况下,仅是x t x_txt​ = [MASK]的位置),生成器输出生成带有softmax层的特定tokenx t x_txt​的概率为:
在这里插入图片描述
其中e表示token embeddings。 对于给定的位置t,鉴别器预测令牌x t x_txt​是否为“真实”,即令牌是来自原始数据而不是生成器分布,并用sigmoid层输出概率:D ( x , t ) = s i g m o i d ( w T h D ( x ) t ) D(x,t) = sigmoid(w^Th_D(x)_t)D(x,t)=sigmoid(wThD​(x)t​)

训练生成器来使用掩盖语言模型(MLM)。 给定输入x xx = [x 1 x_1x1​,…,x n x_nxn​],MLM首先选择一组随机位置(1和n之间的整数)以掩盖m mm = [m 1 m_1m1​,…,m k m_kmk​] 。 所选中的位置替换为[MASK]令牌:我们将其表示为x m a s k e d = R E P L A C E ( x , m , [ M A S K ] ) x^{masked}= REPLACE(x,m,[MASK])xmasked=REPLACE(x,m,[MASK])。 然后,生成器学习预测被屏蔽token的原始身份。 鉴别器经过训练,可以将数据中的token与已被生成器样本替换的token区分开。 更具体地说,我们通过用生成器样本替换被屏蔽的token来创建替换过的示例x c o r r u p t x^{corrupt}xcorrupt,并训练鉴别器以预测x c o r r u p t x^{corrupt}xcorrupt的token与原始输入x xx匹配。 形式上,模型输入是根据:
在这里插入图片描述
损失函数为:
在这里插入图片描述
尽管与GAN的训练目标相似,但仍存在一些关键差异。 首先,如果生成器碰巧生成了正确的令牌,则该令牌被视为“真实”而不是“伪造”; 我们发现此公式可以适度改善下游任务的结果。 更重要的是,对生成器是用 maximum likelihood来训练的,而不是通过对抗性训练来欺骗鉴别器。 对抗生成器具有挑战性,因为不可能通过生成器的采样来反向传播。尽管我们通过使用强化学习来训练生成器来尝试解决这个部分(请参阅附录F),但其效果不如maximum-likelihood训练来的好。 最后,我们没有像GAN那样为生成器提供噪声作为输入。

我们在原始文本的大型语料库X XX上最小化两者的损失函数的和:
在这里插入图片描述
我们用一个样本来估算损失的预期值。 我们不会通过生成器向后传播鉴别器损失值(事实上,由于采样步骤的缘故,我们不能这样做)。 经过预训练后,我们扔掉了生成器,并在下游任务上微调了鉴别器。

3 实验

3.1 实验设置

我们根据通用语言理解评估(GLUE)基准(Wang等,2019)和斯坦福问答(SQuAD)数据集(Rajpurkar等,2016)进行评估。GLUE包含各种各样的任务,包括 textual entailment(RTE和MNLI)question-answer entailment(QNLI),paraphrase(MRPC),question paraphrase(QQP),文本相似性(STS),情感(SST)和 linguistic acceptability(CoLA)。有关GLUE任务的更多详细信息,请参见附录C。我们的评估指标包括:STS的Spearman相关性,CoLA的Matthews相关性以及其他GLUE任务的准确性;我们通常会报告所有任务的平均分数。对于SQuAD,我们对版本1.1(其中模型选择回答问题的文本范围)和版本2.0(其中一些问题无法通过段落回答)进行评估。我们使用精确匹配(EM)和F1分数的标准评估指标。对于大多数实验,我们对与BERT相同的数据进行预训练,该数据由来自Wikipedia和BooksCorpus的33亿个 tokens组成(Zhu等人,2015)。但是,对于我们的大型模型,我们对XLNet(Yang等人,2019)所使用的数据进行了预训练,该数据通过将ClueWeb(Callan等人,2009),CommonCrawl和Gigaword(Parker等人,2011)。尽管我们认为将来将我们的方法应用于多语言数据会很有趣,但是所有的预培训和评估都基于英语数据。

我们的模型架构和大多数超参数与BERT相同。 为了在GLUE上进行微调,我们在ELECTRA的顶部添加了简单的线性分类器。 对于SQuAD,我们在ELECTRA的基础上添加了XLNet的问答模块,该模块比BERT稍微复杂一点,因为它是联合的而不是独立地预测开始和结束位置,并且为SQuAD 2.0添加了“可回答性”分类器。 我们的一些评估数据集很小,这意味着微调模型的准确性可能会随随机种子的不同而大不相同。 因此,我们为每个结果报告来自相同的预训练检查点的10次微调运行的中值。 除非另有说明,否则结果取决于开发人员。 有关更多培训详细信息和超参数值,请参见附录。

3.2 MODEL EXTENSIONS

我们通过提出和评估模型的几个扩展来改进我们的方法。 除非另有说明,否则这些实验使用与BERT-Base相同的模型大小和训练数据。

Weight Sharing

我们建议通过在生成器和鉴别器之间共享权重来提高预训练的效率。 如果生成器和鉴别器的大小相同,则所有transformer的权重都可以联系在一起。 但是,我们发现拥有一个小型生成器会更有效,在这种情况下,我们仅共享生成器和鉴别器的嵌入(both the token and positional embeddings)。 在这种情况下,我们使用鉴别器隐藏层大小的嵌入。生成器的“输入”和“输出”token嵌入始终像BERT一样tie在一起。

当生成器与鉴别器的大小相同时,我们比较权重绑定(tie)策略。 我们以50万步训练这些模型。 权重没有绑定(tie)的GLUE得分为83.6,只tie token嵌入的得分为84.3,而 tie 所有权重的得分为84.4。 我们假设ELECTRA受益于tie token嵌入,因为MLM对于学习这些表示特别有效:鉴别器仅更新输入中存在的或由生成器采样的token,而生成器在词汇表上的softmax会密集更新所有token嵌入。 另一方面,tie 所有编码器权重几乎没有改善,同时带来了要求生成器和鉴别器具有相同大小的重大缺点。 基于这些发现,本文将 tied embeddings 用于进一步的实验。

Smaller Generators

如果生成器和鉴别器的大小相同,则训练ELECTRA每步所需的计算量大约是仅使用MLM进行训练的两倍。我们建议使用较小的生成器来减少这一因素。具体来说,我们通过减小层的大小并使其他超参数保持恒定来使模型更小。我们还探索使用一个非常简单的““unigram”生成器,该生成器根据在训练集中的出现频率对进行负采样。图3的左侧显示了不同大小的生成器和鉴别器的GLUE分数。所有模型都经过了500k步的训练,这使较小的生成器在计算方面处于不利地位,因为它们每个训练步骤所需的计算量更少。尽管如此,我们发现模型与区分器大小的1 / 4-1 / 2的生成器一起使用效果最佳。我们推测,生成器太强大可能会给鉴别器带来挑战性的任务,从而阻止其有效学习。特别是,鉴别器可能必须使用其许多参数来模拟生成器,而不是实际的数据分布。本文的进一步实验将使用针对给定鉴别器尺寸找到的最佳生成器尺寸。
在这里插入图片描述
图3:左图:不同生成器/判别器大小的GLUE分数(隐藏单元数)。 有趣的是,使生成器小于鉴别器可以改善结果。 右:不同训练算法的比较。 由于我们专注于效率,因此x轴显示的是FLOPs而不是训练步数(例如,由于ELECTRA包含生成器,因此它的训练步数比BERT少)。

Training Algorithms
最后,我们探索了ELECTRA的其他训练算法,尽管这些算法最终并没有改善结果。 拟议的培训目标将联合训练生成器和鉴别器。 我们将使用以下两个阶段的训练过程进行试验:

1、仅用L M L M L_{MLM}LMLM​训练生成器n nn步。
2、用生成器的权重初始化鉴别器的权重。 然后使用L D i s c L_{Disc}LDisc​对鉴别器进行n步训练,使生成器的权重保持冻结状态。

注意,此过程中的权重初始化要求生成器和鉴别器具有相同的大小。 我们发现,如果没有进行权重初始化,则鉴别器有时将无法学习多数种类之外的其他知识,这可能是因为生成器起步时间远早于鉴别器。 另一方面,联合训练自然地为鉴别器提供了一种学习方式,其中生成器开始生成的数据很差,生成效果很弱,但在整个训练过程中变得强大起来。 我们还探索了如何像GAN中那样对抗性地训练生成器,使用强化学习来适应来自生成器的离散采样操作。 有关详细信息,请参见附录F。

结果显示在图3的右侧。在两阶段训练中,从生成目标切换到判别目标后,下游任务性能显着提高,但最终并未超过联合训练。尽管仍然优于BERT,但我们发现对抗训练的效果不如最大似然训练。进一步的分析表明,差距是由对抗训练中的两个问题引起的。首先,在MLM中,对抗性生成器更糟。在MLM中,它达到了58%的精度,而经过MLE(最大似然估计)培训达到了65%的精度。我们认为,较差的准确性主要是由于在较大的数据集上生成文本,增强学习的采样效率很差。其次,经过对抗训练的生成器会产生低熵的输出分布,其中大部分概率质量都位于单个标记上,这意味着生成器样本中的数量并不多。在以前的工作中,在GAN中已经观察到这两个问题(Caccia等人,2018)。

3.3 小模型

这项工作的目标是提高预训练的效率,我们开发了一个小型模型,可以在单个GPU上对其进行快速训练。 从BERT-Base超参数开始,我们缩短了序列长度(从512到128),将批量大小(从256减少到128),将模型的隐藏维度大小(从768减少到256),并使用了较小的令牌嵌入( (从768到128)。 为了提供公平的比较,我们还使用相同的超参数训练了BERT-Small模型。 我们训练BERT-Small 150万步,因此它使用的训练FLOP与ELECTRA-Small相同,后者训练了100万步。 除了BERT,我们还与基于语言建模的两种资源消耗较少的预训练方法进行了比较:ELMo(Peters等人,2018)和GPT(Radford等人,2018)。 我们还显示了与BERT-Base相当的基本尺寸的ELECTRA模型的结果。

结果显示在表1中。有关其他结果,请参见附录D,包括使用更多计算能力训练的更强大的小型和基础模型。考虑到其大小,ELECTRA-Small的性能非常出色,与使用大量计算和参数的其他方法相比,其GLUE得分更高。例如,与同类的BERT-Small模型相比,它的得分高5分,甚至胜过更大的GPT模型。对ELECTRA-Small的训练主要是针对拟合率,而经过训练的模型即使花费更少的时间(仅6个小时)仍然可以实现合理的性能。虽然从大型预训练transformer中提取的小型模型也可以获得良好的GLUE分数(Sun等人,2019b; Jiao等人,2019),但这些模型需要首先花费大量计算量来预训练较大的 teacher 模型。结果还证明了中等大小的ELECTRA的强大性能。我们的基本大小ELECTRA模型大大优于BERT-Base,甚至优于BERT-Large(获得84.0 GLUE得分)。我们希望ELECTRA能够以较少的计算量获得出色的结果,从而扩大在NLP中开发和应用预训练模型的accessibility(可访问性,让广大研究人员用得起)。

在这里插入图片描述
表一:GLUE开发集上的小模型比较。 BERT-Small / Base是我们的实现,并使用与ELECTRA-Small / Base相同的超参数。 推断FLOP假定为单长度128输入。 训练时间应该花一点时间,因为它们是针对不同的硬件的,有时是未优化的代码。 即使在单个GPU上进行训练,ELECTRA的性能仍然很好,比同类BERT模型得分高5 GLUE点,甚至超过了更大的GPT模型。

3.4 大模型

在当前最先进的大规模预训练的Transformers下,我们训练大型的ELECTRA模型,以测试RTD预训练任务的有效性。我们的ELECTRA-Large模型与BERT-Large大小相同,但经过了更长的培训。特别是,我们训练了一个模型,用于40万步长(ELECTRA-400K;大约是RoBERTa的预训练计算的1/4),一个模型用于1.75M步长(ELECTRA-1.75M;与RoBERTa相似的计算)。我们使用批次大小2048和XLNet预训练数据。我们注意到,尽管XLNet数据类似于用于训练RoBERTa的数据,但是比较并不完全直接。作为基准,我们使用与ELECTRA-400K相同的超参数和训练时间来训练自己的BERT-Large模型。

GLUE开发集上的结果如表2所示。ELECTRA-400K的性能与RoBERTa和XLNet相当。但是,与训练RoBERTa和XLNet一样,训练ELECTRA-400K所花费的时间不到计算的1/4,这表明ELECTRA的采样效率得到了大幅度提高。训练ELECTRA更长的时间(ELECTRA-1.75M)可以得到一个模型,该模型在大多数GLUE任务中均胜过它们,同时仍然只需要较少的预训练计算量。令人惊讶的是,我们的基线BERT模型得分明显低于RoBERTa-100K,这表明我们的模型可能会受益于更多的超参数调整或使用RoBERTa训练数据。 ELECTRA在GLUE测试集上的性能保持不变(请参阅表3),尽管由于模型采用了其他技巧(请参阅附录B),所以这些比较之间的差距较小。
在这里插入图片描述
表2:GLUE验证集上大型模型的比较。 显示了针对不同数量的预训练步骤的ELECTRA和RoBERTa,由短划线后的数字表示。 当使用少于1/4的预训练计算量时,ELECTRA的性能可与XLNet和RoBERTa媲美,而在给定的预训练计算量相似的情况下,ELECTRA的性能则优于XLNet和RoBERTa。 BERT 验证集的结果来自Clark等。 (2019)。

在这里插入图片描述
表三:大型模型的GLUE测试集结果。 下表中的模型包含其他技巧,例如通过集成来提高得分(有关详细信息,请参见附录B)。 一些模型没有QNLI分数,因为它们将QNLI视为排名任务,最近已被GLUE基准禁止。 为了与这些模型进行比较,我们报告了除GLUE排行榜得分(Score)以外的平均得分(不包括QNLI(Avg.*))。 “ ELECTRA”和“ RoBERTa”是指经过全面培训的ELECTRA-1.75M和RoBERTa-500K模型。
在这里插入图片描述
表4:非集成模型在SQuAD上的结果。

在表4中显示了SQuAD上的结果。与GLUE结果一致,在给定相同的计算资源的情况下,ELECTRA的得分要比基于MLM的方法更好。例如,ELECTRA-400K优于RoBERTa-100k和我们的BERT基线,后者使用相似数量的预训练计算。尽管使用的计算量不到1/4,但ELECTRA-400K的性能也与RoBERTa-500K相当。毫不奇怪,更长的训练FLOPSs ELECTRA可以进一步改善结果:ELECTRA-1.75M在SQuAD 2.0基准测试中得分高于以前的模型。 ELECTRA-Base也产生了出色的结果,得分大大优于BERT-Base和XLNet-Base,并且根据大多数指标甚至超过了BERT-Large。 ELECTRA在SQuAD 2.0上的性能通常优于1.1。也许RTD(模型将模型中的真实token与假的token区分开)可能特别适用于SQuAD 2.0的可应答性分类,在SQuAD 2.0中,模型必须将可回答的问题与假的无法回答的问题区分开。

3.5 EFFICIENCY ANALYSIS

我们建议将训练目标放在一小部分token上会使MLM效率低下。 但是,事实并非如此。 毕竟,即使模型仅预测少量的被屏蔽的令牌,该模型仍然会接收大量的输入token。 为了更好地了解ELECTRA的成效来自何处,我们比较了一系列其他的预训练目标,这些目标被设计为BERT和ELECTRA之间的一组“垫脚石”。

  • ELECTRA 15%:此模型与ELECTRA相同,区别在于鉴别器损失仅来自被输入掩盖的15%的令牌。 换句话说,鉴别器损失函数L D i s c L_{Disc}LDisc​中的总和超过i ∈ m i∈mi∈m,而不是从1到n nn。
  • Replace MLM:此目标与MLM相同,不同之处在于,不是用[MASK]代替掩盖的标记,而是用生成器模型中的标记代替了它们。 此目标测试了ELECTRA在解决预训练过程中有[MASK]token而fine-tuning时没有[MASK]的不匹配问题。
  • All-Tokens MLM:像在替换MLM一样,被屏蔽的token被替换为生成器样本。 此外,该模型可以预测输入中所有token的身份,而不仅仅是被掩盖的token。 我们发现使用explicit copy mechanism训练该模型的结果得到了改进,该机制使用sigmoid层为每个token输出复制概率D。
    模型的输出分布将D权重放在输入token上,再加上(1-D)乘以MLM softmax的输出(这边看不太懂)。 该模型实质上是BERT和ELECTRA的组合。 请注意,如果不替换生成器,该模型将不费吹灰之力地学习根据词汇表中的[MASK]token进行预测,并复制其他token的输入。

在这里插入图片描述
表五:计算效率实验(有关详细信息,请参见文本)。

结果显示在表5中。首先,我们发现,对所有输入token(而不只是一个子集)定义损失,ELECTRA将从中受益匪浅:ELECTRA 15%的性能比ELECTRA差得多。其次,我们发现[MASK]token的预训练与下游任务的不匹配会稍微影响BERT性能,因为Replace MLM的性能略好于BERT。我们注意到BERT(包括我们的实现)已经包含了一种技巧,以帮助改善训练前/微调的差异:被屏蔽的token在10%的时间内被替换为随机令牌,并在10%的时间内被保持不变。但是,我们的结果表明,这些简单的启发式方法不足以完全解决问题。最后,我们发现All-Tokens MLM(一种生成模型,可对所有token而不是子集进行预测)弥合了BERT和ELECTRA之间的大部分鸿沟。总体而言,这些结果表明,ELECTRA的大量改进可以归因于对所有 token 的学习,而较小的归因于缓解了预训练与下游任务的不匹配。
在这里插入图片描述
图4:左和中:不同模型大小的BERT和ELECTRA的比较。 右图:一个小的ELECTRA模型更快拟合,且准确率更高,这表明改进不仅来自更快的训练。

ELECTRA与All-Tokens MLM的改进表明,ELECTRA的有效性不仅来自 faster training。我们通过将BERT与ELECTRA比较各种模型大小来进一步研究(参见图4,左)。我们发现,随着模型变得越来越小,ELECTRA的性能会越来越好。小型模型经过充分训练以达到收敛(请参见图4,右),表明ELECTRA在经过充分训练后比BERT可获得更高的下游精度。我们推测,ELECTRA比BERT具有更高的参数效率,因为它不必对每个位置上可能的token的全部分布建模,但是我们认为需要更多的分析来完全说明ELECTRA的参数效率。

4 相关工作

NLP的自我监督预训练:自我监督学习已被用来学习单词表示(Collobert等,2011; Pennington等,2014),最近通过语言建模等目标来学习单词的上下文表示( Dai&Le,2015; Peters等,2018; Howard&Ruder,2018)。 BERT(Devlin等,2019)在屏蔽语言建模任务中对大型Transformer(Vaswani等,2017)进行了预训练。 BERT有许多扩展。例如,MASS(Song等,2019)和UniLM(Dong等,2019)通过添加自回归生成训练目标将BERT扩展到生成任务。 ERNIE(Sun等人,2019a)和SpanBERT(Joshi等人,2019)掩盖了令牌的连续序列以改善跨度表示。这个想法可能是ELECTRA的补充;我们认为让ELECTRA的生成器自动回归并添加“替换范围检测”任务会很有趣。 XLNet(Yang et al。,2019)并没有掩盖输入令牌,而是掩盖了注意权重,从而以随机顺序自动回归生成输入序列。但是,这种方法的效率与BERT相同,因为XLNet仅以这种方式生成15%的输入令牌。像ELECTRA一样,XL Net可以通过不要求[MASK]令牌来减轻BERT的训练前微调差异,尽管这尚不完全清楚,因为XLNet在训练前使用了两个“注意”流,而只使用了一个“微调”注意。最近,诸如TinyBERT(Jiao等人,2019)和MobileBERT(Sun等人,2019b)之类的模型表明BERT可以有效地提炼为更小的模型。相反,我们更多地关注预训练速度而不是推理速度,因此我们从头开始训练ELECTRA-Small。

生成对抗网络:GAN(Goodfellow等,2014)可有效生成高质量的合成数据。 Radford等。 (2016年)建议在下游任务中使用GAN的鉴别器,这与我们的方法类似。 GAN已应用于文本数据(Yu等,2017; Zhang等,2017),尽管最先进的方法仍落后于标准的最大似然训练(Caccia等,2018; Tevet等)等(2018)。尽管我们不使用对抗性学习,但我们的生成器特别让人想起MaskGAN(Fedus等人,2018),它训练生成器填充从输入中删除的令牌。

对比学习:广义上,对比学习方法将观察到的数据点与虚拟否定样本区分开。它们已应用于多种形式,包括文本(Smith&Eisner,2005),图像(Chopra等,2005)和视频(Wang&Gupta,2015; Sermanet等,2017)数据。常见的方法是学习相关数据点相似的嵌入空间(Saunshi等人,2019)或对负样本上的真实数据点进行排序的模型(Collobert等人,2011; Bordes等人,2013年)。 ELECTRA特别与噪声对比估计(NCE)有关(Gutmann&Hyvarinen,2010),该方法还训练了一个二进制分类器来区分真实数据点和虚假数据点。

Word2Vec(Mikolov等人,2013)是NLP最早的预训练方法之一,它使用对比学习。实际上,ELECTRA可以看作是带有负采样的连续词袋(CBOW)的大规模扩展版本。 CBOW还会在给定周围环境的情况下预测输入令牌,并且负采样将学习任务重新定义为关于输入令牌是否来自数据或提案分布的二进制分类任务。但是,CBOW使用 bag-of-vectors编码器,而不是 transformer,而且从unigram令牌频率导出的简单建议分布,而不是有学习能力的生成器。

结论

我们已经提出了 replaced token detection,这是一种用于语言表示学习的新的自我监督任务。 关键思想是训练文本编码器,以区分输入token与由小型生成器网络产生的高质量负样本token。 与MLM相比,我们的预训练目标具有更高的计算效率,并且可以在下游任务上实现更好的性能。 即使使用相对少量的计算,它也能很好地运行,我们希望这将使研究人员和从业人员更容易访问开发和应用经过预训练的文本编码器,而对计算资源的访问较少。 我们还希望未来在NLP预训练方面的更多工作将考虑效率以及绝对性能,并按照我们的工作报告计算使用情况和参数计数以及评估指标。

附录

A 预训练细节

以下详细信息适用于我们的ELECTRA模型和BERT基线。 我们通常使用与BERT相同的超参数。 我们将损失中鉴别目标的权重λ设置为50。我们使用动态令牌屏蔽,动态地而不是在预处理期间确定被屏蔽的位置。 同样,我们没有使用原始BERT论文中提出的下一句预测目标,因为最近的工作表明它不能提高分数(Yang等,2019; Liu等,2019)。 对于我们的ELECTRA-Large模型,我们使用较高的掩码百分比(25而不是15),因为我们注意到生成器以15%的掩码实现了高精度,从而导致替换的令牌很少。 我们从[1e-4、2e-4、3e-4、5e-4]中搜索了基本模型和小型模型的最佳学习率,并在早期从[1、10、20、50、100]中选择了λ 实验。 否则,除了第3.2节中的实验外,我们不会进行超参数调整。 表6列出了完整的超参数集。
在这里插入图片描述
表6:预训练超参数。

B FINE-TUNING DETAILS

对于大型模型,我们使用了Clark等人的超参数。 (2019)大部分。但是,在注意到RoBERTa(Liu等人,2019)使用了更多的训练epoch(最多10个而不是3个)之后,我们从[10,3]中搜索了每个任务的最佳训练纪元。对于SQuAD,我们将训练次数减少到2,以与BERT和RoBERTa保持一致。对于基本大小的模型,我们从[3e-5、5e-5、1e-4、1.5e-4]中搜索学习率,并从[0.9、0.8、0.7]中搜索分层学习率衰减,但是否则使用与大型模型相同的超参数。我们发现小型模型受益于较高的学习率,并从[1e-4、2e-4、3e-4、5e-3]中搜索了最佳模型。除了训练时间段的数量外,我们对所有任务使用相同的超参数。相反,先前对GLUE的研究(例如BERT,XLNet和RoBERTa)分别为每个任务寻找最佳的超参数。如果执行相同类型的其他超参数搜索,我们希望结果会有所改善。表7中列出了完整的超参数集。
在这里插入图片描述
与BERT一样,我们不会在WNLI GLUE任务上显示验证集结果的结果,因为即使使用标准的fine-tuning-as-classifier 方法也很难击败多数分类器。对于GLUE测试集结果,我们应用了许多GLUE排行榜提交者使用的标准技巧,包括RoBERTa(Liu等人,2019),XLNet(Yang等人,2019)和ALBERT(Lan等人,2019) )。特别的是:

  • 对于RTE和STS,我们使用中间任务训练(Phang et al。,2018),从已在MNLI上fine-tune的ELECTRA checkpoint开始。 对于RTE,我们发现将其与较低的2e-5的学习率结合起来很有帮助。
  • 对于WNLI,我们遵循Liu等人中描述的技巧。 (2019),我们使用规则提取代词的候选先行词,并训练模型对正确的先行词进行高度评分。 然而,不同于刘等。 (2019),评分功能不是基于MLM概率。 取而代之的是,我们对ELECTRA的区分符进行微调,以便在正确的先行词替换代词时为正确的先行词的标记分配高分。 例如,如果Winograd模式是“奖杯太大,无法放入行李箱”,我们将对鉴别器进行培训,以便在“奖杯无法放入手提箱中,因为 奖杯太大”时,给“奖杯”高分,但“由于箱子太大,奖杯无法放入手提箱”中的“手提箱”低分。
  • 对于每项任务,我们集成了30个模型中的10个最佳模型,它们使用不同的随机种子进行了fine-tune,但从相同的预训练检查点进行了初始化。
    尽管这些技巧确实提高了分数,但由于要进行额外的工作,需要大量的计算,并且由于不同的论文采用不同的技巧,因此结果之间的比较减少了,因此进行清晰的科学比较变得更加困难。 因此,我们还报告了ELECTRA-1.75M的结果,唯一的窍门是验证集模型的选择(十个模型中的最好),这是表8中用于报告结果的BERT设置。
    对于提交的SQuAD 2.0测试集,我们从相同的预训练检查点fine-tune了20个模型,并提交了具有最佳验证集分数的模型。
    在这里插入图片描述

E COUNTING FLOPS

我们选择根据浮点运算(FLOP)来衡量计算使用情况,因为它是与特定硬件,低级优化等无关的一种衡量方法。但是,值得注意的是,在某些情况下,抽象出硬件细节是一个缺点。 因为以硬件为中心的优化可能是模型设计的关键部分,例如加速ALBERT(Lan等人,2019)可以通过权衡来实现,从而减少TPU工作人员之间的通信开销。 我们使用了TensorFlow的FLOP计数功能,并通过手工计算检查了结果。 我们做出以下假设:

  • “运算”是数学运算,而不是机器指令。 例如,exp实际上是一个操作,就像add一样,尽管在实践中exp可能会更慢。 我们认为该假设不会实质性地改变计算估计,因为对于大多数模型,矩阵乘法主导了计算。 类似地,如果考虑融合乘加运算,我们将矩阵乘数计为2 * m * n FLOP,而不是m * n。
  • 向后传递与向前传递采用相同数量的FLOP。 这个假设并不完全正确(例如,对于softmax交叉熵损失,后向传递更快),但重要的是,前向/后向传递FLOP对于矩阵乘法实际上是相同的,这无论如何计算都是差不多的。
  • 我们假设“密集”嵌入查找(即乘以单热向量)。 实际上,稀疏嵌入查找要比固定时间慢得多。 在某些硬件加速器上,密集操作实际上比稀疏查找要快。

F ADVERSARIAL TRAINING

在这里,我们详细介绍了对抗生成器训练的尝试,而不是使用最大似然估计。 特别地,我们训练生成器G以使鉴别器损失函数L D i s c L_{Disc}LDisc​最大化。 由于我们的鉴别器与GAN的鉴别器并不完全相同(请参阅第2节中的讨论),因此该方法实际上是对抗性对比估计的一种实例(Bose等人,2018年),而不是生成对抗性训练。 由于来自生成器的离散采样,不可能通过在鉴别器上反向传播来对抗生成器(例如,在针对图像进行训练的GAN中),因此我们改用强化学习。

我们的生成器与大多数文本生成模型不同,因为它是非自回归的:预测是独立进行的。换句话说,生成器将采取同时生成所有令牌的单个大型动作,而不是采取每个动作都会生成令牌的一系列动作,其中该动作的概率会因每个令牌的生成器概率的乘积而分解。为了处理这个巨大的动作空间,我们做出以下简化的假设:判别器的预测D ( x c o r r u p t , t ) D(x^{corrupt},t)D(xcorrupt,t)仅取决于令牌x t x_txt​和不可替换的令牌{x ^ i : i ∉ m \hat{x}_i:i \notin mx^i​:i∈/​m},即不依赖于其他生成的令牌{x i : i ∈ m ∧ i = t x_i:i∈m∧i = txi​:i∈m∧i=t}。这并不是一个很糟糕的假设,因为替换了相对较少的令牌,并且在使用强化学习时大大简化了分数分配。从符号上讲,我们通过写D(x ^ t ∣ x m a s k e d \hat{x}_t|x^{masked}x^t​∣xmasked)来作为鉴别器,从而预测生成的令牌x ^ t \hat{x}_tx^t​是否等于给定被屏蔽的上下文x的原始令牌x t x_txt​(略微使用符号)来表示此假设。该假设的有用结果是,未替换标记的鉴别符得分(t∈m的D(x t ∣ x m a s k e d x_t|x^{masked}xt​∣xmasked))与p G p_GpG​无关,因为我们假设它不依赖于任何替换的标记。因此,在训练G最大化LDisc时可以忽略这些标记。在训练过程中,我们试图找到:
在这里插入图片描述
使用简化的假设,我们通过找到:
在这里插入图片描述
简而言之,简化假设使我们能够分解各个生成令牌的损失。 我们无法使用梯度上升直接找到a r g m a x θ G argmax_{θ_G}argmaxθG​​,因为不可能通过x ^ \hat{x}x^的离散采样进行反向传播。 相反,我们使用策略梯度强化学习(Williams,1992)。 特别是,我们使用REINFORCE梯度:

其中b是实现为b ( x m a s k e d , t ) = − l o g s i g m o i d ( w T h G ( x m a s k e d ) t b(x^{masked},t) = -logsigmoid(w^{T}h_G(x^{masked})_tb(xmasked,t)=−logsigmoid(wThG​(xmasked)t​的学习基准,其中h G ( x m a s k e d ) h_G(x^{masked})hG​(xmasked)是生成器的transformer编码器的输出。 用交叉熵损失训练基线,以匹配相应位置的奖励。 我们用一个样本估算期望值,并通过梯度上升学习θ G {θ_G}θG​。 尽管未收到有关生成的令牌正确的明确反馈,但我们发现对抗训练产生了相当准确的生成器(对于256隐藏大小的生成器,经过对抗训练的生成器在MLM中达到了58%的精度,而相同大小的MLE 生成器获得65%)。 但是,使用此生成器并不能比在下游任务上经过MLE训练的生成器有所改善(请参见主文件中图3的右侧)。

G EVALUATING ELECTRA AS A MASKED LANGUAGE MODEL

本节详细介绍了将ELECTRA评估为MLM的一些初步实验。 使用与主要论文略有不同的表示法,给定上下文c由带一个标记x的被掩盖的文本序列组成,则鉴别器损失可以写为:

在这里插入图片描述
找出关于D的损失的临界点表明,对于固定的生成器,最佳鉴别器为:
在这里插入图片描述
也就意味着:
在这里插入图片描述
其中a = ( 1 − p m a s k ) / p m a s k a =(1- p_{mask})/ p_{mask}a=(1−pmask​)/pmask​是每个屏蔽令牌的未屏蔽令牌的数量。我们可以通过选择a r g m a x x ∈ v o c a b argmax_{x∈vocab}argmaxx∈vocab​使用此表达式对ELECTRA作为MLM进行评估 D ( x , c ) p G ( x ∣ c ) / ( a ( 1 − D ( x , c ) ) + p G ( x ∣ c ) ) D(x,c)p_G(x | c)/(a(1 - D(x,c))+ p_G(x | c))D(x,c)pG​(x∣c)/(a(1−D(x,c))+pG​(x∣c))作为给定上下文的模型预测。实际上,选择整个词汇表非常昂贵,因此我们将argmax置于生成器的前100个预测中。10使用这种方法,我们在Wikipedia + BooksCorpus数据集上比较了ELECTRA-Base和BERT-Base。我们发现,在MLM中,BERT的表现略胜于ELECTRA(准确率分别为77.9%和75.5%)。在此评估方案下,最佳鉴别器的假设(肯定不正确)很可能会影响ELECTRA的准确性。但是,对于像BERT这样专门针对生成进行训练的模型,在生成方面表现更好,而对具有分类目标(例如,ELECTRA)的模型则更擅长于对区分性任务进行微调,也许并不奇怪。我们认为,对BERT和ELECTRA的MLM预测进行比较可能是一种有趣的方法,可以揭示出更多关于ELECTRA和BERT编码器在未来工作中的差异的信息。

H NEGATIVE RESULTS

我们简要描述了一些在最初的实验中似乎没有前景的想法:

  • 我们最初尝试通过策略性地掩盖令牌来提高BERT的效率(例如,更频繁地掩盖我们的稀有令牌,或训练模型以猜测BERT很难预测被掩盖的令牌)。 与常规BERT相比,这导致了相当小的加速。
  • 鉴于ELECTRA似乎可以从强度较低的generator中受益(在一定程度上)(请参阅第3.2节),因此我们探索了提高生成器输出softmax的temperature或禁止生成器采样正确的令牌的方法。 这些结果都没有改善。
  • 我们尝试添加句子级别的对比目标。 对于此任务,我们将20%的输入语句保持不变,而不是使用生成器对其进行干扰。 然后,我们向模型添加了一个预测头,用于预测整个输入是否损坏。 令人惊讶的是,这在下游任务上的得分略有下降。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值