ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【论文阅读】ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators[ICLR2020]

2021-08-01 18:03:30  阅读:244  来源: 互联网

标签:Pre Discriminators training 训练 BERT 模型 生成器 鉴别器 ELECTRA


论文地址:https://arxiv.org/pdf/2003.10555.pdf

预训练模型及代码地址(Tensorflow):https://github.com/google-research/electra

文章后半部分有些翻译过来还是有些模糊,谨慎阅读!

ABSTRACT

蒙面语言建模(MLM)预训练方法(如BERT)通过使用[MASK]替换一些标记来破坏输入,然后训练模型以重建原始标记the original tokens。虽然它们在转移到下游NLP任务时会产生良好的结果,但它们通常需要大量的计算才能有效。作为替代方案,我们提出了一种更有效的样本预训练任务,称为替换令牌检测replaced token detection。我们的方法不是屏蔽输入,而是用从小型发电机网络中采样的合理替代物替换一些令牌,从而破坏输入our approach corrupts it by replacing some tokens with plausible alternatives sampled from a small generator network。然后,我们训练一个判别模型,预测损坏输入中的每个令牌token是否被生成器样本替换,而不是训练一个预测损坏令牌原始身份的模型instead of training a model that predicts the original identities of the corrupted tokens。彻底的实验表明,这种新的训练前任务比MLM更有效,因为任务是在所有输入标记tokens上定义的,而不仅仅是被屏蔽的小子集。因此,在模型大小、数据和计算量相同的情况下,我们的方法学习到的上下文表示大大优于BERT学习到的上下文表示。小型模型的效果尤其强劲;例如,我们在一个GPU上训练一个模型4天,在GLUE自然语言理解基准测试中,该模型的性能优于GPT(GPT使用30倍以上的计算进行训练)。我们的方法在规模上也运行良好,其性能与RoBERTa和XLNet相当,但使用的计算量不到其计算量的1/4,并且在使用相同计算量时优于它们。

1 INTRODUCTION

作为替代方案,我们提出替换令牌检测,这是一项预训练任务,在该任务中,模型学习区分真实输入令牌和看似合理但综合生成的替换。我们的方法不是掩蔽,而是将一些令牌替换为来自提议分发from a proposal distribution的样本,这通常是小型掩蔽语言模型的输出,从而破坏输入。此损坏过程解决了BERT中的不匹配问题(尽管不在XLNet中),即网络在预训练期间看到人工[MASK]令牌,但在下游任务上进行微调时却看不到【BERT在Dev微调时与原来任务不一样也是挺操蛋的】。然后,我们将网络预训练为一个鉴别器,用于预测每个令牌是原始令牌还是替换令牌。相比之下,MLM将网络训练成一个生成器,预测被破坏令牌的原始身份。我们的区分性任务的一个关键优势是,模型从所有输入标记中学习,而不仅仅是小的屏蔽子集,这使得它的计算效率更高。尽管我们的方法让人联想到训练GAN的鉴别器,但我们的方法并不是对抗性的,因为由于将GAN应用于文本的困难,产生损坏令牌的生成器以最大可能性进行训练(Caccia et al.,2018)。

我们将我们的方法称为ELECTRA“有效学习准确分类tokens替换的编码器Efficiently Learning an Encoder that Classifies Token Replacements Accurately”。与之前的工作一样,我们将其应用于预训练Transformer文本编码器(Vaswani et al.,2017),可对下游任务进行微调。通过一系列的烧蚀,我们发现从所有的输入位置学习使得ELECTRA的训练速度比BERT快得多。我们还表明,ELECTRA经过全面培训后,在下游任务上获得了更高的准确性。

大多数当前的预训练方法需要大量的计算才能有效,这引起了人们对其成本和可访问性的关注。由于使用更多计算的预训练几乎总是导致更好的下游精度,我们认为预训练方法的一个重要考虑因素应该是计算效率以及绝对下游性能。从这个观点出发,我们训练各种尺寸的ELECTRA模型,并评估其下游性能与计算需求。特别是,我们在GLUE自然语言理解基准(Wang等人,2019年)和SQuAD基准(Rajpurkar等人,2016年)上进行了实验。在相同的模型大小、数据和计算条件下,ELECTRA的性能明显优于基于MLM的方法,如BERT和XLNet(见图1)。例如,我们构建了一个ELECTRA小型模型,该模型可以在4天内在1个GPU上进行训练[它具有1/20的参数,需要1/135的训练前计算]。 ELECTRA-Small在GLUE上的表现优于一个相对较小的BERT模型5个点,甚至优于更大的GPT模型(Radford et al.,2018)。我们的方法在大规模情况下也能很好地工作,我们训练的ELECTRA大型模型的性能与RoBERTa(Liu等人,2019)和XLNet(Y ang等人,2019)相当,尽管参数较少,并且使用1/4的计算进行训练。ELECTRA-Large的训练进一步形成了一个更强大的模型,在GLUE方面超过了ALBERT(Lan et al.,2019),为SQuAD 2.0创造了一个新的先进水平。综上所述,我们的研究结果表明,与现有的生成式语言表征学习方法相比,区分真实数据和挑战性负样本的区分任务具有更高的计算效率和参数效率。

