深度学习·经典模型·Transformer

用于博主复习

Transformer

Encoder

  • 输入和输出维度不变
  • 输入维度: ( n , d m o d e l ) (n,d_{model}) (n,dmodel),d m o d e l d_{model} dmodel一般是512,是embedding后的维度
  • 输出维度: ( n , d m o d e l ) (n,d_{model}) (n,dmodel)

自注意力层

注意力分为自注意力交叉注意力

Q,K,V

  • Q,K,V的含义不需要特别分清楚

V在自注意力和交叉注意力中的来源不同

  • Q: ( n , d m o d e l ) (n,d_{model}) (n,dmodel),
  • K: ( n , d m o d e l ) (n,d_{model}) (n,dmodel)
  • V: ( n , d m o d e l ) (n,d_{model}) (n,dmodel):
  • 注:d_model一般都为512,三者的d_model可以不同

d k \sqrt{d_k} dk 的作用

To illustrate why the dot products get large, assume that the components of q and k are independent random variables with mean 0 and variance 1. Then their dot product, q · k has mean 0 and variance d_k.

防止过于softmax过于集中,梯度过小(本质上是因为梯度关系)

  • 数学解释 :Q,K的均值为0,方差为1时,QK的均值为0,方差为 d k d_k dk

多头注意力

多头的动机:多头是为了学习不同的线性映射关系

  • 假设头数h=8,会有8个K,Q,V矩阵,维度为 d m o d e l / 8 d_{model}/8 dmodel/8,这些矩阵都是相对独立的,学习到的映射也不尽相同。

本质上是对 d m o d e l d_{model} dmodel特征维度学习的拆分

  • 最后拼接回来形成 ( n , d m o d e l ) (n,d_{model}) (n,dmodel)的输出即可

注意力输出

对原始token特征向量的基于上下文的一个"修正"或者新的映射

  • (QK)与V的乘积反映在特征空间上的加权,特征向量的某些维度(根据注意力权重)对于形成token新的特征向量更加重要?
  • 维度不变

MASKED掩码

只用于decoder中,由于decoder是基于自回归的方式,所以不能让一个t-1时刻的token与t时刻以后的tokens作注意力

  • Transformer掩码计算: s o f t m a x ( Q K T ∗ M A S K E D ) ∗ V softmax(QK^T*MASKED)*V softmax(QKT∗MASKED)∗V

交叉注意力

  • K,V是来自encoder的信息矩阵,Q是来自Decoder的信息矩阵.

显然是根据encoder的信息,对decoder的特征向量进行专属修正

FFN层

原文描述:In addition to attention sub-layers, each of the layers in our encoder and decoder contains a fully connected feed-forward network, which is applied to each position separately and identically. This consists of two linear transformations with a ReLU activation in between

除了注意力子层之外,我们的编码器和解码器中的每个层都包含一个完全连接的前馈网络,该网络分别且相同地应用于每个位置。这包括两个线性转换,中间有一个 ReLU 激活

  • 两个MLP,一个MLP负责放大维度到 4 ∗ d m o d e l 4*d_{model} 4∗dmodel,两一个负责输出回 d m o d e l d_{model} dmodel。

不要忘记:中间有一个GELU作为激活

Add&Norm

  • 残差连接后 ,再归一化

位置编码

位置编码的动机:Transformer没有序列先后顺序这一概念.

位置编码对于Transformer的作用明显,不加会掉点.

模型Workflow

  • 接受两个句子作为输入
  • 根据Softmax自回归输出token.

参考文献

cpp 复制代码
@misc{vaswaniAttentionAllYou2023,
  title = {Attention {{Is All You Need}}},
  author = {Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N. and Kaiser, Lukasz and Polosukhin, Illia},
  year = {2023},
  number = {arXiv:1706.03762},
  eprint = {1706.03762},
  primaryclass = {cs},
  publisher = {arXiv},
  doi = {10.48550/arXiv.1706.03762},
  archiveprefix = {arXiv}
}
相关推荐
Yo_Becky18 分钟前
【PyTorch】PyTorch预训练模型缓存位置迁移,也可拓展应用于其他文件的迁移
人工智能·pytorch·经验分享·笔记·python·程序人生·其他
DeepSeek-大模型系统教程20 分钟前
深入金融与多模态场景实战:金融文档分块技术与案例汇总
人工智能·ai·语言模型·程序员·大模型·大模型学习·大模型教程
xinxiangwangzhi_25 分钟前
pytorch底层原理学习--PyTorch 架构梳理
人工智能·pytorch·架构
yzx99101329 分钟前
关于网络协议
网络·人工智能·python·网络协议
AiTEN_Robot31 分钟前
AGV 无人叉车关键技术问题解析:精准定位算法 / 安全避障逻辑 / 系统对接协议全方案
人工智能·机器人·自动化·制造
云天徽上32 分钟前
【PaddleOCR】OCR常见关键信息抽取数据集,包含FUNSD、XFUND、WildReceipt等整理,持续更新中......
人工智能·计算机视觉·信息可视化·paddlepaddle·paddleocr·文本识别
zskj_zhyl32 分钟前
智绅科技:以科技为翼,构建养老安全守护网
人工智能·科技·安全
刘海东刘海东33 分钟前
结构型智能科技的关键可行性——信息型智能向结构型智能的转换(提纲)
人工智能
Jay Kay1 小时前
TensorFlow源码深度阅读指南
人工智能·python·tensorflow
FF-Studio1 小时前
【硬核数学 · LLM篇】3.1 Transformer之心:自注意力机制的线性代数解构《从零构建机器学习、深度学习到LLM的数学认知》
人工智能·pytorch·深度学习·线性代数·机器学习·数学建模·transformer