要解决的问题
这类文本编码器通常用掩码语言建模(masked language modeling)做预训练:把输入的一部分遮住,让模型把它们还原出来。问题在于,训练信号只来自被遮住的那几个位置,输入的其余部分对损失函数没有贡献。这样一来,每读一遍文本所能获得的学习量就打了折扣。
方法:替换词检测
这篇论文由 Kevin Clark、Minh-Thang Luong、Quoc V. Le 和 Christopher D. Manning 于 2020 年 3 月 23 日提交到 arXiv,提出了一种名为替换词检测(replaced token detection)的预训练任务。它不做遮盖,而是用一种「破坏」输入的方式:把其中一些词替换成由一个小型生成器(generator)网络采样出的、在上下文中说得通的替代词,然后训练一个判别式模型(discriminative model)去判断每个词是否被替换过[1]。
区别在于覆盖面。这个任务建立在全部输入词之上,而不只是被遮住的那一小部分,因此比掩码语言建模更高效[1]。换句话说,模型在每个位置都要做一次判断,而不是只在少数空格处做预测;被保留下来的表示,是由一个负责判别真假词的网络学到的,而不是由一个负责生成词的网络学到的。
结果
在模型规模、数据和计算量相同的条件下,这样学到的表示大幅优于 BERT[1]。
效率上的收益在小规模时最明显:一个在一块 GPU 上训练 4 天的模型,在 GLUE 基准上超过了用 30 倍计算量训练出来的 GPT[1]。GLUE 是一组自然语言理解任务的合集,常用来比较不同编码器的能力。把规模放大之后,ELECTRA 在使用不到 RoBERTa 和 XLNet 四分之一计算量的情况下,表现与它们相当[1]。
更大的 ELECTRA 模型参数更少、训练计算量只有四分之一,却与 RoBERTa 和 XLNet 表现相当;继续训练之后,它在 GLUE 上超过了 ALBERT,并在 SQuAD 2.0 上取得了新的最优成绩[1]。SQuAD 2.0 是一个阅读理解基准,其中包含在原文里找不到答案的问题。
为什么重要
论文的核心论点在于学习信号从哪里来。预训练目标是人为选定的设计,它决定了模型能从每一个词、每一份算力中学到多少东西。把目标从「预测少数被遮住的词」改成「对每个词做出判断」,说明了有限的数据和算力可以被花得更有效,也说明参数更少的模型依然可以站在大得多的模型旁边。
对刚接触这一领域的人来说,可借鉴的一点是:预训练并没有唯一固定的配方。掩码语言建模是一种促使网络吸收语言结构的方法,替换词检测是另一种;两者的对照提醒我们,决定模型最终学到什么的,不只是网络结构和硬件数量,还有那个训练目标本身。
注释与来源
- ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generatorshttps://arxiv.org/abs/2003.10555
引用本页: 《ELECTRA:以判别器而非生成器方式预训练文本编码器》. TellWorld, https://www.tellworld.net/zh/papers/electra-2020. 更新于 2026-11-08