Press "Enter" to skip to content

发布 ELECTRA:提升 NLP 模型预训练效率

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

文 / Google Research 及 Google Brain 团队学生研究员 Kevin Clark 和高级研究员 Thang Luong

 

 

在语言预训练模型方面取得的最新进展已为自然语言处理领域 (NLP) 带来巨大收获,包括 BERT 、 RoBERTa 、 XLNet 、 ALBERT 和 T5 等最前沿 (SOTA) 模型。这些训练方法尽管在设计上各不相同,但都遵循相同的理念:在针对特定 NLP 任务(例如情感分析和问题回答)微调之前,利用大量未标记文本来构建通用的语言理解模型。

 

现有预训练方法通常分为两类:一是语言模型(LM,如 GPT ),这类模型按照从左至右的顺序处理输入文本,依据先前上下文预测下一个词;二是掩码语言模型(MLM,如 BERT、RoBERTa 和 ALBERT),这类模型改为预测输入文本中已掩盖的少量单词的特征。MLM 具有双向性,能够“看到”被预测 Token 左右两侧的文本,而非只是一侧,这是该模型的优势。但是,MLM 目标(及 XLNet 模型等的相关目标)也有缺点。这些模型并没有预测每个输入 Token,而只是预测很小的子集,即被掩盖的 15%,从而减少了从每个句子中学习的信息量。

 

 

现有预训练模型及其缺点:箭头指示用于生成给定输出表示(矩形)的 Token。 左:LM(如 GPT)仅使用当前单词左侧的上下文。右:MLM(如 BERT)使用左右两侧的上下文,但是对于每个输入仅预测很小子集的单词

 

在“ ELECTRA:预训练文本编码器作为判别器而不是生成器 ” (ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators) 中,我们采用不同的语言预训练方法,兼具 BERT 的优势,并且学习效率更高。ELECTRA — Efficiently Learning an Encoder that Classifies Token Replacements Accurately (高效地学习对 Token 替换进行准确分类的编码器)是一种新颖的预训练方法,在相同的计算预算下,其性能优于现有技术。例如,ELECTRA 仅使用不到 ¼ 的计算量即可在 GLUE 自然语言理解基准上达到与 RoBERTa 和 XLNet 相当的性能,并且能在 SQuAD 问题回答基准上达到 SOTA 结果。ELECTRA 出色的效率意味着即使在小型模型上也有不错的训练效果——可在数天内在单个 GPU 上完成训练,准确率高于需使用 30 倍以上计算量的 GPT 模型。ELECTRA 在 TensorFlow 上作为开源代码模型 发布 ,并且包含许多立即可用的预训练语言表示模型。

 

加快预训练速度

 

ELECTRA 使用一种称为 “ 替换 Token 检测” (RTD) 的新预训练任务,该任务可在训练双向模型(如 MLM)的同时,从所有输入位置(如 LM)学习,。

 

受生成对抗网络 (GAN) 启发,ELECTRA 可训练模型区分“真实”和“虚假”输入数据。我们的方法是通过将一些输入的 Token 替换为不正确但有些合理的内容来抹去输入,而不是像 BERT 中那样通过用 “[MASK]” 替换 token 来抹去部分输入。例如,在下图中,单词“cooked”可替换为“ate”。虽然这一替换勉强说得通,但却不符合整个上下文的语义。预训练任务要求模型(即 判别器 )接下来要确定原始输入中的哪些 Token 已被替换或仍保持一致。重要的是,这项二分类任务将被应用于 每项 输入的 Token,而不只是少量的掩码 Token(在类 BERT 的模型中仅占为 15%),这使得 RTD 比 MLM 更加有效。而 ELECTRA 只需更少的示例即可实现相同的性能,原因在于 ELECTRA 能够接收每个示例的模式训练信号。与此同时,RTD 可促成强大的表示学习,这是因为模型必须学习准确表示的数据分布才能完成任务。

 

 

替换 Token 检测在从所有输入位置学习的同时,训练双向模型

 

