作者 | Less Wright
编译 | ronghuaiyang
来源 | AI公园(ID:AI_Paradise)

【导读】这是来自Google和Toyota的新NLP模型,超越Bert,参数小了18倍。

你以前的NLP模型参数效率低下,而且有些过时。祝你有美好的一天。

谷歌Research和丰田技术研究所(Toyota Technological Institute)联合发布了一篇新论文,向全世界介绍了BERT的继任者——ALBERT。(“ALBERT:A Lite BERT for Self-supervised Learning of Language Representations”)。

ALBERT在SQuAD和RACE测试上创造了新的SOTA,并在比赛中以+14.5%的优势击败BERT。

ALBERT的最终结果(为GLUE,RACE,SQuAD创造了新的SOTA)方面给人留下了深刻的印象,但是…真正令人惊讶的是模型/参数大小的显著减少。

两个关键架构的更改和一个训练更改的组合使ALBERT的表现都更好,并极大地减少了模型的大小。看看下面的模型大小的比较——BERT x-large有12.7亿个参数,而ALBERT x-large有5900万个参数!

同样大小的网络(隐藏/层),BERT的参数是12.7亿,而ALBERT的参数是59M…缩小了~21.5x。

在这篇文章中有很多内容需要解释,我将尝试深入研究下面的所有重点。

对于NLP来说,更大的模型总是更好吗?不…

让我们从NLP的一个要点开始——过去的一年,NLP已经取得了进展,通过扩展transformer类型的模型,每一个较大的模型,通过简单地构建一个越来越大的预训练模型,逐步提高最终任务的准确性。在原始的BERT论文中,他们发现更大的隐藏尺寸、更多的隐藏层和更多的注意力头导致了渐进的改进,并测试了多达1024大小的隐藏层。

迄今为止最大的NLP模型是NVIDIA最近发布的Megatron,这是一个巨大的80亿参数模型,超过BERT的24倍,接近OpenAI的GPT-2的6倍。Megatron 在512个GPU的环境下接受了9天的训练。

然而,存在一个临界点或饱和点,即越大并不总是越好,ALBERT的作者表明,他们最大的模型BERT X-Large,隐藏层大小为2048以及4倍于原BERT large的参数,实际上性能下降了近20%。

越大并不总是越好——将隐藏层大小加倍,参数大小增加4倍,但是BERT在RACE数据集上的准确性降低了。

这类似于计算机视觉层深度的峰值效应。对计算机视觉来说,按比例增加层的深度可以提高到一定程度,然后下降。例如,ResNet -1000并不比ResNet152好,即使它有6.5倍数量的层。换句话说,存在一个饱和点,在这个点上,训练的复杂性压倒并降低了来自额外网络能力的收益。

因此,考虑到这一点,ALBERT的创造者开始改进架构和训练方法,以得到更好的结果,而不是仅仅构建一个“更大的BERT”。

什么是ALBERT?

ALBERT的核心架构类似于bert,因为它使用了transformer编码器架构,同时还有GELU激活。在论文中,他们也使用了与原BERT相同的30K的词汇量。(V = 30000)。然而,ALBERT做了三个重要的改变:

架构改进,更有效地使用参数:

1 — 嵌入分解参数化

ALBERT的作者注意到,对于BERT、XLNet和RoBERTa,WordPiece Embedding的大小(E)直接与隐含层大小(H)联系在一起。

然而,ALBERT的作者指出,WordPiece Embedding是用来学习上下文独立表示的。隐含层嵌入是为了学习上下文依赖表示的。

BERT的能力很大程度上依赖于通过隐藏层学习上下文相关的表示。如果你将H和E结合起来,并且NLP需要大V (vocab),那么你的嵌入矩阵E,实际上是V*E,必须与H(隐藏层)一起扩展,因此你最终得到的模型可以有数十亿个参数,但其中大多数在训练中很少更新。

因此,绑定在不同目的下工作的两个项目意味着低效的参数。

因此,将两者分开,可以更有效地使用参数,因此H(上下文相关)应该总是大于E(上下文无关)。

为此,ALBERT将嵌入参数分成两个更小的矩阵。因此,不是将独热向量直接投射到H中,而是将独热向量投射到一个更小、更低维的矩阵E中……然后投影到H隐藏空间。

因此,参数由大的O (V*H)简化为小的O (V*E + E*H)。

2 — 跨层参数共享

ALBERT通过跨层共享所有参数进一步提高了参数效率。这意味着前馈网络参数和注意力参数都是共享的。

因此,与BERT相比,ALBERT从一层到另一层的转换更平滑,作者注意到这种权值共享有助于稳定网络参数。

