话题 | 如何看待谷歌最近开源的“最强NLP模型”BERT?

话不多说,直接上题

@ 酱番梨 问:

上周,谷歌AI团队开源了备受关注的“最强NLP模型”BERT的TensorFlow代码和预训练模型,不到一天时间,收获3000多星!

有没有了解的社友来简单介绍一下,为什么它这么厉害?

来自社友的讨论

▼▼▼

@杨 晓凡

BERT 的预训练:大型语料库(维基百科 + BookCorpus ),4-16 个 TPU,4 天 BERT 的微调:单个 TPU,1 小时(GPU 则是数小时) 谷歌再次证明了有资源就是不一样,不用革命性的方法也可以有革命性的提升。做应用的人起立鼓掌,谷歌搭好了台子大家可以直接上去唱戏;做研究的人脸一黑,能发三四篇论文的架构微创新还不如多训练几天的效果好 —— 要是我们也有那个资源,我们也能再刷刷成绩

@付腾

目前最新的,比较前排的模型包括如下 Facebook的InferSent: 基于词嵌入的双向lstm OpenAI的mLSTM (本质上是字母级别的单向lstm),GPT(本质上是基于词嵌入的单向attention模型) Google的USE(在tensorflow hub里面,基於单向attention模型的层级模型),最新的BERT(双向attention模型) BERT的具体性能是否如论文所说还没验证,暂时不表(BERT的模型还没有跑通,有colab调通的同学指点一下),但是其他的模型经过跑的经验,确实效果都不错。 原因嘛,我想大概有如下: 1. 数据量够大。 这个就能足够说明问题了,大力出奇迹。比如OpenAI的mLSTM,虽然结构简单,但是训练量足够,导致其文本分类(text classification)性能很优秀,但是对于文本理解问题(NLU)基本就是智障。。。 其他的模型都是在巨大训练集数据量的支持下才有较好的表现。 甚至InferSent模型本身,使用了ALLNLI(NLI数据的总集)的版本比单一的SNLI数据训练的版本,各项性能都要优秀一些, 虽然不多。 2. 计算资源足够。 这个就更是无语了,大公司的体量优势展现无遗。 就目前公开的数据来说,OpenAI的mLSTM使用了4×K80(目前各大云服务商可以提供的最大单机GPU虚拟机),一个月的训练量,从公开的价格(各个云略有不同)来说,基本就是三千多英镑,折合人名币两万多RMB。晓凡说的BERT的价格更是高出天际,单个模型的训练价格,通过Goolge的TPU公开价格,约合23万多RMB。。。。。。 18年下半年Nvdia发表了一篇论文复现了OpenAI的mLSTM,动用了128块GPU,时间压缩到一周内,价格大约压缩了50%。。。。 这些还都是单个模型,不要说其内部的调参的大坑。。。 连BERT的作者自己都说了,建议直接用训练好的模型,因为大量的内部调参问题。自己训练估计能让人跳崖,算你运气好,训练好三个BERT来对比,那花去的成本就足够在北上广深买个首付了。。。(手动狗头) 其实这一点就直接把巨头和其他中小公司以及学界做了切割,任你孙悟空再厉害,也跳不出五指山。 3. 双向总是比单向效果更佳(同等训练数据下)这个看条件以及模型应对的任务,一般来说,如果是训练模型来做分类,单向的lstm结果就不错。如果要应对复杂的NLU类任务,基本上都要考虑双向lstm。这次的BERT引入的双向attention好像在我印象里也是首次,"BERT represents "bank" using both its left and right context — I made a ... deposit — starting from the very bottom of a deep neural network, so it is deeply bidirectional." 从该模型对飙的模型(OpenAI的GPT)对比来看,双向在文本理解方面确实是有优势的,不过嘛。。。计算复杂度也是翻倍的,本身transformer的计算就够吃计算量了,加入双向。。。 其实在BERT之前,Google就有了改进transformer的尝试,比如它的USE,就是attention和其他模型结构(比如CNN)的组合,性能略有提高,但是复杂度也是高居不下,导致其还要推出大中小三个版本的USE。 一些浅见,望大家指正,轻喷

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章