初识Bert

在学习Bert之前我们先了解"递归神经网络(RNN Recurrent neural network)" 和 "长短期记忆(LSTM Long short-term memory)"

我们如果仅仅识别每个字的含义,那么在一句话中没有相同的字还是可以的但是如果一句话中有相同的字,那么我们进不能识别每个字的含义,因为有可能相同的字,位置不一样,词性也不一样,那么含义就会不一样。

因此就引出了 递归神经网络(RNN Recurrent neural network)和长短期记忆(LSTM Long short-term memory)

递归神经网络

RNN就是在传入模型的时候,也传入一个向量,就是一个记忆单元,我们可以形象的称为"传家宝",因为传家宝会一直串行的传下去这样就能。有了这个传家宝,就可以根据上文判断当前文字的词性。

因为是串行传递,如果一句话很长,这也导致RRN模型中记忆单元也就是"传家宝"中记录的东西过多,导致最前面的信息和最后面的信息很难对应,如:

当我们问"谁与赛罕塔拉结下了不解之缘?"时,"传家宝"里的东西已经记录前面的太多信息了,无法准确的找到主语"我"。

为了解决这个问题,因此引出"长短期记忆(LSTM Long short-term memory)"模型。

长短期记忆

LSTM模型就是,还是那上面的例子,问"谁与赛罕塔拉结下了不解之缘?"时,我们就会把"传家宝"上锁,不会让中间无关紧要的信息进入"传家宝",这样我们就能在"传家宝"当中找到我们想要的答案。

自注意力机制

通过学习RNN和LSTM模型,虽然问题已经解决,但是速度还是太慢了,先辈的巨人们就创造了Bart模型,在学习Bart模型前,我们要先了解自注意力机制(Self-attention)

所谓的注意力机制就是是一个特征转换器,考虑了句子整体的前后关系。注意力机制可以让模型在生成每个目标词的时候,选择性地"关注"源句子中相关联的部分,而不是等同对待整个源句子。

通俗一点,注意力机制就是对于每个事件所分担注意力的比例是多少。

那么𝛼1,1, 𝛼1,2, 𝛼1,3, 𝛼1,4这些都是怎么求的呢?

得到的𝛼1,1, 𝛼1,2, 𝛼1,3, 𝛼1,4其概率和不为1,因此在经过一次Soft-max,得到概率和为1,这样我们就得到了𝛼1分配给每个字多少的注意力

b1就是𝛼1看过整句话结合注意力得到的值 ,这样可以求得b2,b3,b4,在计算得过程中都是全部都是并行的,完全不需要等待前面得内容,因此速度很快。

下面是具体得计算过程,

我们把每个字,也就是表示成768维向量称之为token

Bert

Bert就是一个编码器,与他对应的就是GPT-2解码器,先逐步分析Bert的过程:

Inputs就是将一个字以one-hot的编码形式展示出来,传去Input Embeadding中,就是对应的"词Embeadding"进行的操作就是进行一次全连接Linear(22128,768);在进行一次Positional Encoding,就是对应的"位置 Embeadding",进行的操作是一次全连接Linear(512,768)。

经过两次全连接,进入的就是Muti-Head Attention(多头注意力机制),下面的三个箭头就是Wq、Wk、Wv,都是(768,768)的Linear,后面进行Norm,就是归一化,观察到还有一个箭头指向Add,这就是ResNet残差连接,因为有残差连接,网络才能走很深。传出还是768维。

传入Feed Forward,Feed Forward的操作就是进行两次全连接:nn.linear(768,3072)、nn.linear(3072,768),得到768维,在进行一次归一化和残差连接,这就算把特征提取出来了。

这就是Bert的一次完整的过程,当然,因为Bert整体的过程不改变维度,输入768维,输出768维,所以可以根据具体的情况进行N次。

这就是他们之间的关系

相关推荐
数智工坊1 小时前
NTIRE2024×4图像超分竞赛综述|Mamba崛起、数据缩放、频域增强成为新趋势
网络·人工智能·深度学习·cnn·机器人
盼小辉丶3 小时前
PyTorch强化学习实战——融合人类示范数据的高效强化学习
人工智能·pytorch·python·深度学习·强化学习
DM今天肝到几点?4 小时前
GPT-6 Astra 发布:ARC-AGI-3 从 7.8% 跳到 99.9%,OpenAI 宣告「欢迎进入 AGI 时代」
人工智能·gpt·深度学习·agi
阳明山水5 小时前
销量预测2025—2026:从模型竞赛到系统融合的范式转型
人工智能·深度学习·算法·机器学习·架构
克里斯蒂亚诺更新5 小时前
Transformer(注意力机制)不按顺序-全盘扫描
人工智能·深度学习·transformer
147API5 小时前
蒸馏项目什么时候该停,怎样切换到RAG、微调或模型路由
人工智能·深度学习·机器学习·数据挖掘
YOLO视觉与编程6 小时前
YOLO / Labelme目标分割数据集增强扩充软件v1.0.0适用于YOLO全版本
人工智能·深度学习·yolo·计算机视觉
茗鹤APS和MES6 小时前
工业排产:AI可赋能,APS不可替代
人工智能·深度学习·机器学习
程序猿编码7 小时前
基于GGML的C++17轻量化语音推理引擎:说话人识别与语音分析技术全解析
开发语言·c++·pytorch·深度学习·神经网络·大模型
jay神8 小时前
深度学习如何确定Batch Size的大小?
人工智能·深度学习·计算机视觉·毕业设计·课程设计·batch