Bert 结构详解

Bert 结构详解

1 Bert 模型结构
在这里插入图片描述
图1,我们导入bert 14 分类model,并且打印出模型结构。
https://blog.csdn.net/frank_zhaojianbo/article/details/107547338?spm=1001.2014.3001.5501

在这里插入图片描述
                图2

图 2 是BertForSequenceClassification 模型的结构,可以看出 bert Model 有两大部分组成,embeddings 和 encoder。上面我们已经介绍过了transformer,Bert的结构就是 transformer encoder 的结构。 下面我们分别介绍embeddings 和 encoder。
2 bert embedding 层

在这里插入图片描述

                图3
由图3 可以看出, word_embeddings 转换器 输入维度是 21128 ,输出维度是 768,21128就是bert字典的大小。 由于max_length 取了512,positional_embeddings 转换器的输入维度是512,它要给每个字加上位置信息。Bert 中token type 只有0 和1,因此,token_type_embeddings 转换器输入为2维。最后 我们把word embedding,positional embedding 和 token_type_embedding 进行向量相加,把最后结果进行 layer Normalization。
3 bert encoder
在这里插入图片描述
                图4
如图4 bert encoder 主要分为两部分,自注意力和前馈神经网络。

3.1 bert attention
3.1.1什么是查询向量、键向量和值向量向量?
在这里插入图片描述
在这里插入图片描述

                图5
在这里插入图片描述在这里插入图片描述
                图6
在这里插入图片描述
在这里插入图片描述
                图7
在这里插入图片描述
3.1.2通过矩阵运算实现自注意力机制
在这里插入图片描述
在这里插入图片描述
                图8

在这里插入图片描述
在这里插入图片描述
                图9

3.1.3 多头注意力
Bert base 使用的是 12 heads attention,multi head attention扩展了模型专注于不同位置的能力。

在这里插入图片描述

                图10

使用 multi head attention,我们为每个头保持独立的查询、键、值权重矩阵。我们使用X乘以WQ/WK/WV 矩阵来产生查询、键、值权值矩阵。

在这里插入图片描述

                图11

图 11 与上面自注意力机制计算相同,只需要进行12次不同的权重矩阵运算,我们就可以的到12个不同的Z矩阵。
在这里插入图片描述

                图12

最后把 12个矩阵拼接成一个矩阵

3.1.4 bert多头注意力
在这里插入图片描述

                图13

图13 我们再对照一下BertSelfAttention结构。Linear(in_features=768, out_features=768, bias=True) 其实就是query_weight ,key_weight, value_weight 矩阵。Bert base 使用的是 12 heads attention,其query,key,value是64维度。12*64 = 768,这正好和 in_features, out_features 和 embedding size维度想对应。
在这里插入图片描述
                        图14

图14 经过attentions 后Z矩阵和input embeddings 求和归一。
3.2 前馈神经网络
在这里插入图片描述

                        图15
图15 我们把图14 的结果输入到前馈神经网络中,将其结果和输入求和归一。其输出的结果作为下一个bert layer 的输入。
在这里插入图片描述                         图16
图16 大家可以对照bert encoder 和 代码看一下。

4 任务层
在这里插入图片描述

                图17
图17 这个模型是bert 14 分类任务,因此最后 连接了一个 Linear 层,输入768 维度,输出14维度。

  • 12
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值