概念定义
自注意力(Self-Attention)是一种让序列中每个位置都能直接关注其他所有位置的机制,通过计算查询、键、值向量之间的相似度,实现信息的全局聚合和特征提取。详细解释
自注意力机制是Transformer架构的灵魂。不同于RNN的序列依赖处理,自注意力允许模型一次性并行处理整个序列,每个位置都能直接”看到”并与其他所有位置交互。这种设计不仅解决了长距离依赖问题,还极大提升了训练效率。 2024年,Flash Attention 3的发布将自注意力的效率推向新高度。通过异步计算和FP8低精度支持,FA3在H100 GPU上实现了理论峰值FLOPs 75%的利用率,相比FA2的35%有质的飞跃。这使得Llama 3等模型能够处理百万级token的超长上下文。更重要的是,FlashDecoding技术解决了低批量推理时的GPU利用率问题,让实时应用成为可能。 自注意力的数学本质是一个加权平均过程:每个位置的输出是所有位置值向量的加权和,权重由查询-键的点积相似度决定。这种机制让模型能够动态地决定关注哪些信息,而不是依赖固定的卷积核或循环连接。从BERT的双向理解到GPT的因果生成,自注意力展现了惊人的灵活性。工作原理
🧠 自注意力机制详解
📝 输入序列:计算每个位置与所有位置的关系
以句子”The cat sat on the mat”为例,我们重点看cat如何关注其他词:The
cat
sat
on
the
mat
🔧 第一步:线性变换生成Q、K、V
对每个位置的嵌入向量,通过三个不同的权重矩阵变换得到:
- Query (Q): “我想关注什么?”
- Key (K): “我有什么信息?”
- Value (V): “我要传递什么内容?”
变换类型 | 矩阵维度 | 输出 | 作用 |
---|---|---|---|
WQ | d×dk | Q(cat) | 查询向量:决定关注重点 |
WK | d×dk | K(cat) | 键向量:提供匹配信息 |
WV | d×dv | V(cat) | 值向量:传递的内容信息 |
所有位置都进行相同的线性变换,但得到的Q、K、V向量因为输入不同而不同
⚡ 第二步:计算注意力分数和权重
以”cat”位置为例:
最终注意力权重可视化:
-
Q(cat)与所有K的点积:
-
注意力分数(缩放前):
-
缩放 + Softmax:
缩放因子√dk防止梯度消失
The
0.1
cat
0.5
sat
0.15
on
0.05
the
0.1
mat
0.1
🎯 第三步:加权聚合值向量
输出 = Σ(权重 × 值向量)Output(cat) = 0.1×V(The) + 0.5×V(cat) + 0.15×V(sat) + 0.05×V(on) + 0.1×V(the) + 0.1×V(mat)最终输出:包含了所有位置信息的新表示,突出了与”cat”最相关的内容
⚡ 2024年Flash Attention 3革命性优化
🔄 异步计算
- Hopper张量核心:最新H100 GPU架构支持
- 计算与数据移动重叠:隐藏内存延迟
- Warp特化技术:线程级优化
- GPU利用率: 从35%提升至75%
🎯 FP8低精度
- Hadamard变换:incoherent processing
- 量化误差↓2.6x:更精确的低精度计算
- 离群值处理:特殊值保护机制
- 速度提升: **40%**加速
⚡ FlashDecoding
- KV矩阵分块:内存友好的分解
- 多SM并行:GPU并行单元充分利用
- 低批量优化:实时应用友好
- 推理加速: 8x倍提升
🔬 数学公式
自注意力的核心公式:- Q: Query矩阵 (序列长度 × dk)
- K: Key矩阵 (序列长度 × dk)
- V: Value矩阵 (序列长度 × dv)
- dk: 键向量的维度(用于缩放)
🎯 自注意力的核心步骤
- 线性变换:将输入映射到查询(Q)、键(K)、值(V)空间
- 注意力计算:Q与K点积,缩放,Softmax归一化
- 值聚合:用注意力权重加权V,得到输出
- 并行处理:所有位置同时计算,无序列依赖
实际应用
标准自注意力实现
Flash Attention 3优化实现
因果自注意力(GPT风格)
长序列优化
性能对比
实现方式 | 内存复杂度 | 时间复杂度 | 最大序列长度 | GPU利用率 |
---|---|---|---|---|
标准注意力 | O(N²) | O(N²) | ~4K | 20-30% |
Flash Attention | O(N) | O(N²) | ~32K | 40-50% |
Flash Attention 2 | O(N) | O(N²) | ~128K | 35% (H100) |
Flash Attention 3 | O(N) | O(N²) | ~1M | 75% (H100) |
滑动窗口 | O(N×W) | O(N×W) | 无限制 | 30-40% |
相关概念
- Transformer架构 - 整体架构
- 多头注意力 - 多维度特征提取
- Flash Attention - 高效实现
- 因果掩码 - 自回归生成
- 交叉注意力 - 多模态融合