BERT学习笔记(利用到下游任务)

GPU的作用是进行矩阵运算,这样才是真正加速的地方,深度学习中很多的矩阵需要计算。

Tansformer

Transformer优点:

  1. 并行计算(解决RNN不能并行问题)。
  2. self-attention。
  3. 多语义词(杜鹃(花、鸟)),在不同语境和上下文表示不一样。

Self_attention

转换为Q(查询向量),K(被查询向量),V(特征信息),计算Q与K的内积

  1. 每一个词Q会跟整个序列中每一个K做内积计算得分,基于得分分配权重(内积就是计算相似度,垂直就无关系)
  2. 下图是一个词的向量计算的原理,如果合成为一个矩阵(就是并行计算了),这个就是Transfomer并行计算的作用。
    在这里插入图片描述

归一化,对分值转换为概率(向量长度越长,内积值越大,为了避免这个原因导致不合理的值,加上向量维度的根号,合理化值)

归一化的只是对最后一个维度值进行归一化,加权到V上。
在这里插入图片描述
矩阵并行计算,权重是矩阵乘法计算
在这里插入图片描述

多头注意力机制

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

layer Normalize和残差连接(防止经过self-Attention的向量比出事的向量更差)在这里插入图片描述

Decoder端

Mask机制的作用,只能够用预测的序列编码计算,把未知的编码遮掩掉,不能够成为已知条件。
在这里插入图片描述

整体框架

在这里插入图片描述

  1. 输入句子序列转换为ID索引
  2. 词初始化编码或者利用BERT预训练模型进行微调
  3. 加入位置编码(周期性信号随着位置变换)
  4. N层的self-attention
  5. 8头堆叠的self-attention,残差连接。

BERT预训练

方法一: MASK

模型能够把MASK的词都能够预测出来了,那么模型就学到了上下文的语义了。
在这里插入图片描述

方法二:预测两个句子是否连贯

在这里插入图片描述

BERT用于下游任务(阅读理解)

联合训练(在序列下游任务同时,对BERT预训练词向量进行微调)
1.文字、问题、结果都是索引转换成向量,返回的结果也是预测的在文章中的位置。
在这里插入图片描述
2. 预测答案在文章中的起始和终止位置:
额外训练两个起始和终止位置向量,通过问题和答案标签训练分类器,返回索引的位置。
在这里插入图片描述

BERT具体代码实现步骤

构建self_attention

在这里插入图片描述
num_hidden_layers:12层
prev_output:embedding层(batch*len,dim=768)

构建Query句阵

12头,64维
在这里插入图片描述

构建Key矩阵

在这里插入图片描述

构建value矩阵

在这里插入图片描述

转换维度:

将原来[batch,len,N,hidden_dim]转换为[batch,N,len,dim]仅仅最后两维做内积
在这里插入图片描述

Softmax

在这里插入图片描述

得分与V特征信息点积:

matmul之前都是对V的维度进行改变能够与attention_probs的维度[B,N,len,len]进行点积
V=[B,N,L,Hidden_dim]
在这里插入图片描述

残差连接

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值