Skip to main content
  1. 论文/

Electra:将文本编码器预训练为判别器而非生成器

·4415 words·9 mins
预训练 文本编码器 判别器 生成器 替换标记检测 自然语言处理 BERT 计算效率 上下文表示 GLUE基准
Table of Contents

✏️ Kevin Clark 斯坦福大学 kevclark@cs.stanford.edu
✏️ Minh-Thang Luong Google Brain thangluong@google.com
✏️ Quoc V. Le Google Brain qvl@google.com
✏️ Christopher D. Manning 斯坦福大学 & CIFAR Fellow manning@cs.stanford.edu

要点总结
#

当前的自然语言处理模型(如BERT)通过掩码语言建模(MLM)进行预训练,这种方法虽然有效,但计算成本高昂,因为模型只能从输入的一小部分标记中学习。为了解决这一问题,ELECTRA提出了一种新的预训练任务——替换标记检测。该方法通过生成器网络生成合理的替代标记来破坏输入,然后训练一个判别器模型来区分哪些标记是原始标记,哪些是生成的替代标记。这种方法不仅避免了MLM中的掩码标记问题,还使得模型能够从所有输入标记中学习,从而显著提高了计算效率。

ELECTRA的实验结果表明,与BERT相比,ELECTRA在相同的模型大小、数据和计算资源下,性能显著提升。特别是在小模型上,ELECTRA的表现尤为突出。例如,ELECTRA-Small模型在单个GPU上训练4天,性能超过了GPT(使用了30倍的计算资源)。此外,ELECTRA在大规模模型上也表现出色,与RoBERTa和XLNet性能相当,但计算资源消耗仅为它们的四分之一。ELECTRA的高效性和性能提升使其成为自然语言处理领域的一个重要突破。

关键要点
#

论文重要性
#

ELECTRA的研究对自然语言处理领域具有重要意义。首先,它提出了一种更高效的预训练方法,显著减少了计算资源的消耗,使得更多的研究者和开发者能够在有限的资源下进行模型训练。其次,ELECTRA的性能提升为下游任务(如文本分类、问答系统等)提供了更强的模型基础,推动了自然语言处理技术的发展。此外,ELECTRA的成功也为未来的研究提供了新的方向,例如如何进一步优化生成器和判别器的协同训练,以及如何将ELECTRA的思想应用于多语言和跨语言任务中。


图表分析
#

预训练 FLOPs 与 GLUE 分数
#

🔼 该图表对比了不同预训练方法在 GLUE 基准测试上的性能,横轴表示预训练所需的浮点运算次数(FLOPs),纵轴表示 GLUE 平均得分。图表分为左右两部分,左侧主要展示了较小规模模型的性能,而右侧则聚焦于更大规模的模型。在左侧图中,我们可以看到,随着预训练 FLOPs 的增加,各种模型的 GLUE 得分都呈现上升趋势。ELECTRA 模型(红色方块)在相同的计算资源下,表现明显优于 BERT 模型(蓝色圆点),尤其是在计算量较少的情况下。例如,ELECTRA-Small 在预训练 FLOPs 约为 1e18 时,其 GLUE 得分就高于 BERT-Small,并且接近甚至超过了 GPT 的表现。这表明 ELECTRA 在较小的计算规模下能够更有效地学习到有用的语言表示。图表还显示,随着预训练步骤的增加,ELECTRA-Large 的 GLUE 得分也显著提升。右侧图则展示了更大规模模型的性能。图中可以看到,RoBERTa 和 XLNet 在大规模预训练后达到了较高的 GLUE 分数,而 ELECTRA-Large 在相对较少的计算资源下,也能取得与 RoBERTa 和 XLNet 相近的性能。尤其值得注意的是,ELECTRA 在较少步骤(如 100k 步)预训练后,其性能已经可以与 RoBERTa 在较多步骤预训练后的性能相媲美,表明 ELECTRA 在大规模模型上也展现出更高的计算效率。图中虚线部分代表 XLNet 的性能上限,作为对比,可以看出各种模型最终都在逼近这个水平。总的来说,该图表清晰地展示了 ELECTRA 预训练方法在计算效率和下游任务性能方面的优势,尤其是在计算资源有限的情况下,ELECTRA 能够更快地达到较高的性能水平。此外,图表也突出了大规模预训练在提升模型性能方面的关键作用。