2 METHOD

我们首先描述了替换token检测预训练任务;请参见图2以获取概述。我们在第3.2节中建议并评估了该方法的几种建模改进。

替换令牌检测概述。生成器可以是在令牌上生成输出分布的任何模型,但我们通常使用与鉴别器联合训练的小型屏蔽语言模型。虽然模型的结构类似于GAN,但由于GAN应用于文本的困难,我们以最大似然而不是逆向的方式训练生成器。在预训练之后,我们扔掉生成器,只对下游任务中的鉴别器(ELECTRA模型)进行微调。

我们的方法训练两个神经网络,一个生成器$G$和一个鉴别器$D$。每一个主要由编码器(例如,Transformer Network)组成,该编码器将输入标记$x=[x_1,…,x_n]$上的序列映射为上下文化向量表示$h(x)=[h_1,…,h_n]$的序列。对于给定位置$t$(在我们的情况下,仅在$x_t=[MASK]$的位置),生成器输出生成具有$softmax$层的特定令牌$x_t$的概率:

 $p_G(x_t|x)=\frac{exp(e(x_t)^Th_G(x)_t)}{\sum_{x^{'}}exp(e(x^{'})^Th_G(x)_t)}$

where $e$ denotes token embeddings. For a given position $t$, the discriminator predicts whether the token $x_t$ is “real,” i.e., that it comes from the data rather than the generator distribution, with a sigmoid output layer:

$D(x,t)=sigmoid(w^Th_D(x)_t)$

The generator is trained to perform masked language modeling (MLM). Given an input $x = [x_1, x_2, ..., x_n]$, MLM first select a random set of positions (integers between 1 and $n$) to mask out $m = [m_1, ..., m_k]$.The tokens in the selected positions are replaced with a [MASK] token: we denote this as $x^{masked}= REPLACE(x,m,[MASK])$. 生成器然后学习预测被屏蔽令牌的原始身份。对鉴别器进行训练,以区分数据中的标记与已被生成器样本替换的标记。More specifically, we create a corrupted example $x^{corrupt}$ by replacing the masked-out tokens with generator samples and train the discriminator to predict which tokens in $x^{corrupt}$ match the original input $x$. Formally, model inputs are constructed according to

$m_i$~unif{1,n} for i to k   $x^{masked}=REPLACE(x,m,[MASK])$

$\hat{x}_i$~$p_G(x_i|x^{masked})$ for i $\in$ m  $x^{corrupt}=REPLACE(x,m,\hat{x})$

and the loss functions are

$\cal{L}_{MLM}(x,\theta_G)=E(\sum_{i\in m}-logp_G(x_i|x^{masked}))$

$\cal{L}_{Disc}(x,\theta_D)=E(\sum_{t=1}^n-\cal{I}(x_t^{corrupt}=x_t)logD(x^{corrupt},t)-\cal{I}(x_t^{corrput}\neq x_t)log(1-D(x^{corrupt},t)))$

虽然与GAN的训练目标相似,但有几个关键区别。首先,如果生成器碰巧生成了正确的令牌,则该令牌被视为“真实”而不是“虚假”;我们发现这个公式可以适度改善下游任务的结果。更重要的是,生成器是用最大似然法进行训练的,而不是通过对抗性训练来愚弄鉴别器。对抗性地训练生成器是具有挑战性的,因为不可能通过生成器的采样进行反向传播。尽管我们通过使用强化学习来训练生成器来规避这个问题(见附录F),但这比最大似然训练效果差。最后,我们不向发生器提供噪声矢量作为输入,这是典型的GAN。

We minimize the combined loss

$min_{\theta_G,\theta_D} \sum_{x\in X}\cal{L}_{MLM}(x,\theta_G)+\lambda \cal{L}_{Disc}(x,\theta_D)$

