热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

文章目录BERT是什么语言模型Mask机制BERTBertvsTransformerBertModelInputBertModelOutputBertMaskedLanguageM


文章目录

  • BERT是什么
  • 语言模型
  • Mask机制
  • BERT
    • Bert vs Transformer
    • Bert Model Input
    • Bert Model Output
    • Bert Masked Language Model
    • Bert Next Sentence Prediction
    • Bert with Feature Extraction
  • Bert应用场景
  • Bert-GPT-ELMo
    • ELMo
      • EMLo的俩种方式
    • GPT
  • vanilla transformer
  • Transfomer-XL(2019-01)
  • XLNet(2019-06)
  • ALBERT


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)


  • RNN和Transformer都可以学习序列之间的依赖关系,但是对于长时依赖 上都存在一定的局限性,在vanilla Transformer的基础上,Transfomer-XL语言模型引入两点创新:
    • 循环机制(Recurrence Mechanism)
    • 相对位置编码(Relative Positional Encoding)
  • 论文:https://arxiv.org/pdf/1901.02860.pdf
  • 代码:https://arxiv.org/pdf/1901.02860.pdf .
  • 解析:https://www.lyrn.ai/2019/01/16/transformer-xl-sota-languagemodel.
    在这里插入图片描述

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

    在这里插入图片描述


推荐阅读
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • keras归一化激活函数dropout
    激活函数:1.softmax函数在多分类中常用的激活函数,是基于逻辑回归的,常用在输出一层,将输出压缩在0~1之间,且保证所有元素和为1,表示输入值属于每个输出值的概率大小2、Si ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • Opencv提供了几种分类器,例程里通过字符识别来进行说明的1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。函数原型:训练原型cv ... [详细]
  • 本文整理了Java中org.apache.pig.backend.executionengine.ExecException.<init>()方法的一些代码 ... [详细]
  • 程度|也就是_论文精读:Neural Architecture Search without Training
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了论文精读:NeuralArchitectureSearchwithoutTraining相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
man_2_瞳皆哥仔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有