训练的变换 — SOP,句子顺序预测:

ALBERT确实使用了MLM(掩码语言模型),就像BERT一样,使用最多3个单词掩码(n-gram max 3)。

然而,BERT除了MLM,还使用了NSP,即下一句话预测。ALBERT开发了自己的训练方法,称为SOP。

为什么不用NSP?值得注意的是,RoBERTa的作者指出,原BERT中使用的下一个句子预测(NSP)损失不是非常有效,所以就不用了。ALBERT作者从理论上解释了为什么NSP不是那么有效,但是他们利用NSP开发了SOP -句子顺序预测。

ALBERT认为,NSP(下一个句子预测)将话题预测和连贯预测混为一谈。作为参考,NSP使用了两个句子——正样本匹配是第二个句子来自同一个文档,负样本匹配是第二个句子来自另一个文档。

相比之下,ALBERT的作者认为句子间的连贯是真正需要关注的任务/损失,而不是主题预测,因此SOP是这样做的:

使用了两个句子,都来自同一个文档。正样本测试用例是这两句话的顺序是正确的。负样本是两个句子的顺序颠倒。

这避免了主题预测的问题,并帮助ALBERT学习更细粒度的语篇或句子间衔接。

当然,结果不言自明。

我们如何把ALBERT放大呢?

根据前面提到的关于扩展大小导致收益减小的注意事项,ALBERT的作者们进行了他们自己的ALBERT扩展测试,发现了层深度和宽度(隐藏大小)的峰值点。因此,作者推荐12层模型用于ALBERT风格的交叉参数共享。

ALBERT发现删除dropout,增加数据可以提高性能:

这个非常符合计算机视觉已经发现的结论,ALBERT的作者报告说,不使用dropout得到了性能提升,当然,使用了更多的数据进行了训练。

总结

ALBERT在几个benchmarks上刷新了SOTA。这是一个惊人的突破,它建立在一年前BERT所做的伟大工作上,并在多个方面推进了NLP。尤其令人振奋的是,人工智能的未来不仅基于添加更多的GPU和简单地构建更大的训练模型,而且还将从改进的架构和参数效率方面取得进展。

作者指出,ALBERT未来的工作是提高其计算效率,可能是通过分散注意力或分块注意力。因此,希望在未来更多的来自ALBERT的进展 !

Github和ALBERT的官方来源?我找不到ALBERT的官方版本发布到github,或者通过开源方式发布,这篇文章也没有提到。希望在不久的将来能够实现。

非官方的TensorFlow版本:https://github.com/brightmart/albert_zh?source=post_page-----df8f7b58fa28----------------------

论文链接:https://arxiv.org/abs/1909.11942v1

英文原文:

https://medium.com/@lessw/meet-albert-a-new-lite-bert-from-google-toyota-with-state-of-the-art-nlp-performance-and-18x-df8f7b58fa28

