ELECTRA:类似GAN的预训练语言模型

简介: ELECTRA:类似GAN的预训练语言模型

论文标题:ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators


论文链接:https://arxiv.org/abs/2003.10555


论文来源:ICLR 2020


一、概述


目前的SOTA语言表示学习方法可以看做是在学习一个去噪自编码器(denoising autoencoder),它们选择无标注的输入序列的一小部分(通常15%),然后将这一部分mask掉(比如BERT),或者attend到这些token(比如XLNet),然后训练整个网络来还原原来的输入。由于每个样本只学习15%的token,这些Masked Language Modeling(MLM)的方法通常需要大量的算力。


在本文中提出的replaced token detection的预训练方法,在这个方法中,不会使用[MASK]来替换token,而是使用从提议分布中的采样来进行替换,这些采样来自一个小的masked language model。这种方法解决了BERT中(在XLNet中没有)的一个mismatch的问题,也就是网络只在训练时遇到过[MASK]这个token,而在微调时并没有遇到。输入被采样替换后会将网络当做一个discriminator来识别一个token是原来的还是被替换过的。另外使用一个masked language model作为generator来预测被mask的位置的原始token。比起MLM的方法,replaced token detection的一个优点是从所有的token中进行学习,而非只从15%的被mask掉的token中进行学习,这使得ELECTRA是更加高效的。前面提到的训练的方法虽然很像GAN,但事实上ELECTRA的训练并不是对抗式的,因为generator虽然提供被破坏的token,但是它使用的是极大似然的方法,这主要是因为将GAN应用到文本上有一些困难。


ELECTRA的全名叫做“Efficiently Learning an Encoder that Classifies Token Replacements Accurately.”。经过试验论证ELECTRA比BERT更加地高效并且能够在下游任务上取得更高的精度。在给定相同的模型大小、数据和算力的条件下,ELECTRA战胜了一系列模型:


SPXB[}UMJJ]JXYH2]L7ZWK0.png

                                         效率对比


二、方法


下图提供了本文方法的一个概览:


7]AH%_MCTP6]}QHWCC8]7M4.png

                                        架构


X~~%HSL3ZNGCD_(}88}Y]ZU.png

