完胜BERT!NLP预训练利器:小模型也有高精度,单个GPU就能训练
2020-03-13 12:37:59
十三 发自 凹非寺
量子位 报道 | 公众号 QbitAI
这款NLP预训练模型,你值得拥有。
它叫ELECTRA,来自谷歌AI,不仅拥有BERT的优势,效率还比它高。
ELECTRA是一种新预训练方法,它能够高效地学习如何将收集来的句子进行准确分词,也就是我们通常说的token-replacement。
有多高效?
只需要RoBERTa和XLNet四分之一的计算量,就能在GLUE上达到它们的性能。并且在SQuAD上取得了性能新突破。
这就意味着“小规模,也有大作用”,在单个GPU上训练只需要4天的时间,精度还要比OpenAI的GPT模型要高。
ELECTRA已经作为TensorFlow的开源模型发布,包含了许多易于使用的预训练语言表示模型。
让预训练变得更快
现存的预训练模型主要分为两大类:语言模型 (Language Model,LM)和掩码语言模型(Masked Language Model,MLM)。
例如GPT就是一种LM,它从左到右处理输入文本,根据给定的上下文预测下一个单词。
而像BERT、RoBERTa和ALBERT属于MLM,它们可以预测输入中被掩盖的少量单词。MLM具有双向的优势,它们可以“看到”要预测的token两侧的文本。
但MLM也有它的缺点:与预测每个输入token不同,这些模型只预测了一个很小的子集(被掩盖的15%),从而减少了从每个句子中获得的信息量。
而ELECTRA使用的是一种新的预训练任务,叫做replaced token detection (RTD)。
它像MLM一样训练一个双向模型,也像LM一样学习所有输入位置。
受生成对抗网络(GAN)的启发,ELECTRA通过训练模型来区分“真实”和“虚假”输入数据。
BERT破坏输入的方法是,使用“[MASK]”替换token,而这个方法通过使用不正确的(但有些可信的)伪token替换一些输入token。
例如下图中的“cooked”可以替换为“ate”。
首先使用一个生成器预测句中被mask掉的token,接下来使用预测的token替代句中的[MASK]标记,然后使用一个判别器区分句中的每个token是原始的还是替换后的。
在预训练后,将判别器用于下游任务。
完胜BERT,SQuAD 2.0表现最佳
将ELECTRA与其他最先进的NLP模型进行比较可以发现:
在相同的计算预算下,它比以前的方法有了很大的改进,在使用不到25%的计算量的情况下,性能与RoBERTa和XLNet相当。
为了进一步提高效率,研究人员还尝试了一个小型的ELECTRA模型,它可以4天内在单个GPU上进行训练。
虽然没有达到需要许多TPU来训练的大型模型的精度,但ELECTRA仍然表现得突出,甚至超过了GPT(只需要1/30的计算量)。
最后,为了看看是否能够大规模实施,研究人员使用了更多的计算量(大约与RoBERTa相同的数量,约T5的10%),来训练一个大型ELECTRA。
结果表明,在SQuAD 2.0测试集上效果达到了最佳。
不仅如此,在GLUE上也超过了超过了RoBERTa、XLNet和ALBERT。
代码已开源
其实,这项研究早在去年9月份的时候便已发表。但令人激动的是,就在近几日,代码终于开源了!
主要是ELECTRA进行预训练和对下游任务进行微调的代码。目前支持的任务包括文本分类、问题回答和序列标记。
开源代码支持在一个GPU上快速训练一个小型的ELECTRA模型。
ELECTRA模型目前只适用于英语,但研究人员也表示,希望将来能发布多种语言的预训练模型。
传送门
谷歌AI博客:
https://ai.googleblog.com/2020/03/more-efficient-nlp-model-pre-training.html
GitHub地址:
https://github.com/google-research/electra
论文地址:
https://openreview.net/pdf?id=r1xMH1BtvB
— 完 —
完胜BERT!NLP预训练利器:小模型也有高精度,单个GPU就能训练相关推荐
- 完胜BERT!谷歌NLP预训练利器:小模型也有高精度,单个GPU就能训练 | 代码开源...
十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI 这款NLP预训练模型,你值得拥有. 它叫ELECTRA,来自谷歌AI,不仅拥有BERT的优势,效率还比它高. ELECTRA是一种新预训练方 ...
- 谷歌量子霸权论文;13项NLP任务夺冠的小模型ALBERT
机器之心整理 参与:一鸣.杜伟 本周重要论文很多,特别是谷歌的研究非常耀眼,有量子霸权论文和参数小 BERT 很多但性能超 XLNe 的模型 ALBERTt.此外还有北大等的论文. 目录: Gate ...
- 为什么要压缩模型,而不是直接训练一个小的CNN?
来源:https://www.zhihu.com/question/303922732 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 作者:鸫棟tian https://www.zhihu.c ...
- AI孙燕姿 ?AI东雪莲 !—— 本地部署DDSP-SVC一键包,智能音频切片,本地训练,模型推理,为你喜欢的角色训练AI语音模型小教程
目录 感谢B站UP羽毛布团 演示视频 稻香--东雪莲 虚拟--东雪莲 反方向的钟--东雪莲 晴天+龙卷风--东雪莲 ZOOD--东雪莲 DDSP-SVC 3.0 (D3SP) 是什么? 下载资源: 解 ...
- 关于PaddleNLP如何加载训练好的模型进行NER
关于PaddleNLP如何加载训练好的模型进行NER 关于PaddleNLP如何加载训练好的模型进行NER 当时在如何加载已经训练好的模型的问题上花了很长时间,后来也是受另一篇文章启发,问题才得以解决 ...
- 训练一个130亿参数的模型要用几个GPU?微软:一个就够
视学算法报道 转载自公众号:机器之心 作者:蛋酱.张倩 现在的模型动辄数百.数千亿参数,普通人训不动怎么办? 前不久,谷歌发布了参数量为 1.6 万亿的语言模型 Swith Transformer,将 ...
- Tensorflow加载预训练模型和保存模型(ckpt文件)以及迁移学习finetuning
使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练.这时候我们需要掌握如何操作这些模型数据.看完本文,相信你一定会有收获 ...
- Tensorflow 加载预训练模型和保存模型
使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练.这时候我们需要掌握如何操作这些模型数据.看完本文,相信你一定会有收获 ...
- OpenCV的dnn模块调用TesorFlow训练的MoblieNet模型
七月 上海| 高性能计算之GPU CUDA培训 7月27-29日三天密集式学习 快速带你入门阅读全文> 正文共2073个字,2张图,预计阅读时间10分钟. 一.初得模型 那是一个月之前的事情了 ...
最新文章
- oracle10g ora 29702,ORA-29702,请帮助一下。
- delphi中等待外部应用程序执行完成后,再继续执行自有代码段
- 良好编程习惯的重要性
- 如何构建行业知识图谱 (以医疗行业为例)
- 数据结构-排序基础代码
- couchbase java 手册_couchbase的使用 java
- oracle socct用户,oracle 19c 添加 scott用户与表
- PX4 CMakeLists.txt 文件剖析
- python蟒蛇绘制
- Atitit db query op shourt code lib list 数据库查询最佳实践 JdbcTemplate spring v2 u77 .docx Atitit db query o
- 我的chrome插件
- MAC终端命令颜色设置
- html全部布局代码大全,HTML 布局(示例代码)
- 传送带计数器c语言程序,脉搏计数器的程序(用C语言编写程序)
- 相较于本地渲染,云渲染用起来感觉怎么样?
- 新闻——覃雄派、王会举、杜小勇、王珊论文两次入选“领跑者5000—中国精品科技期刊顶尖学术论文”
- 真人语音朗读软件_讯飞语音云助力移动“和阅读”,打造个性化听书应用
- 2000-2020年地级市进出口总额数据
- python房价预测模型_python随机森林房价预测
- CATIA许可证安装,破解文件运行不了直接跳到finish问题
热门文章
- 给脚本添加可执行权限,并执行脚本 转
- Import-Module : 未能加载指定的模块“\Neo4j-Management.psd1”
- 转牛人博客 稀疏矩阵定义CSR COO CSC 第一个讲的清晰易懂的人
- encoder-decoder 注意力机制整理名望所
- UCI机器学习数据集库
- 事件委托技术原理和使用(js,jquery)
- 还款每个月90.85元, 到 2012年10月,2012 11月 2256元,共 5799.25元
- 不看你都不知道,原来码农的诞生这么不容易
- 用户界面设计准则从何而来
- 【世界最大人脸对齐数据集】ICCV 2017:距离解决人脸对齐已不远