在一个巨大的原始文本语料库$X$上。我们用一个样本来近似估计损失中的预期值。我们不会通过生成器反向传播鉴别器loss值(事实上,由于采样步骤,我们不能)。在预训练之后,我们扔掉生成器,并对下游任务中的鉴别器进行微调。

3 EXPERIMENTS

3.1 EXPERIMENTAL SETUP

评估标准:GLUE,SQuAD(Stanford Question Answering dataset)

评估指标:evaluation metrics of Exact-Match (EM) and F1 scores

对于大多数实验,我们使用与BERT相同的数据进行预训练,该数据由来自维基百科和图书语料库Wikipedia and BooksCorpus 的33亿令牌组成(Zhu等人,2015)。然而,对于我们的large模型,我们对XLNet(Y ang等人,2019年)使用的数据进行了预训练,该模型通过包括来自ClueWeb(Callan等人,2009年)、CommonCrawl和Gigaword(Parker等人,2011年)的数据,将BERT数据集扩展到33B令牌。所有的预训练和评估都是以英语数据为基础的,尽管我们认为将来将我们的方法应用于多语言数据会很有趣。

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

3.2 MODEL EXTENSIONS

Weight Sharing

我们建议通过在生成器和鉴别器之间共享权重来提高预训练的效率。如果生成器和鉴别器大小相同,则所有transformer weights都可以捆绑。然而,我们发现使用小型生成器更有效,在这种情况下,我们只共享生成器和鉴别器的嵌入(令牌和位置嵌入)。在这种情况下,我们使用embedding大小的鉴别器的隐藏状态[We add linear layers to the generator to project the embeddings into generator-hidden-sized representations.]。生成器的“输入”和“输出”token embedding始终与BERT中的标记嵌入相同。

当生成器与鉴别器大小相同时,我们比较权重绑定策略weight tying strategies。我们训练这些模型500k步。GLUE得分为83.6,GLUE scores are 83.6 for no weight tying,捆绑标记嵌入的84.3,84.3 for tying token embeddings, 捆绑所有重量的84.4,84.4 for tying all weights。我们假设ELECTRA 受益于绑定令牌嵌入tied token embeddings因为蒙面语言建模尤为有效地学习这些表示: 虽然鉴别器只更新输入中存在的标记或由生成器采样的tokens,但生成器在词汇表上的softmax稠密地更新所有标记嵌入while the discriminator only updates tokens that are present in the input or are sampled by the generator, the generator’s softmax over the vocabulary densely updates all token embeddings。另一方面,将所有编码器权重捆绑在一起几乎没有带来什么改进,同时产生了要求生成器和鉴别器大小相同的显著缺点。基于这些发现,我们在本文中使用捆绑嵌入进行进一步的实验。

Smaller Generators

如果生成器和鉴别器的大小相同,训练ELECTRA每一步所需的计算量大约是仅使用蒙面语言建模进行训练所需的两倍。我们建议使用较小的生成器来降低该系数。具体来说,我们通过减小层的大小,同时保持其他超参数不变,使模型更小。我们还探讨了如何使用一个非常简单的“unigram”生成器,根据训练语料库中的假标记频率对其进行采样。不同大小的生成器和鉴别器的GLUE分数如图3左侧所示。所有模型都针对500k步骤进行训练,这使得较小的生成器在计算方面处于劣势,因为它们每个训练步骤需要较少的计算。然而,我们发现模型在1/4-1/2大小的鉴别器上工作得最好。我们推测,对鉴别器来说,拥有太强的生成器可能会带来太大的挑战,使其无法有效地学习。特别地,鉴别器可能必须使用其许多参数来建模生成器,而不是实际的数据分布。本文中的进一步实验使用了针对给定鉴别器大小找到的最佳生成器大小。

左:不同生成器/鉴别器大小(隐藏单元数)的粘合分数。有趣的是,使用一个比鉴别器小的生成器可以改善结果。右:不同训练算法的比较。由于我们关注的是效率,x轴显示的是FLOPs,而不是训练步数(例如,ELECTRA训练的步数比BERT少,因为它包括生成器)。

Training Algorithms

最后,我们探讨了ELECTRA的其他训练算法,尽管这些算法最终并没有改善结果。建议的训练目标是联合训练生成器和鉴别器。我们尝试使用以下两个阶段的培训程序:

1.Train only the generator with $\cal{L}_{MLM}$ for $n$ steps.

2. Initialize the weights of the discriminator with the weights of the generator. Then train the discriminator with $\cal{L}_{Disc}$ for $n$ steps, keeping the generator’s weights frozen.

