阅读笔记 -- ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS
时间 2021-01-15
标签
预训练
NLP
深度学习
本文的主要贡献:
将BERT与类似于GAN的结构相结合,并辅以新的预训练任务来做预训练 – 在更少的参数量和数据下,效果超越BERT,并且仅用1/4的算力就达到了SOTA模型RoBERTa的效果:
Introduction:
- 当下流行的MLM(Masked Language Modeling)方法会大大增加计算开销,原因:模型只学到每个example中15%的tokens信息,而且有些token可能会很简单。
- 因此,我们创新性地提出了RTD (Replaced Token Detection)这样的新的预训练任务。
- ELECTRA – Efficiently Learning an Encoder that Classifies Token Replacements Accurately
- 先来看一下效果:
Methods:
Experiments:
-
Weight sharing:生成器和判别器的权重共享是否可以提升效果呢?作者设置了相同大小的生成器和判别器,在不共享权重下的效果是83.6,只共享embedding层的效果是84.3,共享所有权重的效果是84.4。作者认为生成器对embedding有更好的学习能力,因为在计算MLM时,softmax是建立在所有vocab上的,之后反向传播时会更新所有embedding,而判别器只会更新输入的token embedding。最后作者只使用了embedding sharing。
-
Smaller Generators:上述实验:生成器和判别器只需要共享embedding的权重就足矣了。So是否可以缩小生成器的尺寸进行训练效率提升呢?作者在保持原有hidden size的设置下减少了层数,得到了下图所示的关系图。结论:生成器的大小在判别器的1/4到1/2之间效果最好–过强的生成器会增大判别器的难度:
-
Training Algorithms:
MLM:无需赘言,实验证明这个最好。
Two-stage training:即先训练生成器,然后freeze掉,用生成器的权重初始化判别器,再接着训练相同步数的判别器。
-
Models Comparison:
-
Efficient Analysis:
- 让判别器计算全部token的loss比只计算15%的masked token的效果好
- ELECTRA体积越小,相比于BERT就提升的越明显==》原因:由于ELECTRA是判别式任务,不用对整个数据分布建模,所以更parameter-efficient
Conclusion:
- 打破了之前的“more data+ more params+ more steps+ more GPU+ more money == better model”的做法;
- 将GAN的思想用在了NLP的应用中;
- BERT虽然对上下文有很强的编码能力,却缺乏细粒度语义的表示,ELECTRA优化了这个缺陷: 图中是把sequence token编码降维后的效果,可以看到sky和sea因为上下文一样而得到了极为相似的编码 – 细粒度表示能力的缺失会对真实任务造成很大影响,所以更细粒度的任务让BERT去区分每个token是一个关键突破!