更多图表分析

ELECTRA Replaced Token Detection Overview
#

🔼 该图展示了 ELECTRA 模型中被替换的令牌检测的流程。整个过程包括两个主要部分:生成器(Generator)和判别器(Discriminator)。首先,输入文本序列中的某些令牌被替换为“[MASK]”标记。这些带有“[MASK]”的序列被送入生成器模型,生成器(通常是一个小型掩码语言模型 MLM)的任务是根据上下文预测并生成合适的替代令牌。例如,在图示中,“cooked”和“the”被屏蔽,生成器分别给出了“ate”和“the”。接下来,原始文本中被替换的标记被生成器生成的令牌替换,形成一个被破坏的序列。这个被破坏的序列被送入判别器(ELECTRA),判别器的任务是判断输入序列中的每个标记是原始标记还是被生成器替换过的。图中判别器的输出为“original”、“replaced”标签,表示每个对应位置的标记是否被替换。例如,图中“the”,“chef”,“the”,“meal”都被认为是“original”的,而“ate”被认为是“replaced”的。该图简洁地概括了 ELECTRA 预训练模型的核心思想,即通过判别真假令牌的方式进行有效的语言表征学习,通过这样的训练方式,模型可以学习到更丰富的上下文信息,从而在下游任务中取得更好的表现。整个过程不是对抗性的,生成器使用最大似然估计训练,判别器则学习区分真实数据和生成数据。这种方法提高了训练效率,并使模型更好地理解语言的细微差别。

生成器大小和训练算法对GLUE分数的影响
#

🔼 该图表由两个子图组成,分别展示了生成器大小和训练算法对GLUE基准测试分数的影响。左侧子图比较了不同大小生成器在不同判别器大小下的性能。横轴表示生成器的大小,从unigram到1024,纵轴表示GLUE分数。图中共有三条曲线,分别对应判别器大小为768、512和256的情况。可以看出,当判别器大小为768时,生成器大小为128或256时,GLUE分数最高,大约为84.5分。而判别器大小为512时,生成器大小为128或256时也取得了较好的性能,分数在83左右。判别器大小为256时,生成器大小对结果影响相对较小,分数在79到80之间。这表明生成器大小在1/4到1/2判别器大小时效果最好。

右侧子图比较了不同训练算法对GLUE分数的影响。横轴表示预训练的FLOPs(浮点运算次数),纵轴表示GLUE分数。图中共有四条曲线,分别对应ELECTRA、对抗性ELECTRA、两阶段ELECTRA和BERT。可以看出,ELECTRA在相同预训练计算量下表现最佳,始终高于其他算法。对抗性ELECTRA初期表现较好,但后期提升不大,性能不如ELECTRA。两阶段ELECTRA在切换到判别器损失后有明显提升,但仍然低于ELECTRA。BERT的表现最差,始终低于其他算法。这些结果表明,ELECTRA的训练方法比其他方法更有效率,可以在相同的计算量下获得更高的下游任务性能,尤其是在与对抗性训练或两阶段训练的ELECTRA方法比较时,ELECTRA展现出更稳定的性能提升趋势。

不同模型尺寸下的GLUE得分
#

🔼 该图表由三部分组成,展示了不同模型尺寸和训练阶段下ELECTRA和BERT模型的GLUE得分。左侧图表展示了随着模型隐藏层尺寸增加(从128到768),ELECTRA和BERT模型在GLUE基准测试上的表现。可以观察到,在所有隐藏层尺寸下,ELECTRA的得分均高于BERT,并且随着模型尺寸的增加,两者得分差距逐渐增大。中间图表展示了ELECTRA相对于BERT的GLUE得分提升,随着模型尺寸增大,提升幅度从6分左右逐渐下降到接近3分,这表明ELECTRA在较小模型上表现出更高的相对优势。右侧图表则显示了ELECTRA-256和BERT-256模型在训练过程中GLUE得分的变化。ELECTRA-256的得分上升更快,并在训练初期就明显高于BERT-256,最终也达到了更高的收敛水平。这些图表共同说明,ELECTRA模型在不同模型尺寸下均优于BERT模型,并且在训练效率和最终性能上都更具优势,尤其在小型模型上表现突出,这可能归因于ELECTRA的判别式训练方式更有效利用了每个token的信息,从而在参数效率上优于BERT。