请注意,此过程中的权重初始化要求生成器和鉴别器具有相同的大小。我们发现,如果没有权重初始化,鉴别器有时会在大多数类之外完全无法学习,这可能是因为生成器的启动比鉴别器早得多。另一方面,联合训练自然为鉴别器提供了一个课程,在这个课程中,生成器开始时很弱,但在整个训练过程中变得更好。我们还探索了如何像在GAN中一样对生成器进行对抗性训练,使用强化学习来适应生成器采样的离散操作。详见附录F。

结果如图3右侧所示。在两阶段训练中,下游任务绩效在从生成性目标切换到区别性目标后显著提高,但最终不会超过联合训练。尽管仍优于BERT,但我们发现对抗性训练不如最大似然训练。进一步分析表明,这种差距是由对抗性训练的两个问题造成的。首先,敌对生成器在屏蔽语言建模方面更差;蒙面语言建模的准确率为58%,而MLE训练的准确率为65%。我们认为,当样本空间较大时,文本强化的工作效率较低,这主要是由于学习样本空间较大导致的。其次,经过逆向训练的生成器生成低熵输出分布,其中大部分概率质量位于单个标记上,这意味着生成器样本中没有太多多样性。这两个问题都在先前工作的GANs文本中观察到(Caccia et al.,2018)。

3.3 SMALL MODELS

作为这项工作的目标是提高预训练的效率,我们开发了一个可以在单个GPU上快速训练的小模型。从BERT-base超参数开始,我们缩短了序列长度(从512到128),减少了批大小(从256到128),减少了模型的隐藏维度大小(从768到256),并使用了更小的令牌嵌入(从768到128)。为了提供公平的比较,我们还使用相同的超参数训练了一个小模型。我们将BERT-Small训练1.5M步,因此它使用与ELECTRA-Small相同的训练FLOPs(每秒浮点计算(floating-point operations per second)),ELECTRA-Small训练1M步[ELECTRA每一步需要更多的FLOPs,因为它由生成器和鉴别器组成]。除了BERT,我们还比较了基于语言建模的两种资源密集度较低的预训练方法:ELMo(Peters et al,2018)和GPT(Radford et al。,2018)。我们还展示了与BERT- base相当的基础尺寸ELECTRA模型的结果。

结果如表1所示。有关其他结果,请参见附录D,包括使用更多计算机训练的更强的small-size和small-size模型。ELECTRA-Small因其尺寸而表现出色,与使用大量计算和参数的其他方法相比,它的GLUE分数更高。例如,它的得分比一个可比的BERT小模型高5分,甚至比更大的GPT模型更高。ELECTRA-Small的训练主要是为了收敛,模型训练的时间甚至更少(只有6小时),仍然可以实现合理的性能。而从经过预训练的大型Transformer中提取的小型模型也可以获得良好的GLUE分数(Sun等人,2019b;Jiao等人,2019),这些模型首先需要花费大量的计算来预先训练更大的教师模型。结果还表明,中等尺寸的ELECTRA具有强度;我们的base-sized ELECTRA模型大大优于BERT-base,甚至优于BERT-Large(获得84.0分)。我们希望ELECTRA能够以相对较少的计算量获得强大的结果,这将扩大在NLP中开发和应用预先训练的模型的可访问性。

3.4 LARGE MODELS

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

GLUE-dev装置的结果如表2所示。ELECTRA-400K的性能与RoBERTa和XLNet相当。然而,训练ELECTRA-400K和训练RoBERTa和XLNet一样,只需不到计算量的1/4,这表明ELECTRA的样本效率提高在很大程度上是有效的。对ELECTRA进行更长时间的训练(ELECTRA-1.75米)会产生一种模型,该模型在大多数GLUE任务上的得分都超过他们,同时仍然需要较少的训练前计算。令人惊讶的是,我们的基线BERT模型得分明显低于RoBERTa-100K,这表明我们的模型可能受益于更多的超参数调整或使用RoBERTa训练数据。ELECTRA的收益保持在GLUE测试集上(见表3),尽管由于模型采用了额外的技巧(见附录B),这些比较不是一一对应的。

