第二章 注意力机制核心模块
读者读完这章,能够掌握注意力的各种变体、计算优化方法,以及Encoder-Decoder架构中的注意力应用。
2.1 Cross-Attention与Encoder-Decoder架构
Cross-Attention是连接编码器和解码器的关键组件,它在Transformer架构中扮演着信息桥梁的角色。
2.1.1 Cross-Attention的基本原理
Cross-Attention的核心特点是:
- Query来自解码器
- Key和Value来自编码器
- 实现了跨序列的信息传递
2.1.2 Encoder-Decoder架构中的注意力流程
在标准的Encoder-Decoder架构中,Cross-Attention的工作流程如下:
- 编码阶段: 编码器处理输入序列,生成上下文向量
- 解码阶段: 解码器逐步生成输出
- 注意力阶段: 解码器的每个时间步都通过Cross-Attention关注编码器的所有输出
2.1.3 多层堆叠的优势
现代Transformer通常采用多层堆叠的Encoder-Decoder架构:
多层堆叠带来的优势:
- 深层语义理解: 每层捕捉不同级别的语义信息
- 梯度流动: 多层连接有助于缓解梯度消失问题
- 特征抽象: 高层学习更抽象的表示
2.1.4 位置编码的重要性
由于Cross-Attention本身不具备位置感知能力,位置编码变得至关重要:
2.2 注意力机制的变体与改进
为了适应不同的任务需求,注意力机制发展出了多种变体,每种都有其独特的优势。
2.2.1 Local Attention (局部注意力)
Local Attention限制每个查询只能关注局部窗口内的键值对:
适用场景:
2.2.2 Multi-Query Attention (多查询注意力)
MQA使用多个查询向量来关注不同的信息维度:
2.2.3 Grouped Query Attention (分组查询注意力)
GQA是MQA的改进版本,将查询分组进行并行计算:
2.2.4 Sliding Window Attention (滑动窗口注意力)
SWA结合了全局注意力和局部注意力的优势:
2.3 注意力力的计算优化
标准注意力机制的计算复杂度为(n^2d_k)$,这成为制约其在大规模应用中的瓶颈。
2.3.1 注意力力的计算瓶颈
标准注意力的主要瓶颈在于:
- 矩阵乘法: ^T 需要计算 \times n的矩阵
- 内存占用: \times n的注意力权重矩阵需要(n^2)空间
- 计算复杂度: 矩阵乘法的时间复杂度为(n^2d_k)$
2.3.2 稀疏注意力策略
稀疏注意力通过限制连接数量来降低复杂度:
2.3.3 低秩近似方法
低秩近似通过矩阵分解来减少计算量:
2.3.4 注意力力的并行化优化
利用GPU的并行计算能力:
本章总结
本章深入探讨了注意力机制的核心模块:
- Cross-Attention: 理解了Encoder-Decoder架构中的信息传递机制
- 注意力变体: 学习了Local、Multi-Query、Grouped等改进方案
- 计算优化: 掌握了稀疏注意力、低秩近似等优化策略
这些核心模块为后续的FlashAttention实现奠定了基础。下一章将深入注意力的数学原理和硬件优化。