electra-large-discriminator参数量_electra remover
好久不见了各位,今天我想跟大家探讨一下关于“electra-large-discriminator参数量”的问题。如果你还不了解这方面的内容,那么这篇文章就是为你准备的,请跟我一起来探索一下。
1.ELECTRA:比 BERT 更好的生成判别模型
ELECTRA:比 BERT 更好的生成判别模型
BERT 在训练的过程中使用了 Masked Language Model (MLM),随机遮挡一些单词,并对这些单词进行预测,BERT 训练的需要大量的计算量。ELECTRA 提出了一种新的预训练方法 Replaced Token Detection (RTD),训练过程类似 GAN,利用生成器将句子中的单词进行替换,然后判别器判断句子中哪些单词被替换过。ELECTRA 比 BERT 和 RoBERTa 效果更好,并且只用了 RoBERTa 1/4 的计算量就达到了类似的效果。BERT 的预训练任务是 MLM,随机选择输入句子中 15% 的单词,然后其中的 80% 的单词用 [mask] 替换,10% 保持不变,10% 随机替换。然后 BERT 会对这 15% 的单词进行预测,还原回真实的单词。例如输入的句子是 "the artist sold the painting",MLM 将其中的 painting 用 [mask] 替换,变成 "the artist sold the [mask]",然后 BERT 要预测 [mask] 真实的单词是什么。
MLM 预训练任务存在一些缺点:
ELECTRA 针对 BERT 的这些问题,提出了 Replaced Token Detection (RTD) 预训练任务,其训练过程类似 GAN,如下图所示。
ELECTRA 由两个部分组成,第一部分是生成器 (Generator),生成器将句子中的部分单词进行替换,例如图中将 painting 替换成了 car。第二部分是判别器 (Discriminator),判别器用于判断一个句子中每一个单词是否被替换了,训练的过程会预测所有的单词,比 BERT 更高效。
Generator
ELECTRA 中如果使用简单的随机替换,会让判别器 (Discriminator) 很容易判断单词是否被替换过,例如将句子 "the artist sold the painting" 中的 painting 随机替换成 air,则判别器很容易判断出 "the artist sold the air" 中的 air 被替换过 。
因此 ELECTRA 使用了 MLM 对生成器进行训练,也是随机 [mask] 部分单词,然后用生成器预测的结果替换该单词,例如 Generator 将 painting 替换成 [mask],然后预测的时候将该位置预测成 car。这种 Generator 预测错误的单词具有更强的迷惑性。生成器预测的时候使用了 softmax,如下公式,公式中 hG 表示编码后的向量,e(x) 表示单词 x 的 embedding,t 表示位置。
Discriminator
判别器接收到生成器生成的句子,就会分别预测每一个单词是否被替换过。这一个过程会对句子的所有单词都进行预测,因此效率比 BERT 更高。最后训练得到的判别器将用于下游的任务。Discriminator 的预测公式如下:
总体损失函数
ELECTRA 总体的损失函数由生成器的损失函数 LMLM 和判别器的损失函数 LDisc 组成。生成器的训练损失函数仍然是 MLM 损失函数,主要原因是生成器将单词进行替换,而单词是离散的,导致判别器到生成器的梯度中断了。因此 ELECTRA 的损失函数由这两个部分相加组成。
参数共享
ELECTRA 尝试将生成器和判别器的参数进行共享,使用相同大小的生成器和判别器。实验中不共享任何参数得到的 GLUE 分数为 83.6,共享单词 embedding 层后的 GLUE 分数为 84.3,共享所有参数的 GLUE 分数为 84.4。因此作者使用了共享单词 embedding 的方式,作者认为生成器能够更好地学习单词的 embedding,这主要归功于生成器在训练时会对所有的单词计算 softmax,可以利用所有单词的 embedding。
生成器大小
作者也对比了不同生成器和判别器大小对模型性能的影响,实验结果如下图所示。
图中横坐标为生成器的大小,纵坐标为 GLUE 分数,可以看到在生成器过大会影响模型的性能,比较好的生成器大小是判别器小的1/4~1/2。这主要是因为生成器过于强大,会导致判别器很难学习。
训练方法对比
ELECTRA 训练方式在上一节已经说了,主要优化生成器和判别的损失函数。作者在论文中还对比了另外两种训练方法:
可以看到 ELECTRA 的训练方法相对比较好,而 Two-Stage 的方法效果是最差的,但是仍然比 BERT 要好。
和 BERT RoBERTa 计算量对比
上图的横坐标是浮点数计算总量 FLOPs (floating point operations),用于表示计算量,而纵坐标是 GLUE 分数。可以看到 ELECTRA 在计算量只有 RoBERTa 1/4 的时候就可以达到相近的性能。
实验结果
从上图可以看出 ELECTRA 的效果要好于 BERT,同样大小的模型都是超过 BERT 的。
从上图可以看出 ELECTRA 效果和 RoBERTa 差不多,但是计算量只是 RoBERTa 的 1/4。
ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS
好了,今天关于“electra-large-discriminator参数量”的话题就到这里了。希望大家通过我的介绍对“electra-large-discriminator参数量”有更全面、深入的认识,并且能够在今后的学习中更好地运用所学知识。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。