(*本文为 AI科技大本营转载文章,载请联系作者

精彩推荐

2019 中国大数据技术大会(BDTC)再度来袭!豪华主席阵容及百位技术专家齐聚,15 场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读,深入解析热门技术在行业中的实践落地。
即日起,限量 5 折票开售,数量有限,扫码购买,先到先得!

推荐阅读

  • 大规模1.4亿中文知识图谱数据,我把它开源了

  • 快速适应性很重要,但不是元学习的全部目标

  • 太鸡冻了!我用Python偷偷查到暗恋女生的名字

  • 刷爆了!GitHub标星1.6W,这个Python项目太实用!

  • 巨头垂涎却不能染指,loT 数据库风口已至

  • 【建议收藏】数据中心服务器基础知识大全

  • 从4个维度深度剖析闪电网络现状,在CKB上实现闪电网络的理由 | 博文精选

  • 2019 年诺贝尔物理学奖揭晓!三得主让宇宙“彻底改观”

  • 不服!身边程序员同事竟说自己敲代码速度快!Ctrl+C、Ctrl+V ?

你点的每个“在看”,我都认真当成了AI

谷歌丰田联合成果ALBERT了解一下:新轻量版BERT,参数小18倍,性能依旧SOTA相关推荐

  1. 谷歌联合印企狙击华为鸿蒙OS:推出轻量版安卓系统打造智能手机

    众所周知,华为鸿蒙OS2.0版在发布短短的几个月时间里,用户数直接突破了1.5亿,成为世界上发展最快的手机操作系统. 即使是苹果IOS.谷歌Android系统也只能望尘莫及,但是对于华为来说,研发鸿蒙 ...

  2. 轻量型「孟子」模型比肩千亿大模型!AI大牛周明率队刷新CLUE新纪录

    AI 科技评论报道 编辑 | 陈大鑫 近日,澜舟科技-创新工场团队与上海交通大学.北京理工大学等单位联合研发的中文语言模型-孟子轻量型模型,超越腾讯.搜狗等公司,在中文语言理解评测CLUE榜单上登顶第 ...

  3. 联想小新air14plus酷睿版和锐龙版哪个好

    追求性价比,锐龙版更值得: 联想小新air14plus酷睿版:目前值得入手新版是i5 1155g7处理器版本,日常的价格行情是¥5999.00左右. 联想小新air14plus锐龙版:其锐龙版在售的共 ...

  4. 谷歌大脑DeepMind合并,Google DeepMind新成立

           美东时间 4 月 20 日,谷歌母公司 Alphabet 首席执行官 Sundar Pichai (人送昵称"劈柴")宣布,谷歌旗下最大的两个 AI 研究机构--地处 ...

  5. 近期活动盘点:知识智能高峰论坛暨“知识智能联合研究中心”年度报告会、新时代的医学影像及心脑血管成像的应用思享会...

    想知道近期有什么最新活动?大数点为你整理的近期活动信息在此: 知识智能高峰论坛暨"知识智能联合研究中心"年度报告会 2019年7月30日 会议内容 知识智能是近年来全球关注的热点话 ...

  6. 覆盖40种语言:谷歌发布多语言、多任务NLP新基准XTREME

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 自然语言权威数据集 GLUE 一直是衡量各机构 NLP 预训练技术水平最重要的指标 ...

  7. LatentFusion:华盛顿大学与英伟达联合提出6D姿态估计新方法

    作者 | Keunhong Park.Arsalan Mousavian.Yu Xiang.Dieter Fox 译者 | 刘畅 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100 ...

  8. 谷歌 Daydream 实验室:VR中学习新技能是一种怎样的体验?

    谷歌 Daydream 实验室:VR中学习新技能是一种怎样的体验? 本文作者:逸炫 编辑:田苗 2017-07-26 10:56 导语:要学做一桌满汉全席,还是得撸起袖子下厨房. 雷锋网按:在VR中, ...

  9. 图新地球工程版|同豪路易BIM设计成果、CAD、倾斜模型、纬地数据、影像地形等多源项目数据融合展示汇报

    图新地球工程版是面向公路.基建.电力.水利等工程行业类用户推出的一套全新三维 GIS +工程行业应用解决方案,能够将 路易/同豪BIM设计成果(.skp和.fbx格式).CAD.全景照片.倾斜模型(大 ...

最新文章

  1. python使用matplotlib绘制k线图
  2. jmeter 非gui 模式跑jmx
  3. php server自定义函数,php:SQL Server用户自定义的函数种类详解
  4. centos写mysql光标移到上一行_mysql:一条SQL更新语句(update)是如何执行的
  5. 信息学奥赛一本通(1029:计算浮点数相除的余)
  6. 编程时请选择正确的输入法,严格区分中英文
  7. native8081端口 react_教你轻松修改React Native的端口(如何同时运行多个React Native、8081端口占用问题)...
  8. python协程,asyncIO
  9. C++之priority_queue
  10. 校园客户端linux创翼,电信创翼校园客户端-电信创翼校园网客户端下载 4.7.9.589 官方版 - 河东下载站...
  11. CSS现状和如何学习
  12. linux磁盘怎么分区,linux磁盘分区,linux磁盘分区怎么划分
  13. 测试总结报告写法简单总结
  14. P3110 [USACO14DEC]驮运Piggy Back
  15. win10修改hosts小工具
  16. MATLAB实现大家来找茬GUI程序
  17. SaaSBase:什么是INFOR ERP?
  18. tensorflow报错Can not squeeze dim[1], expected a dimension of 1, got n for解决办法
  19. 最新进展:钉钉被小学生逼疯,拍片在线求饶哈哈哈哈
  20. 【转载】APP图标在手机上显示模糊的问题

热门文章

  1. B00009 C语言分割字符串库函数strtok
  2. oracle中的exists 和not exists 用法详解
  3. 测试发现equals和hashCode与书上描述的不一样
  4. Lucene.net: the main concepts
  5. 电动汽车驱动电机及其控制系统
  6. H3C 静态默认路由配置
  7. 面向对象(类的概念,属性,方法,属性的声明,面向对象编程思维
  8. java实现https请求
  9. 跟面向对象卯上了,看看ES6的“类”
  10. 技巧:结合Zabbix与SNMP监控嵌入式设备