M((DY``IH4QZZDBJJ`%}GEP.png


2$(V)]A}6DZ4EZ(2}RLPVCJ.png


三、实验


本文中的实验在GLUE数据集上进行,使用GLUE score来代表GLUE数据集中所有任务的平均得分。


  1. 模型拓展


  • 参数共享


实验中探索了Generator和Discriminator的参数共享对模型效果的影响,如果Generator和Discriminator的size(这里的size指的是隐层hidden size)完全一致,那么就可以完全共享参数,但事实上实验表明使用一个小的Generator效果更好。在这种情况下,我们只共享token embedding的参数(token embedding只在Generator的输入和输出以及Discriminator的输入使用),使用的token embedding的size和Discriminator的隐层hidden size大小一致,注意当Generator的size更小时会有一个线性映射来将token embedding映射到Generator的size大小。Generator的输入和输出token embedding总是绑定在一起的,就像BERT中一样。


本文使用相同size的Generator和Discriminator进行了实验,3种不同的实验设置:不进行参数共享、只共享Generator和Discriminator的token embedding、完全共享所有参数,3种实验设置对应的GLUE得分是83.6、84.3、84.4。这说明Discriminator能够从token embedding的共享中获益,这是因为Discriminator只会更新输入中出现的和Generator采样得到的token,而Generator由于存在softmax层,所以能够更新所有的token。另外共享所有参数的提升不大并且要求Generator和Discriminator的size相同,因此在ELECTRA只会共享token embedding的参数。


  • 更小的Generator


如果Generator和Discriminator的size相同,就会导致ELECTRA的算力需求是MLM的两倍,因此ELECTRA使用小一点的Generator,也就是说Generator的隐层hidden size会小一点,甚至本文尝试使用过极简的“unigram”作为Generator。不同size的Generator和Discriminator实验结果如下:


NXQQ4%6C4KGOLH6~4_KR0G5.png

                                               不同size实验


本文推测如果Generator过于powerful会对Discriminator的学习造成阻碍,因此本文中会按照本实验的最佳实验结果来确定ELECTRA的Generator size大小。


  • 不同的训练算法


本实验对比了3种不同的训练策略。第一种是联合训练(也就是ELECTRA的训练方法),第二种是分两步的训练:


%]@V5D(R](HQC1F8BD$O5Y0.png


第三种是对抗式的方法,这种方法的实验记录在本文附录中,感兴趣的同学可以自行查看。


以下为实验的结果对比:


_F@Y~L7RM2[F8)]$XISTH$5.png

                                         不同训练算法实验


因此ELECTRA采用联合训练的方法。


  1. 实验


  • 小模型


本部分对比ELECTRA-small、ELECTRA-base等小模型实验结果:


T85$}4LJC3X15}ALS}OR(NJ.png

                                            小模型实验


  • 大模型


本部分对比ELECTRA-large等大模型实验结果:


7JDTQ]ZU(RERXGCMI}{~UXE.png

                                                   大模型实验  


  1. ELECTRA相对于BERT的提升来自何处


之前说过,ELECTRA相对于BERT有所提升是因为ELECTRA预测所有的token,而BERT只预测15%的mask的token,但是事实上BERT预测15%的mask的token时也会参考所有的token。为了更好的探索这一点,本实验做了如下3种设置:


①ELECTRA 15%:ELECTRA只预测15%的被Generator采样过的位置,也就是说Discriminator的lossY4Q9Q{}5Y4M2UZJ}JFO15JY.png所标记的位置。


②Replace MLM:一个BERT模型,不过被选中的位置不会使用[MASK]替换,而是也使用Generator的采样,设置这样一个模型是为了探索ELECTRA相对于BERT的提升是否是因为解决了之前提到的mismatch的问题。


③All-Tokens MLM:与Replace MLM设置一样,只不过要预测所有位置而非只预测mask的位置。


实验结果如下:


0KIABI473LCZAOC_DJH07JN.png

                                                实验结果


这表明:


①ELECTRA的提升的确是因为对所有位置进行预测;


②BERT的mismatch的问题的确会对效果造成轻微损害。


另外实验对比了不同size下的ELECTRA对BERT的增益,发现size越小增益越大,并且,并且对小模型进行了完全训练以达到收敛,表明完全训练时ELECTRA能够比BERT达到更高的下游精度。本文推测ELECTRA相比BERT更加的parameter-efficient,因为ELECTRA作为一个Discriminator来训练,并不需要建模完整的数据分布。这部分实验结果如下:


1]RRVE~`M[IIU3M7}1`0B4G.png

                                                  不同size对比

相关文章
|
存储 PyTorch 算法框架/工具
Tensor to img && imge to tensor (pytorch的tensor转换)
Tensor to img && imge to tensor (pytorch的tensor转换)
|
7月前
|
人工智能 安全 算法
别再刷短视频了!你的赛博替身正在工厂拧螺丝:揭秘 AI Agent 搭建师
本文揭秘AI Agent搭建师这一新兴职业:不教人用AI,而是教人“克隆”24小时在线、永不摸鱼的数字分身。涵盖认知架构、提示词工程、RAG增强、自动化流、工具调用、自主循环、记忆持久化等12大核心能力,揭示如何将AI从聊天机器人升级为可落地的“数字合伙人”。
477 7
|
人工智能 自然语言处理 物联网
用最直白的方式,带你搞懂大模型“预训练” ——为什么今天的AI模型“学什么都快”?
预训练让AI先“通读万卷书”,掌握语言和图像的通用规律,再通过微调“因材施教”,快速学会专业技能。本文用通俗比喻解析其原理,带你零代码打造专属智能客服,开启人人可用的大模型时代。
930 0
|
存储 网络性能优化 网络安全
Hyper-V云桌面优化的设置指南
这份《Hyper-V云桌面优化设置指南》涵盖了硬件、虚拟机配置、网络、安全及高级配置的优化建议。硬件方面,确保CPU支持虚拟化并合理分配资源,使用SSD和VHDX格式提升存储性能;虚拟机配置上,优化内存、处理器和硬盘设置,并安装Hyper-V集成服务;网络优化包括虚拟交换机配置、适配器调整及QoS策略;安全性设置涵盖防火墙、端口管理和加密;高级配置如显卡直连和实时迁移进一步提升性能。这些措施能显著提高Hyper-V云桌面的效率与稳定性。
|
JavaScript 开发工具 虚拟化
配置DevEco Studio的开发环境时,需要注意什么?
配置DevEco Studio的开发环境时,需要注意什么?
|
缓存 安全 算法
Spring Security OAuth 2.0 资源服务器— JWT
Spring Security OAuth 2.0 资源服务器— JWT
1580 1
|
弹性计算 Ubuntu Linux
阿里云服务器公共镜像、社区镜像、自定义镜像、共享镜像、云市场镜像区别及选择参考
阿里云服务器镜像有公共镜像、自定义镜像、共享镜像、镜像市场、社区镜像可选,对于新手用户来说,不知道他们之间的区别,因此往往不知道如何选择,本文为大家介绍他们之间的区别以及选择参考。
2835 13
|
关系型数据库 MySQL
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
2965 2
|
Java Linux API
微信API:探究Android平台下Hook技术的比较与应用场景分析
微信API:探究Android平台下Hook技术的比较与应用场景分析
|
JavaScript Java Apache
Java--office(word......)在线预览(openoffice+swfTools+FlexPaper)
Java--office(word......)在线预览(openoffice+swfTools+FlexPaper)
1282 0

热门文章

最新文章