深度解读
#

ELECTRA 方法论
#

ELECTRA 提出了一种新的预训练任务——替换标记检测,与传统的掩码语言建模(MLM)不同,ELECTRA 通过生成器生成替代标记来破坏输入,并训练判别器来区分原始标记和生成器生成的标记。这种方法的核心优势在于其计算效率,因为判别器从所有输入标记中学习,而不仅仅是掩码的少数标记。实验表明,ELECTRA 在相同的模型大小、数据和计算资源下,显著优于 BERT。特别是在小模型上,ELECTRA 的表现尤为突出,例如在单个 GPU 上训练 4 天的模型在 GLUE 基准测试中超越了 GPT。ELECTRA 的成功不仅在于其任务设计,还在于其能够有效利用计算资源,减少预训练的时间和成本。

生成器与判别器
#

ELECTRA 的训练过程涉及两个神经网络:生成器(G)和判别器(D)。生成器负责生成替代标记,而判别器则负责区分原始标记和生成器生成的标记。生成器通过掩码语言建模(MLM)进行训练,而判别器则通过判别任务进行训练。这种双网络结构的设计使得 ELECTRA 能够同时进行生成和判别任务,从而在预训练过程中获得更丰富的上下文表示。此外,ELECTRA 的生成器和判别器可以共享权重,进一步提高了训练效率。实验表明,生成器的大小对模型性能有显著影响,较小的生成器(1/4 到 1/2 判别器大小)通常表现更好,因为过强的生成器可能会使判别器的学习变得过于困难。

计算效率分析
#

ELECTRA 的计算效率是其核心优势之一。与 BERT 相比,ELECTRA 的预训练任务定义在所有输入标记上,而不仅仅是掩码的少数标记,这使得 ELECTRA 能够更高效地利用计算资源。实验表明,ELECTRA 在相同的计算资源下,显著优于 BERT 和 XLNet。特别是在小模型上,ELECTRA 的表现尤为突出,例如在单个 GPU 上训练 4 天的模型在 GLUE 基准测试中超越了 GPT。ELECTRA 的计算效率不仅体现在训练时间上,还体现在其参数效率上。ELECTRA 的判别器不需要像 BERT 那样为每个位置建模完整的标记分布,这使得 ELECTRA 在参数利用上更加高效。

小模型表现
#

ELECTRA 在小模型上的表现尤为突出。通过减少序列长度、批量大小和隐藏层维度,ELECTRA 能够在单个 GPU 上快速训练,并在 GLUE 基准测试中取得显著优于 BERT 和 GPT 的成绩。例如,ELECTRA-Small 在单个 GPU 上训练 4 天后,在 GLUE 上的得分比同等大小的 BERT 高出 5 分,甚至超越了更大的 GPT 模型。ELECTRA 的小模型不仅在计算资源有限的情况下表现出色,还为研究人员和从业者提供了更广泛的应用可能性。ELECTRA 的成功表明,通过改进预训练任务设计,可以在不牺牲性能的情况下显著减少计算资源的消耗。

未来研究方向
#

ELECTRA 的成功为未来的自然语言处理预训练研究提供了新的方向。首先,ELECTRA 的计算效率优势表明,未来的预训练方法应更加注重计算资源的有效利用,而不仅仅是追求绝对性能。其次,ELECTRA 的生成器和判别器结构为多任务学习提供了新的思路,未来的研究可以探索如何将 ELECTRA 的生成器设计为自回归模型,并引入“替换片段检测”任务。此外,ELECTRA 的成功也为多语言预训练提供了新的可能性,未来的研究可以探索如何将 ELECTRA 应用于多语言数据。最后,ELECTRA 的判别器设计为对比学习提供了新的视角,未来的研究可以进一步探索如何通过对比学习提高模型的表示能力。

完整论文
#