Reading Notes: “Annotated Transformer”

date
Jul 27, 2024
slug
annotated-transformer
status
Published
tags
NLP
summary
type
Post
本文是阅读 Annotated Transformer 以及 The illustrated Transformer 的一些简单记录,以便日后回顾之用。
子层以及模型的代码实现:

Transfomer: A Black Box View

一个用于序列翻译任务的模型(至少最初在 Attention is All you Need 中是作为这个用途)。
notion image

Model Architecture

notion image
上图很好地概括了 Transfomer 的模型结构:
  • 由一个 Encoder 和一个 Decoder 组成
  • Encoder 和 Decoder 都由若干个相同的 Encoder Block / Decoder Block 组成(除了 Decoder 最后的 projection layer)
  • 进入 Encoder 或 Decoder 之前 embedding 需要加上 positional encoding

Encoder Block

notion image
Encoder Block 主要由三类子层组成:
  • Multi-Head Attention: 多头自注意力,用于产生序列编码表示
  • Feed-Forward Network: 全连接层,用于引入非线性
  • Add & Norm: 残差连接和 LayerNorm

Decoder Block

notion image
图来自 illustrated Transformer,这里 Encoder-Decoder 应该是 Cross Attention.
Decoder Block 的构成和 Encoder Block 相同,不同之处在与注意力的应用:
  • 自注意力层使用 mask,在计算第 i 个 token 的表示的时候只能看到前 i-1 个 token
  • 第二个注意力层是 cross attention, key 和 value 都来自 encoder 的输出

Positional Encoding

目前为止,上述的架构中并没有考虑位置信息,这在处理序列问题时是不合适的,因此需要一种方式加入位置信息。位置编码是一个嵌入矩阵,序列中的每个位置对应一个 positional encoding, 在进入 encoder 或者 decoder 处理之前需要把 token 的 embedding 和对应的 positional encoding 相加以考虑位置信息。
 

© Lifan Sun 2023 - 2024