一、 Native Sparse Attention(NSA)实现原理与分析
核心思想:
NSA 是一种硬件对齐、可原生训练的稀疏注意力机制,通过动态分层稀疏策略(粗粒度压缩 + 细粒度选择 + 滑动窗口)平衡全局上下文和局部精度,同时优化硬件效率。
关键技术点:
-
分层稀疏策略:
-
压缩分支(CMP):将序列分块聚合为粗粒度表示,降低计算量。
-
选择分支(SLC):基于块级重要性评分动态保留关键细粒度token。
-
滑动窗口(WIN):保留局部上下文,防止其他分支被局部模式主导。
-
-
硬件优化:
- 针对现代 GPU 的 Tensor Core 设计块状内存访问,优化算术强度平衡。
- 使用 Triton 实现高效内核,支持 GQA/MQA 架构的 KV 共享。
-
训练优化:
- 端到端可训练,通过梯度传播学习稀疏模式。
- 通过门控机制动态融合三个分支的输出。
优势:
在 64k 长序列上实现全阶段(解码、前向、反向)加速(最高 11.6 倍),同时保持或超越全注意力模型的性能。
二、 Mixture of Block Attention(MoBA)实现原理与分析
核心思想:
MoBA 基于混合专家(MoE)思想,将上下文分块并通过门控动态选择相关块,实现块级稀疏注意力,同时支持与全注意力的灵活切换。
关键技术点:
-
块分割与门控选择:
-
将长序列分块,计算查询与块内键的亲和度。
-
通过 Top-k 门控选择最相关块。
-
-
因果性与实现优化:
-
禁止未来块访问,强制包含当前块并应用因果掩码。
-
结合 FlashAttention 实现高效计算。
-
-
混合训练策略:
-
支持 MoBA 与全注意力的混合训练,缓解长上下文梯度稀疏问题。
-
层间混合(如最后几层用全注意力)提升监督微调效果。
-
优势:
在 1M 上下文长度下实现 16 倍加速(图2b),性能接近全注意力(表2),支持动态调整块粒度和稀疏度。
三、 异同点对比
维度 | NSA | MoBA |
---|---|---|
稀疏策略 | 动态分层(压缩+选择+窗口) | 块级选择(MoE 风格的门控路由) |
粒度 | 细粒度 token 选择 + 粗粒度块压缩 | 块级选择(固定或动态块大小) |
硬件优化 | Tensor Core 对齐、Triton 内核优化 | FlashAttention 集成、MoE 风格调度 |
训练支持 | 端到端可训练,原生支持反向传播 | 需混合训练(如阶段切换或层间混合) |
因果性处理 | 通过滑动窗口隐式维护 | 显式禁止未来块访问 + 当前块因果掩码 |
适用场景 | 通用长上下文任务,推理与训练均高效 | 超长序列(如百万 token)的预训练与推理 |
性能表现 | 在 64k 序列上性能优于全注意力 | 在 1M 序列上性能接近全注意力 |
创新点 | 动态分层策略 + 硬件对齐内核设计 | MoE 式块路由 + 灵活混合训练策略 |
四、 总结
- 共同目标:降低注意力计算复杂度,支持长上下文建模,同时保持模型性能。
- 差异路径:
- NSA 强调细粒度动态选择和硬件优化,适合通用长任务的高效训练与推理。
- MoBA 侧重块级路由和混合训练策略,更适合超长序列(如百万 token)的场景。
- 互补性:NSA 的细粒度选择可增强局部精度,而 MoBA 的块路由更适合极端长度的高效扩展。两者均可作为 Transformer 架构的改进方向。