美文网首页
Transformer结构

Transformer结构

作者: 又双叒叕苟了一天 | 来源:发表于2023-04-07 15:20 被阅读0次

1 模型结构

  1. 编码器(左)
  2. 解码器(右)

编码器和解码器都可以N层堆叠,原论文是6层
核心:多头注意力机制

transformer

1.1 嵌入层

  1. 词嵌入
  2. 位置编码
  3. 词嵌入和位置嵌入矩阵元素相加

1.1.1 词嵌入

  • 编码器:把输入句子中每个单词转化为单词的嵌入,构成单词数×词嵌入维度的矩阵。词嵌入维度是512
  • 解码器:输入是目标句子添加句子起始符号<sos>。预测时位移(<sos>-->Je,Je-->vais,vais-->bien,bien--><eos>)

1.1.2 位置编码

P(pos,2i)=\sin(\frac{pos}{10000^{2i/d_{model}}})\\ P(pos,2i)=\cos(\frac{pos}{10000^{2i/d_{model}}})

pos=0,1,2,\cdotsi=0,1,2,\cdots,255(512维位置编码)

1.2 编码器

  1. 多头注意力层
  2. 前馈网络层
  3. 叠加和归一组件

1.2.1 多头注意力层

  1. 词嵌入矩阵(单词数×词嵌入维度(512))通过前馈神经网络转化为3个矩阵:查询矩阵Q(单词数×注意力维度(64))、键矩阵K、值矩阵V
  2. 计算分数并缩放Q\cdot K^T/\sqrt{d_k}d_k是注意力维度(64)
  3. 归一化得到分数矩阵:softmax(Q\cdot K^T/\sqrt{d_k})
  4. 使用分数矩阵对值矩阵V加权求和得到注意力矩阵Z
  5. 使用N个这样的注意力矩阵拼接,N为头的个数(=8),每个头表示不同注意力的空间

1.2.2 前馈神经网络

两个ReLU激活函数构成的全连接层

1.2.3 叠加和归一组件

残差连接和归一化

1.3 解码器

  1. 带掩码的多头注意力层
  2. 多头注意力层
  3. 前馈网络层
  4. 叠加和归一组件
  5. 线性层和softmax层

1.3.1 带掩码的多头注意力层

  1. 词嵌入矩阵(单词数×词嵌入维度(512))通过前馈神经网络转化为3个矩阵:查询矩阵Q(单词数×注意力维度(64))、键矩阵K、值矩阵V
  2. 计算分数并缩放Q\cdot K^T/\sqrt{d_k}d_k是注意力维度(64)
  3. 对掩码位置使用极小的数替换,使得softmax时对该位置注意力为0
  4. 归一化得到分数矩阵:softmax(Q\cdot K^T/\sqrt{d_k})
  5. 使用分数矩阵对值矩阵V加权求和得到注意力矩阵Z

原因:生成时每个单词只能观察到自身以及自身之前的单词


掩码

1.3.2 多头注意力层

  1. 编码器的输出矩阵通过前馈神经网络转化为查询矩阵Q,带掩码的多头注意力层的输出转化为键矩阵K和值矩阵V
  2. 计算分数并缩放Q\cdot K^T/\sqrt{d_k}d_k是注意力维度(64)
  3. 归一化得到分数矩阵:softmax(Q\cdot K^T/\sqrt{d_k})
  4. 使用分数矩阵对值矩阵V加权求和得到注意力矩阵Z

1.3.3 前馈网络层以及叠加和归一组件

和编码器中相同

1.3.4 线性层和softmax层

  1. 编码器输出通过线性层转换到词汇表维度
  2. 通过softmax层获得词汇表中每个单词的概率

2 训练Transformer

  1. 模型预测输出和真实输出使用交叉熵计算损失
  2. 使用Adam优化器训练
  3. dropout应用在各个子层和嵌入层最后的输出

参考资料

[1]. BERT基础教程Transformer大模型实战
[2]. Attention Is All You Need

相关文章

网友评论

      本文标题:Transformer结构

      本文链接:https://www.haomeiwen.com/subject/wbxdddtx.html