ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA

Wesley13
• 阅读 1191

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Less Wright

编译:ronghuaiyang

导读

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

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

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

ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA

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

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

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

ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA

同样大小的网络(隐藏/层),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%。

ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA

越大并不总是越好——将隐藏层大小加倍,参数大小增加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从一层到另一层的转换更平滑,作者注意到这种权值共享有助于稳定网络参数。

ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA

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

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

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

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

ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA

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

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

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

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

当然,结果不言自明。

如何我们把ALBERT放大呢?

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

ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA

ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA

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

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

ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA

总结:

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

ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA

— END—

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

ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA

请长按或扫描二维码关注本公众号

喜欢的话,请给我个好看吧**ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA **

本文分享自微信公众号 - AI公园(AI_Paradise)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
2年前
Perseus
一,背景——横空出世的BERT全面超越人类2018年在自然语言处理(NLP)领域最具爆炸性的一朵“蘑菇云”莫过于GoogleResearch提出的BERT(BidirectionalEncoderRepresentationsfromTransformers)模型。作为一种新型的语言表示模型,BERT以“摧枯拉朽”之势横扫包括语言问答、
Wesley13 Wesley13
2年前
ERNIE:知识图谱结合BERT才是「有文化」的语言模型
自然语言表征模型最近受到非常多的关注,很多研究者将其视为NLP最重要的研究方向之一。例如在大规模语料库上预训练的BERT,它可以从纯文本中很好地捕捉丰富的语义模式,经过微调后可以持续改善不同NLP任务的性能。因此,我们获取BERT隐藏层表征后,可用于提升自己任务的性能。但是,已有的预训练语言模型很少考虑知识信息,具体而言即知识图谱(ht
Wesley13 Wesley13
2年前
##好好好####BERT meet Knowledge Graph:预训练模型与知识图谱相结合的研究进展
随着BERT等预训练模型横空出世,NLP方向迎来了一波革命,预训练模型在各类任务上均取得了惊人的成绩。随着各类预训练任务层出不穷,也有部分研究者考虑如何在BERT这一类模型中引入或者强化知识图谱中包含的信息,进而增强BERT对背景知识或常识信息的编码能力。本文主要关注于如何在BERT中引入知识图谱中信息,并survey了目前已公布的若干种方法,欢迎大家批评和
Stella981 Stella981
2年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Wesley13 Wesley13
2年前
60分钟视频带你掌握NLP BERT理论与实战
向AI转型的程序员都关注了这个号👇👇👇机器学习AI算法工程 公众号:datayx本课程会介绍最近NLP领域取得突破性进展的BERT模型。首先会介绍一些背景知识,包括WordEmbedding、RNN/LSTM/GRU、Seq2Seq模型和Attention机制等。然后介绍BERT的基础Transformer模
Stella981 Stella981
2年前
200的大额人民币即将面世?央行:Yes!
点击上方蓝字关注我们!(https://oscimg.oschina.net/oscnet/2a1c2ac00bf54458a78c48a6c2e547d5.png)点击上方“印象python”,选择“星标”公众号重磅干货,第一时间送达!!(
Wesley13 Wesley13
2年前
BAT 鼎立格局被打破,2019 年这些互联网公司是程序员跳槽首选!
点击上方“程序员江湖”,选择“置顶或者星标”你关注的就是我关心的!!(https://oscimg.oschina.net/oscnet/3a919fd0b2b4441ea3f05371910126dd.jpg)作者:BOSS直聘来源:BOSS直聘作者:BOSS直聘(ID:bosszhipin),领
可莉 可莉
2年前
200的大额人民币即将面世?央行:Yes!
点击上方蓝字关注我们!(https://oscimg.oschina.net/oscnet/2a1c2ac00bf54458a78c48a6c2e547d5.png)点击上方“印象python”,选择“星标”公众号重磅干货,第一时间送达!!(
Stella981 Stella981
2年前
Skywalking系列博客6
点击上方 IT牧场 ,选择 置顶或者星标技术干货每日送达!!(https://oscimg.oschina.net/oscnet/92eb98e2baa14e5fbf1f69872ccfbe35.jpg)前置知识在正式进入编写环节之前,建议先花一点时间了解下javaagent(这是JDK5引入的一个玩意儿,最好
高耸入云 高耸入云
3个月前
如何做Bert模型的fine-tuning?近屿智能OJAC带你一探究竟
📖更多AI资讯请👉🏾选择合适的预训练模型:从预训练的BERT模型开始,例如Google提供的BERTbase或BERTlarge。这些模型已经在大量文本数据上进行过预训练了,我们如何对BERT模型进行finetuning呢?准备和预处理数据:集针对特