首页 > 编程知识 正文

bert自然语言处理(bert训练)

时间:2023-05-06 12:50:12 阅读:91825 作者:2402

雷锋网AI源创评论称,近日,谷歌发布了AI语言模型ELECTRA作为TensorFlow上的开源模型。 该方法使用一种叫做替代令牌检测(RTD )的新的预训练任务,使得能够一边从所有输入位置学习一边训练双向模型。

另外,在同等计算资源的情况下,ELECTRA的性能优于现有方法; 在参数量只有1/30的情况下,可以获得不亚于最先进的BERT系列机型的性能。 谷歌发表了一篇介绍这个开源成果的文章,雷锋网AI源创将其整理编译如下。

语言模型现状与瓶颈

近年来,语言训练前模型的最新进展在自然语言处理方面也取得了很大的进展,其中不乏BERT、RoBERTa、XLNet、ALBERT、T5等前沿模型。

这些方法在设计上有差异,但与利用特定的NLP任务(例如情感分析、问题解答等)进行微调时,利用未标记的大量文本构建语言理解的通用模型的想法相同。

因此,现有的事前训练方法通常分为语言模型(LM )这两种,例如GPT。 此类方法从左到右处理输入文本,并在给出上一个上下文时预测下一个单词。

另一种是遮罩语言模型(MLM ),如BERT、RoBERTa和ALBERT。 这些模型分别预测输入中被屏蔽的少量单词的内容。 与LM相比,MLM具有双向预测的优势,因为MLM可以看到预测单词的左侧和右侧文本。

但是,MLM模型的预测也有缺点,由于这些模型的预测仅限于有输入标记的小子集(被屏蔽部分的15% ),因此从各语句获得信息的量减少,计算成本增加。

现有的事前训练方法及其缺点。 箭头指示使用哪个标记来生成给定的输出表示(矩形)。 左:传统语言模型(如GPT )只使用当前单词左侧的上下文。 右:遮罩语言模型(如BERT )从左到右使用上下文,但每次输入时只预测单词的一部分

新型预训练模型 ELECTRA

为了克服这两种语言模型的缺点,谷歌提出了electra (EFICientlyle Arning Anencoderthatclassifiestokenre Placement Saccurately )语言模型。 这是一种新的预训练方法,重要的是将预训练文本编码器作为标识符而不是生成器来处理现有语言模型的问题。

论文地址: https://开放式review.net/pdf? id=r1xm h1比特电视

在相同的模型大小、数据、计算量的情况下,该方法的性能明显优于MLM类方法,如BERT和XLNet; 另外,ELECTRA小型机型只需要用一枚GPU训练4天就可以获得。

具体实验数据表明,该小模型在GLUE得分上比BERT小模型高5分,比使用30倍以上计算能力的大GPT模型更有效。

ELECTRA在使用小于1/4的计算量时,可以按照GLUE自然语言理解标准达到RoBERTa和XLNet的性能。 当使用更多的计算机训练大规模的ELECTRA时,这个模型是SQuAD 2.0的问答amp; 在a数据集和语言理解任务的排名中获得了最先进的性能。 (具体数据见第四节)

核心思想——替换令牌检测

ELECTRA使用一种新的预培训任务,称为备用令牌检测(RTD )。 在本任务中,一边从所有输入位置) LM )学习,一边进行双向模型) MLM )的训练。

具体来说,ELECTRA的目标是学习区分输入的语言。 通过从建议的分布中采样单词并替换输入,而不使用掩码,解决了掩码预训练与精细调不一致的问题。

然后,模型训练另一个判别器,预测每个词是原词还是替换词。 判别器的一个优点是,模型不像MLM那样只使用被屏蔽的单词,而是从输入的所有单词中学习,因此计算更有效。

正如许多开发者联想到的对抗学习方法一样,ELECTRA确实受到了生成对抗网络的启发(GAN )。 但是,模型采用最大似然,却是非对抗学习。

例如,在下图中,“cooked”一词可以替换为“ate”。 这是有道理的,但不适合整个上下文。 在培训任务中,需要模型(即分类器)来确定原始输入中的哪些标签被替换或保持不变。

RTD方法的效率高于MLM,因为该模型的二进制分类任务适用于每个输入单词,而不是少数掩码单词(在BERT样式的模型中为15% )。 这也解释了为什么ELECTRA需要更少的样本来实现与其他语言模型相同的性能。

https://p26.toutiaoimg.com/origin/pgc-image/RtOjCERAvCfIFJ?from=pc">

从所有输入位置学习时,替换的令牌检测可进行双向训练

其中,替换令牌来自生成器的神经网络。生成器的目标是训练掩码语言模型,即给定输入序列后,按照一定的比例(通常 15%)将输入中的词替换成掩码;然后通过网络得到向量表示;之后再采用 softmax 层,来预测输入序列中掩盖位置的词。

尽管生成器的结构类似于 GAN,但由于难以将该方法应用于文本任务,因此得到的训练目标函数为掩盖词的最大似然。

之后,生成器和判别器共享相同的输入词嵌入。判别器的目标是判断输入序列每个位置的词是否被生成器替换,如果与原始输入序列对应位置的词不相同,就判别为已替换。

生成器与判别器神经网络模型

具体研究结果对比

研究人员将 ELECTRA 与其他最新的 NLP 模型进行了比较,发现在给定相同的计算预算的情况下,它与以前的方法相比有了实质性的改进,其性能与 RoBERTa 和 XLNet 相当,而使用的计算量不到 1/4。

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

为了进一步提高效率,研究人员尝试了一个小型的 ELECTRA 模型,该模型可以在 4 天的时间内在单个 GPU 上进行良好的训练。

尽管无法达到与需要训练许多 TPU 的大型模型相同的精度,但 ELECTRA-small 的性能仍然很好,甚至比 GPT 还要好,而所需的计算量却只有其三分之一。

之后,为了测试这一结果是否能大规模实施,研究人员使用了更多的计算量(大约与 RoBERTa 相同的数量,大约是 T5 的 10%)训练了一个大型 ELECTRA 模型。

研究人员将大型 ELECTRA、RoBERTa、XLNet、BERT 和 ALBERT 模型在 SQuAD 2.0 问题回答数据集的表现做了测试,结果如下表所示;可以看到在 GLUE 排行榜上,ELECTRA 的表现优于其它所有模型。

但相比大型 T5-11b 模型,后者在 GLUE 上的得分仍然更高。但值得注意的是,ELECTRA 的大小是其三分之一,并使用 10%的计算进行训练。

SQUAD 2.0 数据集在 ELECTRA-Large 和其他最新模型中得分

目前,用于预训练 ELECTRA 并在下游任务上对其进行微调的代码已发布,当前支持的任务包括:文本分类、问题解答和序列标记。

该代码支持在一个 GPU 上快速训练小型 ELECTRA 模型。之后,谷歌还计划发布适用于 ELECTRA-Large,ELECTRA-Base 和 ELECTRA-Small 的预训练代码。(ELECTRA 模型目前仅支持英语,后续将发布更多语言版本)

原文地址:

https://ai.googleblog.com/2020/03/more-efficient-nlp-model-pre-training.html

GitHub 地址:

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

雷锋网 AI 源创评论 雷锋网

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。