# NSA:原生可训练、硬件对齐的稀疏注意力 > **原文标题**:Native Sparse Attention: Hardware-Aligned and Natively Trainable Sparse Attention > **arXiv**:[2502.11089](https://arxiv.org/abs/2502.11089) | **发布**:16 Feb 2025(最后修订 27 Feb 2025, v2) > **作者/机构**:Jingyang Yuan、Huazuo Gao、Damai Dai、Junyu Luo、Liang Zhao、Zhengyan Zhang、Zhenda Xie、Y. X. Wei、Lean Wang、Zhiping Xiao、Yuqing Wang、Chong Ruan、Ming Zhang、Wenfeng Liang、Wangding Zeng;DeepSeek-AI(深度求索)联合北京大学(Peking University, PKU-Anker LLM Lab)与华盛顿大学(University of Washington) > **原文 PDF**:[03-NSA-原生稀疏注意力-2502.11089.pdf](./03-NSA-原生稀疏注意力-2502.11089.pdf) ## 一、摘要(全文翻译) 长上下文建模对下一代语言模型至关重要,然而标准注意力机制的高昂计算开销带来了严峻的计算挑战。稀疏注意力为在保持模型能力的同时提升效率提供了颇具前景的方向。我们提出 NSA——一种原生可训练的稀疏注意力(Natively trainable Sparse Attention)机制,它把算法创新与硬件对齐(hardware-aligned)的优化结合起来,以实现高效的长上下文建模。NSA 采用动态分层稀疏策略,将粗粒度的 token 压缩与细粒度的 token 选择相结合,从而同时保持全局上下文感知能力与局部精度。我们的方法以两项关键创新推进了稀疏注意力的设计:(1)借助算术强度(arithmetic intensity)平衡的算法设计,并配合面向现代硬件的实现优化,我们取得了显著的加速;(2)我们实现了端到端训练,在不牺牲模型性能的前提下减少了预训练算力开销。如图 1 所示,实验表明:用 NSA 预训练的模型在通用基准、长上下文任务与指令式推理上均保持或超越了全注意力(Full Attention)模型。同时,在 64k 长度序列上,NSA 在解码、前向传播与反向传播各阶段相比全注意力都取得了显著加速,验证了其效率贯穿整个模型生命周期。 ## 二、核心贡献 1. **提出原生可训练的分层稀疏注意力框架 NSA**:把每个查询对应的 key-value 重映射为三条并行分支——粗粒度 token 压缩(compression)、细粒度 token 选择(selection)、局部滑动窗口(sliding window),再用可学习门控加权融合,在 $N_t \ll t$ 的高稀疏度下同时保住全局感知与局部精度。 2. **以算术强度平衡为准则做硬件对齐设计**:区分「训练/预填充是算力受限、解码是访存受限」两种优化目标;实现上按 GQA 分组加载查询、组内共享稀疏 KV 块,用 Triton 写专用核,使计算削减真正转化为延迟下降,覆盖预填充、解码与训练三个阶段。 3. **稀疏模式在训练中原生学习,而非事后套用**:压缩与选择算子可反向传播,无需聚类、哈希等离散操作;27B 总参数 / 3B 激活参数模型的预训练损失全程低于全注意力基线。 4. **性能不降反升**:通用基准 9 项中 7 项超过全注意力(平均 0.456 vs 0.443),LongBench 平均分 0.469 为全部方法最高(高出全注意力 +0.032、高出 Exact-Top +0.046)。 5. **全生命周期加速与长上下文能力增强**:64k 序列下解码最高 11.6×、前向 9.0×、反向 6.0× 加速,且序列越长优势越大;64k 大海捞针(Needle-in-a-Haystack)检索全位置满分,AIME 24 上 NSA-R 相比全注意力基线在 8k/16k 生成预算下分别高出 +0.075 / +0.054。 ## 三、方法与技术要点 ### 3.1 为何要「原生」稀疏:对现有稀疏注意力的再思考(论文第 2 节) **高效推理的幻觉(2.1 节)。** 一是**阶段受限**:H2O 只在解码阶段稀疏,预填充仍需昂贵的注意力图计算与索引构建;MInference 只做预填充稀疏。二者至少有一个阶段的计算量与全注意力相当,在书本摘要(预填充主导)或长思维链(解码主导)等负载下都无法全程加速。二是**与现代架构不兼容**:Quest 让每个头独立选择 KV 子集,在多头注意力(MHA)下计算与访存都稀疏;但在分组查询注意力(GQA)等共享 KV 架构下,同组各头实际需要的访存量是各自选择的**并集**——算得少了,但读得没少。 **可训练稀疏的神话(2.2 节)。** 事后(post-hoc)套用稀疏迫使模型偏离预训练轨迹:已有工作表明 top 20% 的注意力仅覆盖总注意力分数的 70%,预训练形成的「检索头」在剪枝下非常脆弱。训练侧有两类硬伤:ClusterKV 的 k-means 聚类、MagicPIG 的 SimHash 选择等**离散操作**切断计算图,梯度无法流经 token 选择;HashAttention 的 token 粒度选择虽理论可训,却要从 KV cache 加载大量彼此离散的 token,非连续访存令 FlashAttention 的分块计算失效,被迫退回低硬件利用率。 ### 3.2 总体框架:三路重映射与门控融合(3.1、3.2 节) 标准注意力为 $\mathbf{o}_t=\operatorname{Attn}(\mathbf{q}_t,\mathbf{k}_{:t},\mathbf{v}_{:t})$,其中 $\alpha_{t,i}=e^{\mathbf{q}_t^{\top}\mathbf{k}_i/\sqrt{d_k}}$。NSA 的核心思路是把 $\mathbf{k}_{:t},\mathbf{v}_{:t}$ 换成更紧凑、信息密度更高的表示: $$ \tilde{K}_t=f_K(\mathbf{q}_t,\mathbf{k}_{:t},\mathbf{v}_{:t}),\qquad \tilde{V}_t=f_V(\mathbf{q}_t,\mathbf{k}_{:t},\mathbf{v}_{:t}) $$ $$ \mathbf{o}^{*}_t=\operatorname{Attn}(\mathbf{q}_t,\tilde{K}_t,\tilde{V}_t)=\sum_{c\in\mathcal{C}}g_t^{c}\cdot\operatorname{Attn}(\mathbf{q}_t,\tilde{K}_t^{c},\tilde{V}_t^{c}) $$ 映射集合仅取三种:$\mathcal{C}=\{\text{cmp},\text{slc},\text{win}\}$;门控 $g_t^{c}\in[0,1]$ 由输入特征经 MLP 加 sigmoid 得到。重映射后总长度 $N_t=\sum_{c\in\mathcal{C}}\operatorname{size}[\tilde{K}^{c}_t]$,靠 $N_t\ll t$ 维持高稀疏比。 ### 3.3 三条分支的算法设计(3.3 节) **Token 压缩(3.3.1)。** 把连续的 key/value 分块聚合为块级表示:$\tilde{K}^{\text{cmp}}_t=\{\varphi(\mathbf{k}_{id+1:id+l})\mid 0\leqslant i\leqslant\lfloor\frac{t-l}{d}\rfloor\}$,其中 $l$ 为块长、$d$ 为块间滑动步长,$\varphi$ 是带块内位置编码的可学习 MLP;通常取 $d