1. BERT模型深度解析
2. 大规模参数的语言模型Megatron-BERT
摩登7今天主要是温故知新我先带大家复习一下BERT模型的整体架构,内容不会特别偏数学,主要把BERT一些要点给大家说清楚,包括BERT的输入/输出以及具体它是怎么工作的,然后介绍NVIDIA基于BERT开发出的一系列好的模型。
首先介绍一下自然语言处理常见的应用方向,第一类是序列标注,比如命名实体的识别、语义标注、词性标注,循环智能也是用了序列标注。第二类是分类任务,如文本分类和情感分析,这个方向目前在量化金融领域,尤其是对冲基金上应用性很强,尤其是情感分析。我记得3、4年前,有一条新闻说斯坦福大学的一个硕士生,暑期在他的宿舍里用几块GPU卡,自己搭建了一个小的超级计算机,他把Twitter上的信息全部录下来,每天更新。他使用了BERT进行情感分析,把每天每个人的信息分成三类:positive积极、neutral中性、negative消极。他把三类情感的量化信息和当天纳斯达克股票的升跌情况汇总,进行了统计分析,发现如果Twitter上的信息大部分都是积极的,那么股票就有很大的概率会上涨。摩登7现在把这类数据叫做情感分析因子,它在股票分析上是一个特别重要的推进方向,能让模型越发准确。第三类NLP应用方向就是对句子关系的判断,如自然语言的推理、问答系统,还有文本语义相似性的判断。最后一类,是生成式任务,如机器翻译、文本摘要,还有创造型的任务比如机器写诗、造句等。
BERT模型深度解析
现在摩登7进入正题:对BERT的讲解。要了解BERT,首先摩登7要说一下Transformer,因为BERT最主要就是基于Transformer和注意力机制,这两点也是BERT能从GPT、RNN、LSTM等一系列架构中能脱颖而出的很大原因。Attention,专业的叫法是Attention Mechanism,Attention是一个Encoder+Decoder的模型机制。Encoder-Decoder模型是在深度学习中比较常见的模型结构:在计算机视觉中这个模型的应用是CNN+RNN的编辑码框架;在神经网络机器翻译的应用是sequence to sequence模型,也就是seq2seq。而编码(Encoder)就是将序列编码成一个固定长度的向量,解码(Decoder)就是将之前生成的向量再还原成序列。
那么问题来了,为什么要在Encoder-Decoder模型机制中引入Attention呢?因为 Encoder-Decoder模型有两个比较显著的弊端:
一是Encoder会把序列信息压缩成一个固定长度的向量,那么在Encoder的输出中,摩登7暂且把它叫做语义编码c,c就有可能无法完全地表示出全部序列的信息,尤其是当信息特别长时。
二是先输入到网络中的信息会被后输入的信息覆盖掉,输入的信息越长,对先前输入信息的遗忘程度就越大。因为这两个弊端,Decoder在解码的一开始就没有获得一个相对完整的信息,也就是语义编码c没有一个相对完整的信息输入,那么它解码的效果自然就不好。有的同学可能会说想要解决RNN记忆力差的问题,可以考虑用LSTM。摩登7的确可以考虑LSTM,但LSTM对超长距离的信息记忆,效果也不是很好。
摩登7再来看看Attention为什么能够解决这个问题。Attention,顾名思义是注意力。它是模仿人类的注意力,人类在处理一个问题时会把注意力放到那个特别重要的地方,比如摩登7在短时间内去看一张照片,第一眼落到照片上的位置可能是某个建筑物或者是某个人,这取决于摩登7不同的目的和兴趣等。摩登7不会在短时间之内记清楚甚至是看清楚照片上的全部细节,但是摩登7会将注意力聚焦在某个特定的细节上并记住它。Attention模型最终输出结果也是能够达到这么一个效果。
Attention的机制最早也是应用在计算机视觉上面,然后是在自然语言处理上面发扬光大。由于2018年在GPT模型上的效果非常显著,所以Attention和 Transformer才会成为大家比较关注的焦点。之所以Attention的能力在NLP领域得到了彻底释放,是因为它解决了RNN不能并行计算的弊端,Attention使其每一步的计算不依赖于上一步的计算,达到和CNN一样的并行处理效果。并且由于Attention只关注部分的信息,所以它的参数较少,速度就会快。其次RNN记忆能力较差,所以大家一开始想到的解决方式都是用LSTM和GRU(Gated Recurrent Unit)来解决长距离信息记忆的问题,但是都没有起到很好的效果。Attention由于只关注长文本中的一个小部分,可以准确地识别出关键信息,所以取得了特别不错的效果。
下面摩登7来说一下Attention是怎么实现的聚焦。主要是因为它是采用了双向的RNN,能够同时处理每个单词前后的信息。在Decoder中,它首先计算每一个Encoder在编码隐藏层的状态,然后会和Decoder隐藏层状态比较,做出相关程度的评定。得到的权值会通过softmax归一化得到使用的权重,也就是摩登7前面所说的编码向量c。然后对Encoder中对应的不同状态的权重进行加权求和,有了编码c之后,摩登7就可以先计算Decoder隐藏层的状态,然后再计算Decoder的输出。这就是一个比较完整的在BERT当中运用Attention以及Encoder-Decoder模型的使用案例。Attention根据计算区域、权值的计算方式等会有很多不同变种。
不止是在NLP领域,在其他很多领域中,Transformer的模型由于很好用都是大家首选的,主要的一个运用机制就是Attention。摩登7之后会说到的Transformer模型会用到 Multi-head Attention和Self-Attention。首先说一下Self-Attention,Self-Attention是将原文中每个词和该句子中所有单词之间进行注意力的计算,主要是为了寻找原文内部的关系。对应到阅读理解任务,这个模型就可以判定一篇文章中的两段话是不是同一个意思。Multi-head Attention,则是对一段原文使用多次的注意力,每次会关注到原文的不同部分,相当于多次地在单层中使用Attention,然后把结果给拼接起来。
![]() |
机器人公司 机器人应用 智能医疗 物联网 机器人排名 机器人企业 机器人开发 独角兽 消毒机器人品牌 |