Files
20250724-882ca434/07-注意力机制演进.md
2026-04-25 19:20:45 +08:00

3.2 KiB
Raw Permalink Blame History

注意力机制演进

大上下文窗口背后的底层技术支撑——没有这些创新1M tokens 就只是理论数字。

核心问题

原始 Transformer 的自注意力复杂度是 O(n^2)

  • 4K tokens → 1600 万次计算
  • 128K tokens → 163 亿次计算
  • 1M tokens → 1 万亿次计算

不解决这个问题,长上下文就是空谈。

关键创新时间线

时间 创新 影响
2017.06 原始 Transformer / 自注意力 "Attention Is All You Need"O(n^2) 复杂度限制了上下文长度
2019-2020 稀疏注意力变体 Longformer、BigBird降低注意力复杂度支持更长序列
2022.05.27 FlashAttention IO 感知的精确注意力 + 分块计算2-4x 加速;让长上下文训练变得实际可行
2023 FlashAttention-2 更好的并行和工作分配
2023.08 Ring Attention 分块并行 Transformer将注意力计算分布到多设备理论上支持"无限"上下文
2023.11 Striped Attention 优化 Ring Attention 在因果 Transformer 上的效率
2024 FlashAttention-3 异步计算 + 低精度支持
2024.02 Ring Attention 处理百万级视频 实际验证 1M+ token 处理能力

FlashAttention最关键的突破

传统注意力

Q, K, V 矩阵(全在 GPU HBM 中)
    ↓
计算完整 n×n 注意力矩阵(写回 HBM
    ↓
与 V 相乘(再次读写 HBM

问题GPU 的计算很快,但 HBM 读写是瓶颈

FlashAttention

Q, K, V 矩阵
    ↓
分块Tiling切成小块放入 SRAM
    ↓
在 SRAM 中完成注意力计算(不写回中间结果)
    ↓
只输出最终结果到 HBM

效果:减少 HBM 读写次数2-4x 加速,无精度损失

Ring Attention分布式长上下文

设备 1          设备 2          设备 3          设备 4
┌──────┐      ┌──────┐      ┌──────┐      ┌──────┐
│ Q块1  │      │ Q块2  │      │ Q块3  │      │ Q块4  │
│ K块1  │ ──→ │ K块1  │ ──→ │ K块1  │ ──→ │ K块1  │ ──→ (环形传递)
│ V块1  │      │ V块1  │      │ V块1  │      │ V块1  │
└──────┘      └──────┘      └──────┘      └──────┘

KV 块在设备间环形传递,每个设备只需要存储自己的 Q 块
→ 上下文长度随设备数线性扩展
→ 理论上:设备数 × 单设备上下文 = 总上下文

技术栈对应关系

上下文里程碑 底层技术支撑
4K → 32K 模型架构优化RoPE 位置编码等)
32K → 128K FlashAttention 让训练可行
128K → 1M FlashAttention-2/3 + 稀疏注意力
1M → 10M Ring Attention + 分布式计算

趋势

  • 精确注意力没有被抛弃 —— FlashAttention 证明通过 IO 优化,精确注意力也能高效
  • 分布式是长上下文的终极答案 —— Ring Attention 让上下文长度和硬件规模线性相关
  • 硬件在追赶 —— 更大 SRAM、更快 HBM 让长上下文的成本持续下降