Transformer 注意力机制 三级解读:从入门到精通
Transformer 注意力机制 · 三级解读
Section titled “Transformer 注意力机制 · 三级解读”🟢 入门版:小白能懂
Section titled “🟢 入门版:小白能懂”想象你在一个嘈杂的聚会上,同时有十个人在跟你说话。但你不是平均地听每个人——你会根据”谁说的更重要”来分配注意力。如果老板在说下周的截止日期,你会全神贯注;如果有人在聊午饭吃什么,你可能就忽略。
Transformer 的注意力机制做的事情完全一样:当它处理一段文字时,对于每一个词,它会去”看”句子里的所有其他词,然后决定每个词有多重要。比如:
“那只猫趴在它的垫子上”
当 AI 读到”它”这个字的时候,注意力机制会让它把最多的注意力放在”猫”上,而不是”垫子”或”趴”。这样 AI 就能理解”它”指的是猫,而不是垫子。
这就是注意力的全部精髓——动态地决定”现在该关注什么”。
🟡 中级版:有编程基础
Section titled “🟡 中级版:有编程基础”Q、K、V 是什么?
Section titled “Q、K、V 是什么?”注意力机制的核心是三个矩阵:Query(查询)、Key(键)、Value(值)。这是一个经典的检索类比:
- 你在搜索引擎输入关键词 → Query
- 每篇文档的标题/摘要 → Key
- 文档的实际内容 → Value
输入序列: [我, 爱, 自然, 语言, 处理] ↓ 线性投影 (3个不同的权重矩阵) ↓ Q = X @ Wq K = X @ Wk V = X @ Wv ↓ scores = Q @ K.T # 计算每对 token 的关联分数 ↓ scores = scores / sqrt(d_k) # 缩放,防止数值过大 ↓ weights = softmax(scores) # 归一化为概率分布 ↓ output = weights @ V # 加权求和,得到最终表示多头注意力(Multi-Head Attention)
Section titled “多头注意力(Multi-Head Attention)”不只用一组 Q/K/V,而是同时用多组(比如 8 组),每组学不同的关注模式:
- 头 1 可能关注语法关系(主语↔谓语)
- 头 2 可能关注语义相似度(近义词)
- 头 3 可能关注位置信息
最后把所有头的输出拼接起来,再做一次线性变换。
位置编码(Positional Encoding)
Section titled “位置编码(Positional Encoding)”纯注意力没有位置概念(“猫吃鱼”和”鱼吃猫”的分数一样),所以要用位置编码注入顺序信息:
PE(pos, 2i) = sin(pos / 10000^(2i/d_model))PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))x_input = token_embedding + PE自注意力 vs 交叉注意力
Section titled “自注意力 vs 交叉注意力”| 类型 | Q 来源 | K/V 来源 | 用途 |
|---|---|---|---|
| Self-Attention | 输入序列 | 同一输入 | 编码器内部、理解自身 |
| Cross-Attention | 目标序列 | 源序列 | 解码器关注源语言 |
| Masked Self-Attention | 输入序列 | 同一输入(屏蔽未来) | 解码器自回归生成 |
🔴 高级版:研究者水平
Section titled “🔴 高级版:研究者水平”1. Scaled Dot-Product Attention 的数学定义
Section titled “1. Scaled Dot-Product Attention 的数学定义”给定查询矩阵 Q ∈ ℝ^(n×d_k),键矩阵 K ∈ ℝ^(n×d_k),值矩阵 V ∈ ℝ^(n×d_v):
Attention(Q, K, V) = softmax(QK^T / √d_k) · V
缩放因子 √d_k 的动机:当 d_k 较大时,点积的方差为 d_k,会导致 softmax 进入饱和区(梯度消失),除以 √d_k 将方差归一化为 1。
2. Multi-Head Attention
Section titled “2. Multi-Head Attention”MultiHead(Q, K, V) = Concat(head_1, …, head_h) · W^O
其中 head_i = Attention(QW_i^Q, KW_i^K, VW_i^V)。典型配置 d_k = d_v = d_model / h。
3. 复杂度分析
Section titled “3. 复杂度分析”| 方法 | 每层复杂度 | 顺序操作数 | 最大路径长度 |
|---|---|---|---|
| Self-Attention | O(n² · d) | O(1) | O(1) |
| Recurrent | O(n · d²) | O(n) | O(n) |
| CNN (受限核) | O(n · k · d²) | O(1) | O(n/k) |
注意力的 O(n²) 复杂度是核心瓶颈,驱动了后续大量高效注意力研究。
4. 前沿进展
Section titled “4. 前沿进展”Flash Attention (Dao et al., 2022)
Section titled “Flash Attention (Dao et al., 2022)”Tiled 分块计算 + IO-aware:将 Q/K/V 分块加载到 SRAM,计算分块 softmax,避免物化完整的 n×n 注意力矩阵。实现精确注意力,但 IO 复杂度从 O(n²) 降至 O(n²d/M)(M 为 SRAM 大小),实际加速 2-4x。
Linear Attention (Katharopoulos et al., 2020)
Section titled “Linear Attention (Katharopoulos et al., 2020)”利用 kernel trick 将 softmax 近似为特征映射,先计算 S = φ(K)^T V,再计算 φ(Q)S,复杂度从 O(n²d) 降至 O(nd²)。
Sparse Attention
Section titled “Sparse Attention”- Longformer:局部窗口 + 全局 token
- BigBird:random + window + global,证明是 Turing complete
- StreamingLLM:仅缓存最近 n 个 token + attention sink,实现无限上下文推理
Multi-Query Attention / Grouped-Query Attention
Section titled “Multi-Query Attention / Grouped-Query Attention”- MQA:多个头共享同一组 K/V,推理时 KV cache 减少 h 倍
- GQA:折中方案,g 组共享,Llama 2/3 采用此设计
Ring Attention (Liu et al., 2023)
Section titled “Ring Attention (Liu et al., 2023)”分布式注意力:将序列切分到多个 GPU,通过 ring communication 传递 KV block,实现超长序列(100K+ tokens)的分布式训练。
5. 注意力的理论理解
Section titled “5. 注意力的理论理解”线性注意力假说
Section titled “线性注意力假说”Olsson et al. (2024) 发现训练后的 Transformer 中,注意力头的行为趋近线性组合,许多头的 softmax 温度极高(接近均匀分布),表明大部分头可能在执行比预期更简单的操作。
双层电路(Induction Heads)
Section titled “双层电路(Induction Heads)”Elhage et al. (2021) 发现 Transformer 通过组合两个注意力头实现 in-context learning:Head A 在前文复制 token 表示,Head B 利用这些表示检索之前出现过的序列完成 next-token prediction。这是 grokking 现象的关键机制。
📚 参考文献
Section titled “📚 参考文献”- Vaswani et al., “Attention Is All You Need”, NeurIPS 2017
- Dao et al., “FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness”, NeurIPS 2022
- Katharopoulos et al., “Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention”, ICML 2020
- Ainslie et al., “GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints”, EMNLP 2023
- Elhage et al., “A Mathematical Framework for Transformer Circuits”, 2021
- Olsson et al., “Are Sparse Mixture of Experts a Substitute for Dense Models?”, 2024