sparse attention

分类: 深度学习基础

Sparse Attention

定义

通过限制每个 token 只关注部分(而非全部)其他 token,将标准注意力的 O(n2)O(n^2) 复杂度降低到 O(nn)O(n \sqrt{n})O(nlogn)O(n \log n) 的注意力机制变体

数学形式

SparseAttn(Q,K,V)=softmax(QKMdk)V\text{SparseAttn}(Q, K, V) = \text{softmax}\left(\frac{Q K^\top \odot M}{\sqrt{d_k}}\right) V 其中 MM 为稀疏掩码矩阵,决定哪些位置对可以互相关注

核心要点

标准自注意力的 O(n2)O(n^2) 复杂度是长序列处理的主要瓶颈

稀疏模式包括:固定模式(local window, strided)、学习模式(routing attention)、基于内容的动态模式

FlashAttention 解决的是 IO 效率问题,sparse attention 解决的是计算复杂度问题,两者可互补

在超长上下文(>100K tokens)场景中几乎是必需品

代表工作

Longformer: 局部窗口注意力 + 全局 token

BigBird: 随机 + 窗口 + 全局稀疏模式

MSA: Memory Sparse Attention,结合外部记忆实现 100M token 级别处理

Reformer: LSH attention 实现近似稀疏

相关概念

FlashAttention

RoPE

SnapKV

Token Merging