一文读懂bert结构。

16 篇文章 0 订阅
订阅专栏
9 篇文章 6 订阅
订阅专栏

最近承接了项目要复现tiny_Bert。所以在这里用文章记录自己学到的。这篇文章是前置,主要介绍bert原理。 下一篇文章介绍tinybert的原理和训练

模型介绍:

BERT概述:

    如果要介绍tinyBERT,首先我们需要了解BERT模型。(了解BERT模型之前,希望你对Transformer结构已经有了基本的了解。bert:https://arxiv.org/abs/1810.04805。Transformer: Attention is All you Need)。 简单的介绍一下,Transformer的结构分为编码器和解码器,编码器可以把文字编码成高纬度的特征,而解码器可以用这些特征去完成相应任务,比如生成翻译。Transformer是如此的强大,以至于nlp届的两大巨头其实都是由他的一部分改变而来,如下图。GPT取用的是Transformer的解码器部分,而BERT取的是Transformer的编码器,因此Bert的作用,大家可以理解为一个编码器,将输入编码为高维的特征。

  在CV领域,在imagenet上训练一个编码器,迁移到其他任务,已经是惯用手段了。 而在BERT以前,NLP领域使用预训练技术的并不多。BERT为无标注的文本设计了两个自监督预训练任务,第一个是MLM(Masked Language Model)任务: 遮盖掉句子中一定比例的单词,使用剩余单词来预测被遮盖的词。 第二个是NSP(Next Sentence Prediction)任务:预测输入的两个句子是否是上下文关系。这样,无需标注即可在海量文本数据上进行预训练,得到一个效果十分良好的编码器,然后使用此编码器在其他文本任务上进行微调。BERT所建立的预训练加微调的模式在后续的NLP网络中得到了广泛的应用。

BERT结构

在这里介绍bert的基本结构,会涉及代码里的一些参数。一句文本,进入BERT后,首先经过编码层:被分词,然后分别编码。之后编码后的特征会进入BERT自注意力模块中进行提取,最后得到深度特征。下面详细介绍这个步骤。

嵌入层(embedding layer):

 BERT源自Transformer,他们的嵌入层也是很相似的。上图是Transformer的嵌入层,我们可以看到,当一个分词变为输入时,首先要经过词嵌入(Embedding),变为长度为hidden_size的向量(图中为6,实际一般很长),字所在的位置也要进行嵌入。两个嵌入向量直接数值相加,我们就得到了嵌入层的输出。
   
   下图则是BERT的嵌入层,它的输出来源于三个嵌入向量相加。我们可以看到有两个区别。1:增加了句子嵌入(segment Embeddings),因为BERT的输入是两个句子,因此要在这里用句子嵌入值标识出是哪一句。2:出现了字符token,如E[cls],E[sep]。CLStoken一般用来统计全局的信息,最后可以用此token的特征进行下游分类任务。SEPtoken则表示句子的分割和中止。  其实还存在着第三个区别:Transformer的位置嵌入是固定的,也就是公式算出的值,而BERT的位置嵌入则是模型训练得到的。(其他嵌入也都是训练得到)。

   

 一层bert:

 

    首先需要知道的是,每个BERT layer ,都是不改变特征的维度的(如上图)。由于输入和输出维度一直相同,因此可以堆叠无数层,一直往上叠下去(然后带来极大的运算开销)。对于BERT的base模型,是堆叠了12层,而large模型 堆叠了24层。

   而一个BERT layer 是由 多头自注意力层和MLP组成的。先介绍自注意力层。

 自注意力层,有时候写作Transformer blocks,是进行特征交互,提取的关键部分。这一部分,李宏毅老师是讲的非常好的。如下。

第四节 2021 - 自注意力机制(Self-attention)(上)_哔哩哔哩_bilibili

 当然我也会文字介绍。

  因为每层都是相同的,所以我们只看一层。如下图所示。 图中的a1,a2与上图是对应的,指的就是一个token的特征。每一个token,都会分别经过三个不同的线性映射(也就是三个全连接),得到query,key和value(q,k,v)。然后对于每一个token,它的q会与其他token的k相乘得到一个权重,它的 v 按照这些权重加起来,就得到了这个token的输出。

     不得不提到的是,多头注意力机制。通过上图,我们了解到了注意力机制是如何工作的,那么多头注意力机制其实非常简单。 举例说明:如下图。 一个长为6的特征转换为Q,K,V后,  长为6的Q,K,V 被分到3个注意力头中。每个头中,仅需长度为6/3=2的特征计算自注意力,最后得到3个长度为2的特征,再拼在一起就得到了输出。维度和输入相同,每一个token都这样操作,因此能保证输入输出的维度不变。

而后面的mlp层是两次线性映射,首先通过一个全连接从长度L的向量变为 L*ratio,然后再通过一个全连接从L*ratio 到L,

 对于一个BERT-base模型,他的特征长度L为768,注意力头的个数为12.这样每个头计算的特征长度就为64. 而ratio值为4.也就是先从768到3072,再从3072到768.而他的输入token数量,最大为512。

输出层

        输出前面已经提到了,与输入是一样的。 如输入是 512*768 那么输出依然是512*768(512个token,768的特征长度)。你可以认为输入和输出是一一对应的,也可以认为他们并不对应。BERT的工作其实到这里就结束了,我们要得到的就是一个编码器而已。 对于预训练任务,其实也表示了bert完成生成和分类两个下游任务的一般方式。 MLM任务: 可以取遮盖token对应的输出token的特征,通过一个分类,得到输出的词,这样可以做生成任务(但BERT很少直接用于生成任务)。SEP任务: 取第一个token的特征,也就是CLStoken 进行二分类。

        当然你也可以采取平均池化等方式得到输出的特征。L_{token}

至此,你知道了BERT的运转流程。比如你想拿bert做一个下游的分类任务,你就可以把文字输入到bert中去,得到特征,用这个特征做个分类就行。easy!

BERT模型—1.BERT模型架构
柳杰的博客
07-20 9270
文章目录引言一、Bert模型总览二、注意力机制1.Seq2seq中的注意力操作2.注意力的一般形式(三步曲)3. transformer中的自注意力机制—Self.Attention4. transformer的多头注意力机制5. scaling6. 模型优化技巧:残差连接三、BERT其他结构特性1.BERT模型中的位置编码2. BERT中的全连接层与非线性激活函数3. 层归一化—LayerNormalization 引言   本节将按照思维导图逐步了解BERT模型。   2018年谷歌在Github上开
简单地读懂Bert代码
01-06
Bert代码初识 简单读懂代码 modeling.py–定义一个bert模型的主体结构 BertConfig类 BertModel类中所需要的超参数 定义从python dict中生成BertConfig的方法 from_dict(cls, json_object) 定义从json中生成BertConfig的方法 from_json_file(cls, json_file) 定义将BertConfig转换为python dict的方法 to_dict(self) 定义将BertConfig转换为json字符串的方法 to_json_string(self) BertModel类 定义了激活函数
BERT结构知识整理
weixin_43918046的博客
11-30 4355
BERT结构知识整理 1 bert介绍 ​ 全称叫Bidirectional Encoder Representation from Transformers,也就是来自于transformer的双向编码表示。bert模型有轻量级和重量级,轻量级是纵向连接了12个transformer的encoder层,重量级是纵向连接了24个transformer的encoder层,注意是transformer的encoder层,没有decoder层。所以模型的内部结构没有很大创新,模型的主要创新点是在预训练任务pre-
BERT模型深度剖析:史上最详尽教程,不会还有人不懂吧?
最新发布
2401_85375186的博客
09-12 1154
本文配套 BERT 源码 debug 详细讲解。前两章是 BERT 模型的讲解,后两章是源码讲解,非常适合硬核同学研究。BERT(Bidirectional Encoder Representations from Transformers)是一种预训练的自然语言处理(NLP)模型,由 Google 于2018年提出论文*《
史上最直白之BERT介绍(原理+代码)
weixin_44048622的博客
09-22 2020
bert的详解和使用(附代码)
用通俗易懂的方式讲解:图解 BERT 架构
2201_75499313的博客
01-20 5201
如果你还没有理解,可以翻阅看一下。今天本文将从BERT的本质、BERT的原理、BERT的应用三个方面,带您一文搞懂Bidirectional Encoder Representations from Transformers | BERT
Bert 结构详解
frank_zhaojianbo的博客
02-04 7327
Bert 结构详解 1 Bert 模型结构 图1,我们导入bert 14 分类model,并且打印出模型结构。 https://blog.csdn.net/frank_zhaojianbo/article/details/107547338?spm=1001.2014.3001.5501 图 2 是BertForSequenceClassification 模型的结构,可以看出 bert Model 有两大部分组成,embeddings 和 encoder。上面我们已经介绍过了transformer,B
BERT(二)--论文理解:BERT 模型结构详解
09-22 4104
1. 整体结构 2. 输入处理 3. 输出处理 3.1 nsp 3.2 predict
BERT原理和结构详解
热门推荐
u011412768的博客
08-14 7万+
目录 1. 模型输入 2. 网络结构 2.1 Self-Attention Layer 2.2 Layer Normalization 3. 模型预训练 3.1 训练任务 3.2 模型训练设置 4. 总结 4.1 模型特点 4.2 可优化空间 5. Reference 1. 模型输入 在BERT中,输入的向量是由三种不同的embedding求和而成,分别是: wordpiece embedding:单词本身的向量表示。WordPiece是指将单词划分成一组有限的公共子词单元,
BERT结构及原理
ywm_up
11-12 3531
文章目录BERT 结构BERT 输入输出特征BERT 预训练任务任务一、Masked LM 掩码语言模型1. BERT 为什么需要预训练任务 Masked LM ?2. masked LM 怎么做?任务二、Next Sentence Prediction 下一句预测1. 为什么要进行下一句预测?2. 下一句预测怎么做?BERT fine-turning 微调1. 为什么 BERT 需要 fine-turning?2. 如何进行 fine-turing?BERT 损失函数BERT优缺点面试问题1. BERT
原创 | 一文读懂 BERT 源代码
数据派THU
09-12 966
文:陈之炎 本文约4400字,建议阅读10+分钟本文对BERT模型预训练任务的源代码进行了详细解读,在Eclipse开发环境里,对BERT 源代码的各实现步骤分步解析。BERT模型架构是一种基于多层双向变换器(Transformers)的编码器架构,在tensor2tensor库框架下发布。由于在实现过程当中采用了Transformers,BERT模型的实现几乎与Transformers一样。B...
一文理解Transformer的工作原理
01-27
Transformer是最近自然语言处理发展的幕后推手,包括Google的BERT。了解Transformer的工作原理、它如何与语言建模、序列到序列建模相关,以及它如何支持Google的BERT模型。现在,我喜欢做一名数据科学家,从事自然...
一文读懂深度学习:从神经元到BERT
阿里云云栖号
05-27 1068
阿里妹导读:自然语言处理领域的殿堂标志 BERT 并非横空出世,背后有它的发展原理。今天,蚂蚁金服财富对话算法团队整理对比了深度学习模型在自然语言处理领域的发展历程。从简易的神经元到当前最复杂的BERT模型,深入浅出地介绍了深度学习在 NLP 领域进展,并结合工业界给出了未来的 NLP 的应用方向,相信读完这篇文章,你对深度学习的整体脉络会有更加深刻认识。 一个神经网络结构通常包含输入层、隐...
一文读懂「RAG,Retrieval-Augmented Generation」检索增强生成
女王の专属领地
01-20 8551
检索增强生成(Retrieval Augmented Generation),简称 RAG,已经成为当前最火热的LLM应用方案。它是一个为大模型提供外部知识源的概念,这使它们能够生成准确且符合上下文的答案,同时能够减少模型幻觉。知识的局限性:模型自身的知识完全源于它的训练数据,而现有的主流大模型(ChatGPT、文心一言、通义千问…)的训练集基本都是构建于网络公开的数据,对于一些实时性的、非公开的或离线的数据是无法获取到的,这部分知识也就无从具备。幻觉问题。
Bert 结构理论 笔记 Bert理解
机器学习专栏
04-09 2967
Bert理解 Attention Attention函数的本质可以被描述为一个查询(query)到一系列(键key-值value)对的映射 在计算attention时主要分为三步,第一步是将query和每个key进行相似度计算得到权重,常用的相似度函数有点积,拼接,感知机等;然后第二步一般是使用一个softmax函数对这些权重进行归一化;最后将权重和相应的键值value...
【大模型学习】BERT架构
2301_82275412的博客
07-22 1812
我们引入了一种新的语言表示模型,名为 BERT,它是Bidirectional Encoder Representations from Transformers的缩写。与最近的语言表示模型不同,BERT旨在通过在所有层中联合条件化左右文本来预训练深度双向表示。因此,预训练的BERT模型可以使用一个附加输出层进行微调,从而为各种任务创建最先进的模型,例如问答和语言推理,而无需显着修改针对特定任务的架构。BERT的概念非常简单且经验上功能强大。它在11项自然语言处理任务上实现了新的最佳结果。
BERT从零详细解读:BERT整体模型架构
weixin_40064300的博客
04-24 5937
BERT整体模型架构
bert网络结构
ox180x的博客
06-23 900
这里以BertForMaskedLM为例,记录下BertModel的网络结构和一些思考,cls那部分网络结构不涉及,即BertOnlyMLMHead那部分。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849BertForMaskedLM(...
BERT结构
huihuixiaoxue的博客
01-20 187
Bert GPT结构
08-10
Bert GPT是指基于Bert和GPT结构的模型。Bert(Bidirectional Encoder Representations from Transformers)是一种预训练语言模型,通过双向Transformer编码器学习词汇的上下文表示。它能够在各种自然语言处理任务中取得很好的效果。 GPT(Generative Pre-trained Transformer)是一种基于Transformer的生成式预训练模型。它通过无监督学习从大规模文本语料中学习语言模型,然后可以用于各种下游任务,如文本生成、机器翻译、问答系统等。 结合Bert和GPT的思想,Bert GPT模型首先使用Bert进行预训练,得到词汇的上下文表示。然后,使用GPT进行进一步的预训练,生成更复杂的语言模型。这种结合可以使模型在表示学习和生成两方面都具有很好的表现,适用于多种自然语言处理任务。
写文章

热门文章

  • Hugging Face 模型下载方法一览。 27837
  • MAE源代码理解 part1 : 调试理解法 13023
  • MAE源代码理解 part2 : 预训练调试 11815
  • 对比学习 ——simsiam 代码解析。: 10696
  • 2022李宏毅作业hw1—新冠阳性人员数量预测。 10464

分类专栏

  • 日常学习 16篇
  • 四川大学考研真题 3篇
  • 网络搭建 9篇
  • 李宏毅2022作业专题 6篇
  • 笔记本
  • 力扣 1篇

最新评论

  • hw-2 李宏毅2022年作业2 phoneme识别 单strong-hmm详细解释。

    q1978691080: 有完整的代码仓库地址嘛?

  • 2022李宏毅作业hw4 - 挫败感十足的一次作业。

    深夜不起雾: 查了下官方文档,nn.TransformerEncoderLayer默认batchsize不是在第一位的,所以要么添加一个参数batch_first=True,要么就先转个维度再转回来

  • MAE源代码理解 part1 : 调试理解法

    H_Geralt: 大佬,你好,我有个问题想问一下,那个read me文件中的三个模型是干什么的呀?

  • 2022李宏毅作业hw4 - 挫败感十足的一次作业。

    azazkkk: AMsoftmax的实现代码是不是有点问题啊,这样forward得到的是一个logsoftmax的loss,再经过nn.Crossentropy的softmax就不太对劲,return的内容是不是应该是分母的第一部分

  • 一文读懂bert结构。

    一顿三个喵: 关于自注意力机制那块,Q和K应该是做点积相似度得到权重,不是相乘,应该是这样的吧

大家在看

  • 【Sumy库】Sumy是一个文本摘要库,能够自动从长篇文章中提取出精华部分的python库
  • C# 标准绘图控件 chart 多 Y 值的编程应用 342
  • Java--File类与IO流操作
  • YOLOv11改进 | 代码逐行解析(三) | 从yaml文件到网络结构解析到模型定义 1827
  • SIM800L GSM/GPRS 模块与 ESP32 连接

最新文章

  • 原来pip是有默认路径的。
  • 【25考研】:四川大学计算机学院24届874考研考情分析
  • 深度学习训练遇到的bug
2024年2篇
2023年9篇
2022年21篇
2021年5篇

目录

目录

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

玻璃钢生产厂家园林景观雕塑鹅卵石玻璃钢雕塑景观标识玻璃钢仿铜雕塑设计绵阳玻璃钢卡通雕塑品牌迪庆玻璃钢雕塑报价中山玻璃钢牧童雨露雕塑河北保定玻璃钢生产雕塑厂家曲阳定做玻璃钢雕塑大理玻璃钢雕塑批发商山东主题商场美陈厂家直销玻璃钢雕塑安装图解深圳玻璃钢雕塑躺椅深圳多彩玻璃钢雕塑生产厂家重庆大型玻璃钢雕塑生产厂家商场美陈背景分析成都火山影院玻璃钢雕塑福建大型商场美陈现价二手玻璃钢雕塑卡通公园卡通玻璃钢雕塑生产厂家小品系列玻璃钢雕塑加工玻璃钢卡通熊雕塑大型玻璃钢灵芝雕塑菏泽佛像校园玻璃钢雕塑厂家白银大型玻璃钢雕塑制作山东大型商场美陈供应商菏泽广场玻璃钢雕塑制作商场男装春季美陈平顶山玻璃钢花盆彩色透明玻璃钢树脂雕塑长春商场美陈雕塑设计湖北多彩玻璃钢雕塑哪家便宜香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化