Transformer 精读
Attention Is All You Need
Transformer | Vaswani et al., 2017 | 【精读】
阅读重点
- Transformer 是多模态大模型和现代 LLM 的核心骨架。
- 重点理解:Self-Attention、Multi-Head Attention、Positional Encoding、Encoder-Decoder 结构。
- 真正要抓住的是 QKV 的直觉含义、注意力矩阵怎么来,以及为什么要 scaled dot-product。
笔记
- Transformer 重要,是因为它允许整个序列并行计算,不像 RNN 那样按时间步一个个处理。它真正厉害的地方是:每个 token 都可以直接看到序列中其他位置的信息,因此更容易建模长距离依赖。
- Self-Attention 的核心作用是让一个 token 在编码自己时,动态决定应该关注序列中的哪些 token。比如一句话里的“它”到底指代哪个名词,Self-Attention 可以通过相关性自动把更多注意力放到最相关的位置上。
- Q、K、V 可以类比为图书馆检索:Query 像“我现在想找什么信息”,Key 像“我这里有什么标签,适不适合被你关注”,Value 像“如果你关注我,我真正提供的内容是什么”。
- 注意力矩阵的计算过程是:每个 token 先线性映射得到 Q、K、V;再用 Q 和所有 K 做点积,得到相关性分数;经过 softmax 得到注意力权重;最后用这些权重对所有 V 加权求和。
- scaled dot-product 中除以 $\sqrt{d_k}$ 是为了训练稳定。如果向量维度很大,Q 和 K 的点积容易变得很大,softmax 会过早变尖锐,让少数位置权重接近 1,其他位置接近 0,梯度也会变小。
- Multi-Head Attention 的价值不是“重复算很多遍”,而是让模型在多个子空间并行学习不同关系模式。有的 head 可能关注语法,有的关注位置,有的关注语义相似度。
- Attention 本身不知道顺序。如果没有位置编码,“狗咬人”和“人咬狗”在 token 集合上很像,但意义完全不同。所以 Transformer 必须额外注入位置信息。
- Encoder 负责把输入序列编码成上下文表示,可以理解成“先读懂原文”;Decoder 负责基于已生成内容和 Encoder 信息继续生成,可以理解成“边看理解结果边写答案”。后来的 BERT 主要用 Encoder,GPT 主要用 Decoder。
- Transformer 的核心不是只能处理文本,而是处理一串 token 的关系。文本可以切成 token,图像可以切成 patch,音频也可以切成时间片;只要能表示成序列,就可以被 Transformer 统一处理。