Transformer 论文学习笔记

重新学习了一下,整理了一下笔记

论文 :《Attention Is All You Need》
代码http://nlp.seas.harvard.edu/annotated-transformer/
地址https://arxiv.org/abs/1706.03762v5
翻译Transformer论文翻译

特点

  1. 提出一种不使用 RNN、CNN,仅使用注意力机制的新模型 Transformer;
  2. 只关注句内各 token 之间的关系;
  3. 使用矩阵计算长程token之间的关联,提升注意力的计算效率;
  4. 使用位置嵌入,为不同位置的token赋予不同的含义。

核心贡献

  • Self-Attention

Transformer 的基本结构

如图,其结构主要分为 Encoder 与 Decoder 两部分,基本单元是 Multi-Head Attention、Layer Norm、Residual Connect、Feed Forward Network,其中 Decoder 每一子块的输入处还有一个 Masked Multi-Head Attention。

Encoder 的输出会被送到 Decoder 的每一个子块中。


Self-Attention

Self-Attention ( K , Q , V ) = softmax ( Q K T d ) V \text{Self-Attention}(K,Q,V)=\text{softmax}(\frac{QK^T}{\sqrt{d}})V Self-Attention(K,Q,V)=softmax(d QKT)V

  • 上图 左侧是 Self-Attention 的计算流程
  • 从计算图以及共识来看,Self-Attention 是被 d \sqrt{d} d Scaled 过的原因是:该因子可以抑制 Q K T QK^T QKT 中过大的值,以防止梯度消失现象的出现
  • softmax 负责计算概率化的注意力分布,该分布负责在 V 中选择与 Qi 关联度较高的 values;
  • Q K T QK^T QKT 的目的是利用矩阵运算一次性计算出每个 Q i Q_i Qi 与所有 keys 的点积 ,同理,后面也一次性地为每个 Q i Q_i Qi 筛选出相应的 values。这种方法优点 是 Self-Attention 可以无视句中 token 之间的距离,以此获得更高的性能,缺点是计算量庞大;
  • 上图 右侧是 Multi-Head Self-Attention 的计算流程,原因是:Multi-Head 增加了特征子空间的数量,使模型能够获取更加丰富的语义信息
  • 文本信息是有先后顺序的,为了防止 Decoder 在处理 LLM 任务时出现信息向"历史"方向传播的现象,需要对一些与 illegal 连接关联的 values 采用 mask out 的操作,即屏蔽掉(设置为 − ∞ -\infin −∞),即只能用前面的token预测后面的token,不能反过来。

Self-Attention 的一个缺点及修补方式

缺点 :点积运算无法对序列中 token 出现的位置进行建模,这样会导致模型无法充分地利用数据上下文中所蕴含的丰富的语义信息。
解决方式:引入位置嵌入(Position Embedding、Position Encoding)

python 复制代码
PE_{pos,2i}=sin(pos/10000^{2i/d_{model}})
PE_{pos,2i+1}=cos(pos/10000^{2i/d_{model}})

使用三角函数的原因 :模型借此可为每个token获取相对位置 信息(对任意偏移量 k k k, P E p o s + k PE_{pos+k} PEpos+k 都可以作为 P E p o s PE_{pos} PEpos 的线性函数),此外它还可以把模型外推到比训练中最长的序列更长的序列中去。


Self-Attention 的复杂度:

相关推荐
禁默21 分钟前
大模型推理的“氮气加速系统”:全景解读 Ascend Transformer Boost (ATB)
人工智能·深度学习·transformer·cann
User_芊芊君子22 分钟前
CANN大模型加速核心ops-transformer全面解析:Transformer架构算子的高性能实现与优化
人工智能·深度学习·transformer
YCY^v^32 分钟前
JeecgBoot 项目运行指南
java·学习
云小逸38 分钟前
【nmap源码解析】Nmap OS识别核心模块深度解析:osscan2.cc源码剖析(1)
开发语言·网络·学习·nmap
禁默1 小时前
Ops-Transformer:CANN生态赋能AIGC的Transformer专用加速库
深度学习·aigc·transformer·cann
JustDI-CM1 小时前
AI学习笔记-提示词工程
人工智能·笔记·学习
悟纤1 小时前
学习与专注音乐流派 (Study & Focus Music):AI 音乐创作终极指南 | Suno高级篇 | 第33篇
大数据·人工智能·深度学习·学习·suno·suno api
爱写bug的野原新之助1 小时前
加密摘要算法MD5、SHA、HMAC:学习笔记
笔记·学习
饭饭大王6661 小时前
迈向智能体时代——构建基于 `ops-transformer` 的可持续 AI 系统
人工智能·深度学习·transformer
ZH15455891312 小时前
Flutter for OpenHarmony Python学习助手实战:Web开发框架应用的实现
python·学习·flutter