表4显示了SQuAD的结果。与GLUE结果一致,在相同的计算资源下,ELECTRA的得分优于基于蒙面语言建模的方法。例如,ELECTRA-400K的性能优于RoBERTa-100k和我们的BERT基线,后者使用了相似数量的训练前计算。ELECTRA-400K的性能也与RoBERTa-500K相当,尽管使用的计算量不足四分之一。毫不奇怪,训练ELECTRA的时间更长了,成绩也得到了进一步提高:ELECTRA-1.75M的成绩比以前的SQuAD 2.0的成绩还要高。ELECTRA-Base也产生了强大的结果,得分大大优于BERT- base和XLNet-Base,根据大多数指标,甚至超过BERT-Large。ELECTRA在SQuAD2.0的表现通常比SQuAD 1.1好。也许替代token检测(该模型将真实代币与貌似虚假的代币区分开来)特别适用于2.0班的可回答性分类,在该分类中,该模型必须区分可回答的问题与不可回答的虚假问题。

3.5 EFFICIENCY ANALYSIS

我们认为,在一小部分标记上设定训练目标会使蒙面语言建模效率低下。然而,情况并非完全如此。毕竟,该模型仍然会收到大量的输入令牌,尽管它只预测少量的屏蔽令牌。为了更好地理解ELECTRA的收益来自何方,我们比较了一系列旨在成为BERT和ELECTRA之间“垫脚石”的其他预训练目标。

ELECTRA 15%:该模型与ELECTRA相同,不同之处在于鉴别器loss仅来自15%被屏蔽的令牌。换言之,鉴别器loss $\cal{L}_{disc}$ 之和等于$i\in m$而不是从1到$n$。

Replace MLM:该目标与蒙面语言建模相同,只是没有用[MASK]替换蒙面标记,而是用生成器模型中的标记替换它们。这一目标测试了ELECTRA的收益在多大程度上来自于解决在预训练期间(而非微调期间)将模型暴露于[MASK]标记的差异。

All-Tokens MLM:与Replace MLM一样,用生成器示例替换屏蔽的token。此外,该模型预测输入中所有令牌的身份,而不仅仅是被屏蔽的令牌。我们发现,使用显式复制机制训练该模型可以改善结果,该机制使用sigmoid层为每个令牌输出复制概率copy probability $D$。模型的输出分布将$D$权重加在输入令牌上加$1− D$乘以MLM softmax的输出。该模型实质上是BERT和ELECTRA的组合。请注意,如果不替换生成器,模型将很容易学会从词汇表中预测[MASK]标记,并复制其他标记的输入。

结果如表5所示。首先,我们发现ELECTRA从定义所有输入tokens的loss中获益匪浅,而不仅仅是一个子集:ELECTRA 15%的性能比ELECTRA差得多。其次,我们发现,由于[MASK]令牌的预训练微调不匹配,BERT性能受到轻微损害,因为Replace MLM的性能略优于BERT。我们注意到,BERT(包括我们的实现)已经包含了一个技巧来帮助解决预训练/微调差异:MASK tokens在10%的时间内被随机令牌替换,并且在10%的时间内保持不变。然而,我们的结果表明,这些简单的启发式方法不足以完全解决这个问题。最后,我们发现All-Tokens MLM,即对所有tokens而不是子集进行预测的生成模型,缩小了BERT和ELECTRA之间的大部分差距。总的来说,这些结果表明,ELECTRA的大量改进可归因于从所有tokens中学习,而较少的改进可归因于缓解预训练微调不匹配。

ELECTRA在所有代币传销中的进步表明,ELECTRA的收益不仅仅来自更快的培训。我们通过比较不同模型尺寸的BERT和ELECTRA进一步研究了这一点(见图4,左图)。我们发现,模型越小,ELECTRA的收益越大。对小模型进行了完全收敛的训练(见图4,右图),表明ELECTRA在完全训练时获得了比BERT更高的下游精度。我们推测ELECTRA的参数效率高于BERT,因为它不必对每个位置上可能的令牌的完整分布进行建模,但我们认为需要更多的分析来完全解释ELECTRA的参数效率。

5 CONCLUSION

我们提出了replaced token detection,这是一种新的语言表征学习的自监督任务。其关键思想是训练一个文本编码器来区分输入标记和由小型生成器网络生成的高质量负样本。与蒙面语言建模相比,我们的预训练目标是更高效的计算,并在下游任务中获得更好的性能。即使使用相对较少的计算量,它也能很好地工作,我们希望这将使开发和应用预先训练好的文本编码器更容易为研究人员和实践者所使用,而他们对计算资源的访问更少。我们还希望更多的未来工作在NLP预训练将考虑效率和绝对性能,并遵循我们的努力,报告计算使用和参数计数与评估指标。


 

附录暂时不付上

 

标签:Pre,Discriminators,training,训练,BERT,模型,生成器,鉴别器,ELECTRA
来源: https://www.cnblogs.com/Harukaze/p/15086091.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有