ELECTRA: P RE - TRAINING T EXT E NCODERS AS D ISCRIMINATORS R ATHER T HAN G ENERATORS
Anonymous authors
Paper under double-blind review
A BSTRACT
Masked language modeling (MLM) pre-training methods such as BERT corrupt the input by replacing some tokens with [MASK] and then train a model to reconstruct the original tokens. While effective when transferred to downstream NLP tasks, they generally require large amounts of compute to be effective.
As an alternative, we propose a more sample-efﬁcient pre-training task called replaced token detection.
Instead of masking the input, our approach corrupts it by replacing some tokens with plausible alternatives sampled from a small generator network.
Then, instead of training a model that predicts the original identities of the corrupted tokens, we train a discriminative model that predicts whether each token in the corrupted input was replaced by a generator sample or not.
Thorough experiments demonstrate this new pre-training task is more efﬁcient than MLM because the task is deﬁned over all input tokens rather than just the small subset that was masked out.
As a result, the contextual representations learned by our approach substantially outperform the ones learned by methods such as BERT and XLNet given the same model size, data, and compute.
The gains are particularly strong for small models; for example, we train a model on one GPU for 4 days that outperforms GPT (trained using 30x more compute) on the GLUE natural language understanding benchmark.
Our approach also works well at scale, where we match the performance of RoBERTa while using less than 1/4 of the compute.
I NTRODUCTION
Current state-of-the-art representation learning methods for language can be viewed as learning denoising autoencoders (Vincent et al., 2008).
They select a small subset of the unlabeled input sequence (typically 15%), mask the identities of those tokens (see BERT; Devlin et al.
(2019)) or attention to those tokens (see XLNet;
Yang et al.
, and then train the network to recover the original input.
While more effective than language-model pre-training due to learning bidirectional representations, these masked language modeling (MLM) approaches incur a substantial compute cost because the network only learns from 15% of the tokens per example.
As an alternative, we propose replaced token detection, a pre-training task in which the model learns to distinguish input tokens from plausible alternatives.
Instead of masking, our method corrupts the input by replacing some tokens with samples from a proposal distribution, which is typically the output of a small masked language model.
This corruption procedure solves a mismatch in BERT (although not in XLNet) where the network sees artiﬁcial [MASK] tokens during pre-training but not when being ﬁne-tuned on downstream tasks.
We then pre-train the network as a discriminator that predicts for every token whether it is an original or a replacement.
In contrast, MLM trains the network as a generator that predicts the original identities of the corrupted tokens.
One advantage of our discriminative task is that the model learns from all input tokens instead of just the small maskedout subset, making it more computationally efﬁcient.
Although our approach is reminiscent of training the discriminator of a GAN, our method is not “adversarial” in that the generator producing corrupted tokens is trained with maximum-likelihood due to the difﬁculty of applying GANs to text (Caccia et al., 2018).
We call our approach ELECTRA 1 for “Efﬁciently Learning an Encoder that Classiﬁes Token Replacements Accurately.”
As in prior work, we apply it to train Transformer text encoders (Vaswani
[Figure]
et al., 2017) that can be ﬁne-tuned on downstream tasks.
Through a series of ablations, we show that learning from all input tokens causes ELECTRA to train much faster than BERT.
We also show
ELECTRA achieves higher accuracy on downstream tasks when fully trained.
Most current pre-training methods require large amounts of compute to be effective, raising concerns about their cost and accessibility.
Since pre-training with more compute almost always results in better downstream accuracies, we argue an important consideration for pre-training methods should be compute efﬁciency as well as absolute downstream performance.
From this viewpoint, we train ELECTRA models of various sizes and evaluate their downstream performance vs. their compute requirement. In particular, we run experiments on the GLUE natural language understanding benchmark (Wang et al., 2019) and SQuAD question answering benchmark (Rajpurkar et al., 2016).
ELECTRA signiﬁcantly outperforms MLM-based methods such as BERT and XLNet given the same model size, data, and compute (see Figure 1).
For example, we build an ELECTRA-Small model that can be trained on 1 GPU in 4 days.
2 ELECTRA-Small outperforms a comparably small BERT model by 5 points on GLUE, and even outperforms the much larger GPT model (Radford et al., 2018).
Our approach also works well at large scale, where we train a model that matches the performance of RoBERTa (Liu et al., 2019), the current state-of-the-art pre-trained Transformer, despite having fewer parameters and using 1/4 of the compute for training.
Taken together, our results indicate that the discriminative task of distinguishing real data from challenging negative samples is more compute-efﬁcient and parameter-efﬁcient than existing generative approaches for language representation learning.
M ETHOD
We ﬁrst describe the replaced token detection pre-training task; see Figure 2 for an overview.
We suggest and evaluate several modeling improvements for this method in Section 3.2.
Our approach trains two neural networks, a generator G and a discriminator D .
Each one primarily consists of an encoder (e.g., a Transformer network) that maps a sequence on input tokens x
= [ x 1 , ..., x n ] into a sequence of contextualized vector representations h ( x ) =
[ h 1 , ..., h n ] .
For a given position t , the generator outputs a probability for generating the token x t with a softmax layer:
[Equation]
t artist sold the the car [ MASK ] artist artist artist artist artist sold the artist [ MASK ] v [ MASK ] artist
Generator (typically a small MLM) original original original original replaced
Discriminator (ELECTRA) sample sample sample artist sold the the painting where e denotes token embeddings.
For a given position t , the discriminator predicts whether the token x t is “fake,” i.e., that it comes from the generator rather than the data distribution:
[Equation]
The generator is trained to perform masked language modeling (MLM).
Given an input x =
[ x 1 , x 2 , ..., x n ] , MLM ﬁrst 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] ) .
The generator then learns to maximize the likelihood of the masked-out tokens.
The discriminator is trained to distinguish tokens in the data from tokens that have been replaced by generator samples.
More speciﬁcally, 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 = 1 to k
ˆ x i ∼ p G ( x i | x masked ) for i ∈ m x masked = REPLACE ( x , m , [MASK] ) x
[Equation]
REPLACE (
[Equation] [Equation]
, ˆ x ) and the loss functions are
[Equation]
Although similar to the training objective of a GAN, there are several key differences.
First, if the generator happens to generate the correct token, that token is considered “real” instead of “fake”; we found this formulation to moderately improve results on downstream tasks.
More importantly, the generator is trained with maximum likelihood rather than being trained adversarially to fool the discriminator.
Adversarially training the generator is challenging because it is impossible to backpropagate through sampling from the generator.
Although we experimented circumventing this issue by using reinforcement learning to train the generator (see Appendix F), this performed worse than maximum-likelihood training.
Lastly, we do not supply the generator with a noise vector as input, as is typical with a GAN.
We minimize the combined loss
[Equation]
over a large corpus X of raw text.
We approximate the expectations in the losses with a single sample.
We don’t back-propagate the discriminator loss through the generator (indeed, we can’t because of the sampling step).
After pre-training, we throw out the generator and ﬁne-tune the discriminator on downstream tasks.
E XPERIMENTS 3. E XPERIMENTAL S ETUP
We evaluate on the General Language Understanding Evaluation (GLUE) benchmark (Wang et al., 2019) and Stanford Question Answering (SQuAD) dataset (Rajpurkar et al., 2016)).
GLUE contains a variety of tasks covering textual entailment (RTE and MNLI) question-answer entailment (QNLI), paraphrase (MRPC), question paraphrase (QQP), textual similarity (STS), sentiment (SST), and linguistic acceptability (CoLA).
See Appendix D for more details on GLUE. Our evaluation metrics are Spearman correlation for STS, Matthews correlation for CoLA, and accuracy for the other GLUE tasks; we use “GLUE score” to refer to the average score over all tasks.
For SQuAD, we evaluate on versions 1.1, in which models select the span of text answering a question and 2.0, in which some questions are un-answerable by the passage. We use the standard evaluation metrics of Exact-Match (EM) and F1 scores.
For most experiments we pre-train on the same data as BERT, which consists of 3.3 Billion tokens from Wikipedia and BooksCorpus (Zhu et al., 2015).
However, for our Large model we pre-trained on the data used for XLNet
(Yang et al., 2019), which extends the BERT dataset to 33B tokens by including data from ClueWeb (Callan et al., 2009), CommonCrawl and Gigaword (Parker et al., 2011).
All of the pre-training and evaluation is on English data, although we think it would be interesting to apply our methods to multilingual data in the future.
Our model architecture and most hyperparameters are the same as BERT’s (in fact, our pre-trained weights are drop-in replacements for BERT’s). See the appendix for further details and hyperparameter values.
For ﬁne-tuning on GLUE, we add simple linear classiﬁers on top of ELECTRA.
For SQuAD, we add the question-answering module from XLNet on top of ELECTRA, which is slightly more sophisticated than BERT’s in that it jointly rather than independently predicts the start and end positions and has a “answerability” classiﬁer added for SQuAD 2.0.
Some of our evaluation datasets are small, which means accuracies of ﬁne-tuned models can vary substantially depending on the random seed.
We therefore report the median of 10 ﬁne-tuning runs from the same pre-trained checkpoint for each result.
Unless stated otherwise, results are on the dev set.
3. M ODEL E XTENSIONS
We improve our method by proposing and evaluating several extensions to the model.
Unless stated otherwise, these experiments use the same model size and training data as BERT-Base.
Weight Sharing We propose improving the efﬁciency of the pre-training by sharing weights between the generator and discriminator.
If the generator and discriminator are the same size, all of the encoder weights can be tied.
However, we found it to be more efﬁcient to have a small generator, in which case we only share the embeddings (both token embeddings and positional embeddings) of the generator and discriminator.
In this case we use embeddings the size of the discriminator’s hidden states.
4 The “input” and “output” token embeddings of the generator are always tied as in BERT.
We compare the weight tying strategies when the generator is the same size as the discriminator.
We train these models for 500k steps.
GLUE scores are 83.6 for no weight tying, 84.3 for tying token embeddings, and 84.4 for tying all weights.
We hypothesize that ELECTRA beneﬁts from tied token embeddings because masked language modeling is particularly effective at learning these representations: 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.
On the other hand, tying all encoder weights caused little improvement while incurring the signiﬁcant disadvantage of requiring the generator and discriminator to be the same size.
Based on these ﬁndings, we use tied embeddings for further experiments in this paper.
Smaller Generators
If the generator and discriminator are the same size, training ELECTRA would take around twice as much compute per step as training only with masked language modeling.
We suggest using a smaller generator to reduce this factor.
Speciﬁcally, we make models smaller by decreasing the layer sizes while keeping the other hyperparameters constant.
We also explore using an extremely simple “unigram” generator that samples fake tokens according their frequency in the train corpus.
GLUE scores for differently-sized generators and discriminators are [Figure] Interestingly shown in the left of Figure 3.
All models are trained for 500k steps, which puts the smaller generators at a disadvantage in terms of compute because they require less compute per training step.
Nevertheless, we ﬁnd that models work best with generators 1/4-1/2 the size of the discriminator.
We speculate that having too strong of a generator may pose a too-challenging task for the discriminator, preventing it from learning as effectively.
In particular, the discriminator may have to spend too many of its parameters modeling the generator rather than the actual data distribution.
Further experiments in this paper use the best generator size found for the given discriminator size.
Training Algorithms Lastly, we propose other training algorithms for ELECTRA, although these did not end up improving results.
The proposed training objective jointly trains the generator and discriminator.
We experiment with instead using the following two-stage training procedure:
Train only the generator with L MLM for n steps. 2.
Initialize the weights of the discriminator with the weights of the generator.
Then train the discriminator with L Disc for n steps, keeping the generator’s weights frozen.
Note that the weight initialization in this procedure requires having the same size for the generator and discriminator.
We found that without the weight initialization the discriminator would sometimes fail to learn at all beyond the majority class, perhaps because the generator started so far ahead of the discriminator.
Joint training on the other hand naturally provides a curriculum for the discriminator where the generator starts off weak but gets better throughout training.
We also explored training the generator adversarially as in a GAN, using reinforcement learning to accommodate the discrete operations of sampling from the generator.
See Appendix F for details.
Results are shown in the right of Figure 3.
During two-stage training, downstream task performance notably improves after the switch from the generative to discriminative objective, but does not end up outperforming joint training.
Although still outperforming BERT, we found adversarial training to underperform maximum-likelihood training.
Further analysis suggests the gap is caused by two problems with adversarial training.
First, the adversarial generator is simply worse at masked language modeling; it achieves 58% accuracy at masked language modeling compared to 65% accuracy for an MLE-trained one. We believe the worse accuracy is mainly due to the poor sample efﬁciency of reinforcement learning when working in the large action space of generating text. The second problem is that the adversarially trained generator produces a peaky low-entropy output distribution where most of the probability mass is on a single token, which means there is not much diversity in the generator samples. Both of these problems have been observed in GANs for text in prior work (Caccia et al., 2018).
3. S MALL M ODELS
As a goal of this work is to improve the efﬁciency of pre-training, we develop a small model that can be quickly trained on a single GPU.
Starting with the BERT-Base hyperparameters, we shortened the [Table] for different hardware and with sometimes un-optimized code. sequence length (from 512 to 128), reduced the batch size (from 256 to 128), reduced the model’s hidden dimension size (from 768 to 256), and used smaller token embeddings (from 768 to 128).
To provide a fair comparison, we also train a BERT-Small model using the same hyperparameters.
We train BERT-Small for 1.5M steps, so it uses the same training FLOPs as ELECTRA-Small, which was trained for 1M steps.
In addition to BERT, we compare against two less resource-intensive pre-training methods based on language modeling: ELMo (Peters et al., 2018) and GPT (Radford et al., 2018).
6 We also compare with DistilBERT, 7 a smaller Transformer distilled from BERT-Base.
Results are shown in Table 1 (see Appendix D for a detailed breakdown of results on the test set).
ELECTRA-Small performs remarkably well given its size, achieving a higher GLUE score than other methods using substantially more compute and parameters.
ELECTRA-Small is trained mostly to convergence, with models trained for even less time (as little as 6 hours) still achieving reasonable performance.
The results also demonstrate the strength of ELECTRA at a more moderate size; our base-sized ELECTRA model substantially outperforms BERT-Base and even outperforms BERT-Large (which gets 84.0 GLUE score).
We hope ELECTRA’s ability to achieve strong results with relatively little compute will broaden the accessibility of developing and applying pre-trained models in NLP.
3. L ARGE M ODELS
We train big ELECTRA models to measure the effectiveness of the replaced token detection pretraining-task at the large scale of current state-of-the-art pre-trained Transformers.
Our ELECTRALarge model is the same size as BERT-Large but is trained for much longer: approximately 400k steps with batch size 2048 on the XLNet data.
We note that although the XLNet data is similar to the data used to train RoBERTa, the comparison isn’t entirely direct.
As a baseline, we trained our own BERT-Large model using the same hyperparameters and training time as ELECTRA-Large.
Results on GLUE are shown in Table 2.
ELECTRA-Large matches the performance of RoBERTa, the current state-of-the-art pre-trained transformer.
However, it took less than 1/4 of the compute to train ELECTRA-Large as it did to train RoBERTa, demonstrating that ELECTRA’s sampleefﬁciency gains hold at large scale.
We believe ELECTRA would perform even better if trained longer.
ELECTRA substantially outperforms RoBERTa trained for 100K steps and XLNet, which use similar amounts of compute as ELECTRA.
Surprisingly, our baseline BERT model performs worse than RoBERTa-100K, suggesting our models may beneﬁt from more hyperparameter tuning or using the RoBERTa training data.
ELECTRA’s large gain over BERT holds on the GLUE test set.
Note that we did not use the performance-enhancing tricks employed by other recent GLUE [Table] dev and test sets. BERT dev results are from
Clark et al. See Appendix B for some discussion on GLUE test set comparisons [Table] leaderboard submissions (see Appendix B), so these test-set numbers are not comparable to those of
RoBERTa/XLNet.
Results on SQuAD are shown in Table 3.
Consistent, with the GLUE results, ELECTRA generally outperforms masked-language-modeling-based methods given the same compute resources.
For example, ELECTRA-Large outperforms RoBERTa-100k and our BERT baseline, which use similar amounts of pre-training compute.
ELECTRA-Large also roughly matches RoBERTa
(performing 0.4 exact-match points better on SQuAD 2.0 and 0.2 points worse on SQuAD 1.1) despite using less than 1/4th of the compute.
While SpanBERT (Joshi et al., 2019) performs slightly better at SQuAD 1.1, it performs signiﬁcantly worse at 2.0 and its pre-training procedure is designed speciﬁcally to produce good span-level representations, which are important for question answering.
We think it would be interesting future work to extend ELECTRA with a “replaced span detection” objective to improve its span representations.
ELECTRA-Base also yields strong results, scoring substantially better than BERT-Base and XLNet-Base, and even surpassing than BERT-Large according to most metrics.
ELECTRA generally performs better at SQuAD 2.0 than 1.1.
Perhaps replaced token detection, in which the model distinguishes real tokens from plausible fakes, is particularly transferable to the answerability classiﬁcation of SQuAD 2.0, in which the model must distinguish answerable questions from fake unanswerable questions.
3. E FFICIENCY A NALYSIS
We have suggested that posing the training objective over a small subset of tokens makes masked language modeling inefﬁcient.
However, it isn’t entirely obvious that this is the case.
After all, the model still receives a large number of input tokens even though it predicts only a small number of masked tokens.
To better understand where the gains from ELECTRA are coming from, we compare a series of other pre-training objectives:
[Table]
[Figure]
[Table]
Replace MLM
[Figure]
BERT
[Table]
[Figure] [Figure]
• ELECTRA 15% : This model is identical to ELECTRA except the discriminator loss only comes from the 15% of the tokens that were masked out of the input.
In other words, the sum in the discriminator loss L Disc is over i ∈ m instead of from 1 to n .•
Replace MLM : This objective is the same as masked language modeling except instead of replacing masked-out tokens with [MASK] , they are replaced with tokens from a generator model.
This objective tests to what extent ELECTRA’s gains come from solving the discrepancy of exposing the model to [MASK] tokens during pre-training but not ﬁne-tuning.
• All-Tokens MLM : Like in Replace MLM, masked tokens are replaced with generator samples.
Furthermore, the model predicts the identity of all tokens in the input, not just ones that were masked out.
We found it improved results to train this model with an explicit copy mechanism that outputs a copy probability D for each token using a sigmoid layer.
The model’s output distribution puts D weight on the input token plus 1 − D times the output of the MLM softmax.
This model is essentially a combination of BERT and ELECTRA.
Note that without generator replacements, the model would trivially learn to make predictions from the vocabulary for [MASK] tokens and copy the input for other ones.
Results are shown in Table 4.
First, we ﬁnd that ELECTRA is greatly beneﬁting from having a loss deﬁned over all input tokens rather than just a subset: ELECTRA 15% performs much worse than
ELECTRA.
Secondly, we ﬁnd that BERT performance is being slightly harmed from the pre-train ﬁne-tune mismatch from [MASK] tokens, as Replace MLM slightly outperforms BERT.
We note that BERT (including our implementation) already includes a trick to help with the pre-train/ﬁnetune discrepancy: masked tokens are replaced with a random token 10% of the time and are kept the same 10% of the time.
However, our results suggest these simple heuristics are insufﬁcient to fully solve the issue.
Lastly, we ﬁnd that All-Tokens MLM, the generative model that makes predictions over all tokens instead of a subset, closes most of the gap between BERT and ELECTRA.
In total, these results suggest a large amount of ELECTRA’s improvement can be attributed to learning from all tokens and a smaller amount can be attributed to alleviating the pre-train ﬁne-tune mismatch.
The improvement of ELECTRA over All-Tokens MLM suggests that the ELECTRA’s gains come from more than just faster training.
We study this further by comparing BERT to ELECTRA for various model sizes (see Figure 4).
We ﬁnd that the gains from ELECTRA grow larger as the models get smaller.
The small models are trained fully to convergence, showing that ELECTRA achieves higher downstream accuracy than BERT when fully trained.
We speculate that ELECTRA is more parameter-efﬁcient than BERT because it is trained as a discriminative classiﬁer and so does not have to model the full data distribution.
R ELATED W ORK
Self-Supervised Pre
-training for NLP Self-supervised learning has been used to learn word representations (Collobert et al., 2011; Pennington et al., 2014) and more recently contextual representations of words though objectives such as language modeling (Dai & Le, 2015; Peters et al., 2018;
Howard & Ruder, 2018).
BERT (Devlin et al., 2019) pre-trains a large Transformer (Vaswani et al., 2017) at the masked-language modeling task.
There have been numerous extensions to BERT.
For example, MASS (Song et al., 2019) and UniLM (Dong et al., 2019) extend BERT to generation tasks by adding auto-regressive generative training objectives.
ERNIE (Sun et al., 2019) and SpanBERT (Joshi et al., 2019) mask out contiguous sequences of token for improved span representations.
Instead of masking out input tokens, XLNet (Yang et al., 2019) masks attention weights such that the input sequence is auto-regressively generated in a random order.
However, this method suffers from the same inefﬁciencies as BERT because XLNet only generates 15% of the input tokens in this way.
Like ELECTRA, XLNet may alleviate BERT’s pretrain-ﬁnetune discrepancy by not requiring [MASK] tokens, although this isn’t entirely clear because XLNet uses two “streams” of attention during pre-training but only one for ﬁne-tuning.
Generative Adversarial Networks GANs (Goodfellow et al., 2014) are effective at generating high-quality synthetic data.
Radford et al.
(2016) propose using the discriminator of a GAN in downstream tasks, which is similar to our method.
Large-scale adversarial learning (Brock et al., 2019) is currently state-of-the-art for unsupervised pre-training of image classiﬁers, albeit with a different approach based on BiGAN (Donahue et al., 2017).
GANs have been applied to text data (Yu et al., 2017; Zhang et al., 2017), although state-of-the-art approaches still lag behind standard maximum-likelihood training (Caccia et al., 2018; Tevet et al., 2018).
Although we do not use adversarial learning, our generator is particularly reminiscent of MaskGAN (Fedus et al., 2018), which trains the generator to ﬁll in tokens deleted from the input.
Contrastive Learning Broadly speaking, contrastive learning methods distinguish observed data points from ﬁctitious negative samples.
They have been applied to many modalities including text (Smith & Eisner, 2005), images (Chopra et al., 2005), and video (Wang & Gupta, 2015; Sermanet et al., 2017) data.
Common approaches learn embedding spaces where related data points are similar (Saunshi et al., 2019) or models that rank real data points over negative samples (Collobert et al., 2011; Bordes et al., 2013).
Noise-Contrastive Estimation (Gutmann & Hyv ¨ arinen, 2010) and Contrastive Predictive Encoding (van den Oord et al., 2018) train a generative model to score real data points higher than negative samples.
Our method is a bit different in that it it trains a discriminative model to distinguish real and ﬁctitious tokens.
Word2Vec (Mikolov et al., 2013), one of the earliest pre-training methods for NLP, uses contrastive learning.
In fact, ELECTRA can be viewed as a massively scaled-up version of Continuous Bagof-Words (CBOW) with Negative Sampling.
CBOW also predicts an input token given surrounding context and negative sampling rephrases the learning task as a binary classiﬁcation task on whether the input token comes from the data or proposal distribution.
However, CBOW uses a bag-ofvectors encoder rather than a transformer and a simple proposal distribution derived from unigram token frequencies instead of a learned generator.
C ONCLUSION
We have proposed replaced token detection, a new self-supervised task for language representation learning.
The key idea is training a text encoder to distinguish input tokens from high-quality negative samples produced by an small generator network.
Compared to masked language modeling, our pre-training objective is more compute-efﬁcient and results in better performance on downstream tasks.
It works well even when using relatively small amounts of compute, which we hope will make developing and applying pre-trained text encoders more accessible to researchers and practitioners with less access to computing resources.
We also hope more future work on NLP pre-training will consider efﬁciency as well as absolute performance, and follow our effort in reporting compute usage and parameter counts along with evaluation metrics.
A P RE -T RAINING D ETAILS
The following details apply to both our BERT and ELECTRA models.
We mostly use the same hyperparameters as BERT.
However, one difference is that we use the LAMB (You et al., 2019) optimizer instead of Adam (Kingma & Ba, 2015).
While it did not outperform Adam when Adam was well-tuned, it required less tuning over differing train batch sizes, loss functions, etc.
We set λ , the weight for the discriminator objective in the loss to 50.
9 We use dynamic token masking with the masked positions decided on-the-ﬂy instead of during preprocessing.
Also, we did not use the next sentence prediction objective proposed in the original BERT paper, as recent work has suggested it does to improve performance
(Yang et al., 2019; Liu et al., 2019).
We searched for the best learning rate for the Base and Small models out of [1e-4, 2e-4, 3e-4, 5e-4] and selected λ out of [1, 10, 20, 50, 100] in early experiments.
Otherwise we did no hyperparameter tuning beyond the experiments in Section 3.2.
The full set of hyperparameters are listed in Table 5.
Training ELECTRA-Large took 5 days on 256 TPUv3s; other train times and hardware are listed in Table 1.
B F INE -T UNING D ETAILS
For Large-sized models, we used the hyperparameters from Clark et al.
for the most part (including the use of Adam instead of LAMB).
However, after noticing that RoBERTa (Liu et al., 2019) uses more training epochs (10 rather than 3) we searched for the best number of train epochs out of [10, 3] for each task. For SQuAD, we decreased the number of train epochs to 2 to be consistent with BERT and RoBERTa.
For Base-sized models we searched for a learning rate out of [3e-5, 5e-5, 1e-4, 1.5e-4] and the layer-wise learning-rate decay out of [0.9, 0.8, 0.7], but otherwise used the loss was typically much lower than the generator’s [Table] multiplier [Table]
[Table] same hyperparameters as for Large models.
We found the small models beneﬁt from a larger learning rate and searched for the best one out of [1e-4, 2e-4, 3e-4, 5e-3].
With the exception of number of train epochs, we used the same hyperparameters for all tasks. In contrast, previous research on
GLUE such as BERT, XLNet, and RoBERTa separately searched for the best hyperparameters for each task. We expect our results would improve slightly if we performed the same sort of additional hyperparameter search.
The full set of hyperparameters is listed in Table 6.
Following BERT, we do not show results on the WNLI GLUE task, as it is difﬁcult to beat even the majority classiﬁer using a standard ﬁne-tuning-as-classiﬁer approach.
We report most results on the GLUE dev set.
One reason for this is that results vary signiﬁcantly (standard deviation of around ± 0 .
4 GLUE points) between ﬁne-tuning runs with different random seeds, so we think reporting the median score over multiple ﬁne-tuning runs is very important.
However, test results are only obtainable by a leaderboard submission for a single training run, making comparisons less reliable.
Furthermore, it is difﬁcult to have apples-to-apples comparisons with prior work on the test sets due to the large number of tricks commonly employed to increase leaderboard scores.
Top
GLUE leaderboard entries are ensembles, use two-stage STILTS (Phang et al., 2018)
training for some tasks, and apply task-speciﬁc tricks for some tasks (e.g., treating QNLI as a ranking task).
As different approaches use different tricks tuned different ways, we decided to instead use a simple single-task non-ensemble ﬁne-tuning approach (the same as BERT 10 ) for our test set submission and compare with other methods that provide results in the same setting.
C D ETAILS ON GLUE
We provide further details about the GLUE benchmark tasks below
• CoLA: Corpus of Linguistic Acceptability (Warstadt et al., 2018).
The task is to determine whether a given sentence is grammatical or not.
The dataset contains 8.5k train examples from books and journal articles on linguistic theory.
• SST:
Stanford Sentiment Treebank (Socher et al., 2013).
The tasks is to determine if the sentence is positive or negative in sentence.
The data dataset 67k train examples from movie reviews.
• MRPC: Microsoft Research Paraphrase Corpus (Dolan & Brockett, 2005).
The task is to predict whether two sentences are semantically equivalent or not.
The dataset contains 3.7k train examples from online news sources.
• STS: Semantic Textual Similarity (Cer et al., 2017).
The tasks is to predict how semantically similar two sentences are on a 1-5 scale.
The dataset contains 5.8k train examples drawn from new headlines, video and image captions, and natural language inference data.
• QQP: Quora Question Pairs (Iyer et al., 2017).
The task is to determine whether a pair of questions are semantically equivalent.
The dataset contains 364k train examples from the community question-answering website Quora.
• MNLI: Multi-genre Natural Language Inference (Williams et al., 2018).
Given a premise sentence and a hypothesis sentence, the task is to predict whether the premise entails the hypothesis, contradicts the hypothesis, or neither.
The dataset contains 393k train examples drawn from ten different sources.
• QNLI: Question Natural Language Inference; constructed from SQuAD (Rajpurkar et al., 2016).
The task is to predict whether a context sentence contains the answer to a question sentence.
The dataset contains 108k train examples from Wikipedia.
• RTE: Recognizing Textual Entailment (Giampiccolo et al., 2007).
Given a premise sentence and a hypothesis sentence, the task is to predict whether the premise entails the hypothesis or not.
The dataset contains 2.5k train examples from a series of annual textual entailment challenges.
D D ETAILED RESULTS ON GLUE FOR ELECTRA-S MALL /B ASE
We report results for ELECTRA-Base and ELECTRA-Small on the GLUE test set in Table 7.
As in the dev-set results, ELECTRA-Base outperforms BERT-Large while ELECTRA-Small outperforms
GPT in terms of average score.
In fact, ELECTRA-Small even outperforms TinyBERT (Jiao et al., 2019), a small model distilled from BERT-base.
TinyBERT uses a sophisticated distillation procedure for both pre-training and ﬁne-tuning as well as data augmentation, while ELECTRA-Small uses standard training.
As ablations on TinyBERT show it beneﬁts largely from all three ideas, we expect a “TinyELECTRA” model also using distillation would perform even better.
ELECTRASmall is particularly effective at CoLA.
In CoLA the goal is to distinguish linguistically acceptable sentences from ungrammatical ones, which fairly closely matches ELECTRA’s pre-training task of identifying fake tokens, perhaps explaining ELECTRA’s strength at the task.
E C OUNTING FLOP S
We chose to measure compute usage in terms of ﬂoating point operations (FLOPs) because it is a measure agnostic to the particular hardware, low-level optimizations, etc.
We used TensorFlow’s [Table] FLOPs-counting capabilities 11 and checked the results with by-hand computation.
We made the following assumptions:
• An “operation” is a mathematical operation, not a machine instruction.
For example, an exp is one op like an add , even though in practice the exp might be slower.
We believe this assumption does not substantially change compute estimates because matrix-multiplies dominate the compute for most models.
Similarly, we count matrix-multiplies as 2 ∗ m ∗ n FLOPs instead of m ∗ n as one might if considering fused multiply-add operations.
• The backwards pass takes the same number of FLOPs as the forward pass.
This assumption is not exactly right (e.g, for softmax cross entropy loss the backward pass is faster).
Importantly, the forward/backward pass FLOPs really are the same for matrix-multiplies, which is most of the compute anyway.
• We assume “dense” embedding lookups (i e., multiplication by a one-hot vector).
In practice, sparse embedding lookups are much slower than constant time; on some hardware accelerators dense operations are actually faster than sparse lookups.
F A DVERSARIAL T RAINING
Here we detail attempts to adversarially train the generator instead of using maximum likelihood.
In particular we train the generator G to maximize the discriminator loss L Disc .
As our discriminator isn’t precisely the same as the discriminator of a GAN (see the discussion in Section 2), this method is really an instance of Adversarial Contrastive Estimation (Bose et al., 2018) rather than Generative
Adversarial Training.
Our generator is different from most text generation models in that it is non-autogregressive: predictions are made independently.
In other words, rather than taking a sequence of actions where each action generates a token, the generator takes a single giant action of generating all tokens simultaneously, where the probability for the action factorizes as the product of generator probabilities for each token.
To deal with this enormous action space, we make the following simplifying assumption: that the discriminator’s prediction D ( x corrupt , t ) depends only on the token x t and the non-replaced tokens { x i : i (cid:54)∈ m } , i.e., it does not depend on other generated tokens { ˆ x i : i ∈ m ∧ i (cid:54) = t } .
This isn’t too bad of an assumption because a relatively small number of tokens are replaced, and it greatly simpliﬁes credit assignment when using reinforcement learning.
Notationally, we show this assumption by (in a slight abuse of notation) by writing D (ˆ x t | x masked ) for the discriminator predicting whether the generated token ˆ x t equals the original token x t given the masked context x masked .
A useful consequence of this assumption is that the discriminator score for non-replaced tokens ( D ( x t | x masked ) for t (cid:54)∈ m ) is independent of p G because it does not depend on any replaced token.
Therefore it can be ignored when training G to maximize the L Disc .
During training we seek to ﬁnd
[Equation]
Using the simplifying assumption, we approximate the above by ﬁnding the argmax of
[Equation]
where R (ˆ x t , x ) = (cid:26) log D (ˆ x t | x masked ) if ˆ x t = x t log(1 − D (ˆ x t | x masked )) otherwise
In short, the simplifying assumption allows us to decompose the loss over the individual generator samples.
We cannot directly ﬁnd arg max θ G using gradient ascent because it is impossible to backpropagate through discrete sampling of ˆ x .
Instead, we use policy gradient reinforcement learning (Williams, 1992).
In particular, we use the REINFORCE gradient
[Equation]
Where b is a learned baseline implemented as b ( x masked , t )
=
log sigmoid ( w T h G ( x masked ) t ) where h G ( x masked ) are the outputs of the generator’s Transformer encoder.
The baseline is trained with cross-entropy loss to match the reward for the corresponding position.
We approximate the expectations with a single sample and learn θ G with gradient ascent.
Despite receiving no explicit feedback about which generated tokens are correct, we found the adversarial training resulted in a fairly accurate generator (for a 256-hidden-size generator, the adversarially trained one achieves 58% accuracy at masked language modeling while the same sized MLE generator gets 65%).
However, using this generator did not improve over the MLE-trained one on downstream tasks (see the right of Figurein the main paper).
G E VALUATING ELECTRA AS A M ASKED L ANGUAGE M ODEL
This sections details some initial experiments in evaluating ELECTRA as a masked language model.
Using slightly different notation from the main paper, given a context c consisting of a text sequence with one token masked-out, the discriminator loss can be written as.
[Equation]
Finding the critical points of this loss with respect to D shows that for a ﬁxed generator the optimal discriminator is
[Equation]
which means
[Equation]
where a = (1 − p mask ) /p mask is the number of unmasked tokens for every masked token.
We can use this expression to evaluate ELECTRA as a masked language model by selecting argmax x ∈ vocab D ( x, c ) p G ( x | c ) /
( a (1 − D ( x, c ))
+ p G ( x | c )) as the model’s prediction for a given context.
In practice, selecting over the whole vocabulary is very expensive, so we instead take the argmax over the top 100 predictions from the generator.
12 Using this method, we compared
ELECTRA-Base and BERT-Base on the Wikipedia+BooksCorpus dataset.
We found that BERT slightly outperformed ELECTRA at masked language modeling (77.9% vs 75.5% accuracy).
It is possible that the assumption of an optimal discriminator, which is certainly far from correct, is harming ELECTRA’s accuracy under this evaluation scheme.
However, perhaps it is not too surprising that a model like BERT that is trained speciﬁcally for generation performs better at generation while a model with a discriminative objective like ELECTRA is better at being ﬁne-tuned on discriminative tasks.
We think comparisons of BERT’s and ELECTRA’s MLM predictions might be an interesting way to uncover more about the differences between ELECTRA and BERT encoders in future work.
H N EGATIVE R ESULTS
We brieﬂy describe a few ideas that did not look promising in our initial experiments:
• We initially attempted to make BERT more efﬁcient by strategically masking-out tokens (e
g., masking our rarer tokens more frequently, or training a model to guess which tokens BERT would struggle to predict if they were masked out).
This resulted in fairly minor speedups over regular BERT.
• Given that ELECTRA seemed to beneﬁt (up to a certain point) from having a weaker generator (see Section 3.2) we explored raising the temperature of the generator’s output softmax or disallowing the generator from sampling the correct token.
Neither of these improved results.
• We tried adding a sentence-level contrastive objective.
For this task, we kept 20% of input sentences unchanged rather than noising them with the generator.
We then trained added a prediction head to the model that predicted if the entire input was corrupted or not.
Surprisingly, this slightly decreased performance on downstream tasks