我所了解的bert模型整理!!

BERT是什么

  • BERT是Transformer的双向编码器表示的缩写。它是由Google在2018年末开发和发布的一种新型语言模型。像BERT这样的预训练语言模型在许多自然语言处理任务中发挥着重要作用,
    • 例如问答,命名实体识别,自然语言推理,文本分类等等

语言模型

  • 语言模型(Language Modeling)会根据前面单词来预测下一个单词 /NLP中最基础的模型结构(可以应用到各个NLP的应用场景中)。常 用的语言模型有:N-gram、Word2Vec、ELMo、OpenAI GPT、Bert、 XLNet、ALBert;

Mask机制

  • Mask:遮挡掩盖的意思,比如:把需要预测的词给挡住。主要出 现出现在OpenAI GPT和Bert中。

BERT

  • bert主要的问题就是计算量非常的大,参数量非常的多,所以在使用的时候一定要有好的设备。并且bert是一个与训练好的模型,经常应用于数据的预处理阶段。
  • bert中的新特征
    • Bidirectional Transformers (Transformer)

    • Pre-training

      • Masked Language Model(掩蔽语言模型)
      • Next Sentence Predictio(下一个句子预测)

      在这里插入图片描述

  • Bert一共有俩个,一个为小的Bert共12层,大的Bert24层效果更好,相对参数也多。在这里插入图片描述

Bert vs Transformer

  • Bert中Encoder Layers是12/24层,而Transformer则是6层;
  • Bert中E前馈神经网络单元是768/1024维度的,而Transformer则是512
  • Bert中 Multi Headed Attention是12/16个,而Transformer则是8
  • Bert Encoder中有Mask 机制,而Transformer中没有Mask 机制;
  • Bert词嵌入是单词+位置信息+segment,而Transformer单词+位置信息
  • Bert的网络输入存在占位符[CLS], Transformer没有;

Bert Model Input

在这里插入图片描述

Bert Model Output

在这里插入图片描述Bert和CNN中的VGG类似,都是提取高阶特征,如下图:
在这里插入图片描述

Bert Masked Language Model

在这里插入图片描述

Bert Next Sentence Prediction

第一个预测值是与众不同的他是来提取整个序列的信息的。
在这里插入图片描述

Bert with Feature Extraction

Bert有12层,每一层的输出都是高阶向量,都可以自由使用。
在这里插入图片描述

下面用“hello”做了一个实验,用于命名实体识别任务CoNLL-2003 NER,效果如下图:在这里插入图片描述

Bert应用场景

在这里插入图片描述

Bert-GPT-ELMo

EMLo采用的是第一种方法。
在这里插入图片描述

ELMo

在这里插入图片描述

EMLo的俩种方式

EMLo采用的是第一种,下图红色框。第二中会带来信息泄露。
在这里插入图片描述

GPT

  • GPT在BooksCorpus(800M单词)训练;BERT在BooksCorpus(800M单词)和维基百科(2,500M单词)训 练。
  • GPT使用一种句子分隔符([SEP])和分类符词块([CLS]),它们仅在微调时引入;BERT在预训练期间 学习[SEP],[CLS]和句子A/B嵌入。
  • GPT用一个批量32,000单词训练1M步;BERT用一个批量128,000单词训练1M步。
  • GPT对所有微调实验使用的5e-5相同学习率;BERT选择特定于任务的微调学习率,在开发集表现 最佳。
  • GPT是12层,Bert是24层。
  • GTP使用的是Transformer的类似Decoder结构(单向的Transformer,里面没有Encoder-Decoder Attention,只有Mask Self-Attention和FFNN),Bert使用的是Encoder结构(双向Transformer)

在这里插入图片描述

vanilla transformer

  • 属于一种语言模型的训练方式,来根据之前的字符预测片段中的下一个字符;论 文中采用64层模型,并仅限于处理512个字符的输入,因此如果序列太长会进行分 段,然后每段进行学习训练。
  • 论文:https://arxiv.org/pdf/1808.04444.pdf
  • 缺陷:
    • 上下文长度受限:字符之间的最大依赖距离受输入长度的限制,模型看不到出现在几个句 子之前的单词。
    • 上下文碎片:对于长度超过512个字符的文本,都是从头开始单独训练的。段与段之间没有 上下文依赖性,会让训练效率低下,也会影响模型的性能。
    • 推理速度慢:在测试阶段,每次预测下一个单词,都需要重新构建一遍上下文,并从头开 始计算,这样的计算速度非常慢。

在这里插入图片描述

Transfomer-XL(2019-01)

XLNet(2019-06)

  • XLNet:Generalized Autoregressive Pretraining for Language Understanding
  • 论文: https://arxiv.org/pdf/1906.08237.pdf
  • 解决BERT的问题 (解决,Bert中Transformer是双向的,即考虑前面也要考虑后面,所以只能做编码结构不能做解码结构的问题)
    • 训练数据和测试数据的不一致,训练数据中使用了Mask,测试数据/预测数据中没 有使用Mask,这个问题叫做:pretrain-finetune discrepancy (预训练微调存在差异性,训练的时候做Mask,而迁移学习是时候不加Mask)
    • BERT模型不能用来生成数据。
  • 参考:https://blog.csdn.net/weixin_37947156/article/details/93035607k

ALBERT

  • ALBERT:A Lite BERT for Self-supervised Learning of Language Representations

  • 论文https://arxiv.org/pdf/1909.11942.pdf

  • 解决Bert和XLNet的问题:

    • 模型参数变的更少(因式分解,在Embedding之后的全连接做);
    • 模型使用更少的内存(参数共享);
    • 提升模型效果(损失函数做了一个更新);
  • 参考: https://github.com/brightmart/albert_zh

    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

年少无为呀!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值