当前位置:网站首页>从宏观到微观 零基础 详解bert
从宏观到微观 零基础 详解bert
2022-07-25 10:27:00 【fatfatmomo】
bert模型的文章有许多,不过看了以后对整个模型的结构和数据流并没有太直观的理解,在看了源代码后有了自己的一些的理解写在下面,不一定全对,在学习中会不断更新,如果有不同意见欢迎评论提出。
首先bert的主体结构(base版),简单用一个图表示:

对应贴一下论文中的参数说明

- 这里的L=12指的是网络层数(深度)为12层;
- A=12是transformer块中的多头自注意力的头数,需要注意的是bert中的transformer块并不是论文中的transformer结构,而是只用了encoder的部分;
- H指的是传输过程中的隐藏状态hidden_size,这里是768的向量,对应到输入就是一个单词给一个768维的向量来表示。
这边是transformer的结构图,我们只用了左边的encoder:

我看模型往往希望看到整个数据的流程,和网络的结构。我将整个数据流动画在下面的图中:

- 输入:这里的输入代表了最终的输入(这里以句子对的输入为例),最初的输入每次会取[batch_size,max_seq_length]的数据。batch_size代表了句子数目,论文中取的是256;max_seq_length代表了每个句子最大的单词数,论文中取的是512,单词少了会补齐多了会截断。所以embedding后最终的输入是[batch_size*max_seq_length,hidden_size] 格式。
- 多头自注意力的多头:这里的多头会将输入切分,最终的输入是[batch_size*max_seq_length,hidden_size] 格式,经过切分会将hidden_size切为12份,每个头得到的数据格式为[batch_size*max_seq_length,hidden_size/头数] 。之后每个头会经过不同的权重矩阵进行线性变换。
- Residual network:残差网络,主要为了能让模型建立的够深。
- Feed Forward:前馈神经网络,神经元数为hidden_size*4
这样连过12个transformer块之后,取[CLS]的输出作为整个句子的表示,得到句子对中两个句子的相似度。

边栏推荐
猜你喜欢

The idea has been perfectly verified again! The interest rate hike is approaching, and the trend is clear. Take advantage of this wave of market!

Learn NLP with Transformer (Chapter 7)

史上最全的立创元器件封装库导入AD详细教程(一直白嫖一直爽)
Learn NLP with Transformer (Chapter 4)

JS hash table 01

Learn NLP with Transformer (Chapter 5)

MySQL advanced statement (I) (there is always someone who will make your life no longer bad)

Shell 脚本参数传递时有 \r 换行符问题

Learn NLP with Transformer (Chapter 8)

MySQL master-slave replication and read-write separation
随机推荐
HCIA实验(09)
【flask高级】结合源码详解flask的运行机制(出入栈)
Learn NLP with Transformer (Chapter 3)
Flame framework - Flame WTF form: file upload, verification code
Code representation learning: introduction to codebert and other related models
STM32CubeMX学习记录--安装配置与使用
What is MySQL transaction
哥廷根大学提出CLIPSeg:一个使用文本和图像prompt能同时作三个分割任务的模型
DICOM medical image viewing and browsing function based on cornerstone.js
HCIP(13)
Flask framework - flask WTF form: data validation, CSRF protection
HCIP (01)
Nb-iot control LCD (date setting and reading)
复习背诵整理版
Signal integrity (SI) power integrity (PI) learning notes (XXXIV) 100 rules of thumb for estimating signal integrity effects
How to notify users of wechat applet version update?
学习路之PHP--Phpstudy 提示 Mysqld.Exe: Error While Setting Value ‘NO_ENGINE_SUBSTITUTION 错误的解决办法
Shell 脚本参数传递时有 \r 换行符问题
企业实践开源的动机
Learn NLP with Transformer (Chapter 2)