84 lines
3.2 KiB
Markdown
84 lines
3.2 KiB
Markdown
# 注意力机制演进
|
||
|
||
> 大上下文窗口背后的底层技术支撑——没有这些创新,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 让长上下文的成本持续下降
|