替换 Token 来自称为生成器的 另一个神经网络 。虽然生成器可以是在 Token 上产生输出分布的任何模型,但我们使用与判别器联合训练的小型掩码语言模型(即有小规模掩码的 BERT 模型)。尽管生成器结构与 GAN 相似,但是由于将 GAN 应用于文本存在 难度 ,我们训练生成器以最大可能性预测已掩盖的单词,而非进行对抗性预测。生成器和判别器共享相同的输入单词嵌入。在进行预训练后,生成器下降,判别器(ELECTRA 模型)在下游任务上进行微调。我们的模型均使用 transformer 神经网络架构。

 

 

有关替换 Token 检测 (RTD) 任务的更多细节。假 Token 自与 ELECTRA 联合训练的小型掩码语言模型中采样

 

ELECTRA 结果

 

我们将 ELECTRA 与其他前沿 NLP 模型进行比较,发现在给定的相同计算预算下,相较之前的方法,ELECTRA 取得实质性的改进,其性能与 RoBERTa 和 XLNet 相当,而使用的计算量不到 25%。

 

 

x 轴显示用于训练模型的计算量(以 FLOP为单位),y 轴显示 dev GLUE 得分。与现有预训练 NLP 模型相比,ELECTRA 的学习效率要高得多。但需要注意的是,目前 GLUE 上的最佳模型(例如 T5 (11B) )与该图情况不符,因为其使用的计算量比其他模型多得多(大约比 RoBERTa 多 10 倍)

 

为进一步突破效率上限,我们通过一个小型 ELECTRA 模型进行实验,该模型可在 4 天内于单个 GPU 上训练得到很好的精确度。尽管无法达到与需要多个 TPU 进行训练的大型模型相同的精确度,但小型 ELECTRA 的性能仍然非常不错,甚至优于 GPT,而所需的计算量却只有其 1/30。

 

最后,为确定是否能在大范围内达到理想的结果,我们使用更多的计算量(大约与 RoBERTa 相同的量,大约是 T5 的 10%)训练了一个大型 ELECTRA 模型。该模型在 SQuAD 2.0 问题回答数据集(见下表)中达到单个模型的全新领先水平,并且在 GLUE 排行榜上的表现优于 RoBERTa、XLNet 和 ALBERT。虽然大型 T5-11b 模型在 GLUE 上的得分仍然较高,但 ELECTRA 的大小是其 1/30,而用于训练的计算量是其 10%。

 

模型Squad 2.0 测试集
ELECTRA-Large88.7
ALBERT-xxlarge88.1
XLNet-Large87.9
RoBERTa-Large86.8
BERT-Large80.0

 

ELECTRA-Large 和其他前沿模型(仅显示非整体模型)的 SQuAD 2.0 得分

 

发布 ELECTRA

 

我们将发布 代码 ,以用于执行 ELECTRA 预训练并在下游任务对其进行微调,而当前受支持的任务包括:文本分类、问题回答和序列标记。代码支持在单个 GPU 上快速训练小型 ELECTRA 模型。我们还将发布适用于 ELECTRA-Large、ELECTRA-Base 和 ELECTRA-Small 的预训练权重。ELECTRA 模型目前仅支持使用英文,但我们希望未来可以发布已接受多种语言预训练的模型。

 

如果您想详细了解 本文提及 的相关内容,请参阅以下文档。这些文档深入探讨了这篇文章中提及的许多主题:

 

发布(阅读原文)

https://github.com/google-research/electra

 

BERT

https://arxiv.org/abs/1810.04805

 

RoBERTa

https://arxiv.org/abs/1907.11692

 

XLNet

https://arxiv.org/abs/1906.08237

 

ALBERT

https://arxiv.org/abs/1909.11942

 

T5

https://ai.googleblog.com/2020/02/exploring-transfer-learning-with-t5.html

 

GPT

https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf

 

ELECTRA:预训练文本编码器作为判别器而不是生成器

https://openreview.net/forum?id=r1xMH1BtvB

 

GLUE

https://gluebenchmark.com/leaderboard

 

SQuAD

https://rajpurkar.github.io/SQuAD-explorer/

 

难度

https://arxiv.org/abs/1811.02549

 

transformer

https://arxiv.org/abs/1706.03762

 

T5

https://arxiv.org/pdf/1910.10683.pdf

 

SQuAD 2.0

https://rajpurkar.github.io/SQuAD-explorer/

 

T5-11b

https://arxiv.org/abs/1910.10683

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注