【LLM大模型组件】注意力机制:DeepSeek 稀疏注意力机制(DSA)
DeepSeek 稀疏注意力机制(DSA)是一种创新的、由 闪电索引器(Lightning Indexer) 驱动的 动态细粒度稀疏注意力 机制。它将传统自注意力机制的 “选择” 过程与 “计算” 过程解耦,仅对Top-k个最相关的历史词元(Token)进行高精度注意力计算。
文章优先发布在微信公众号——“LLM大模型”,有些文章未来得及同步,可以直接关注公众号查看
DeepSeek-V3.2-Exp,这是一个实验性的稀疏注意力大语言模型(LLM)。该模型通过精密的持续训练(Continued Training) 策略,在DeepSeek-V3.1-Terminus基准上成功集成了DeepSeek稀疏注意力(DeepSeek Sparse Attention, DSA) 机制。
DSA是一种创新的、由 闪电索引器(Lightning Indexer) 驱动的 动态细粒度稀疏注意力 机制。它将传统自注意力机制的 “选择” 过程与 “计算” 过程解耦,仅对Top-k个最相关的历史词元(Token)进行高精度注意力计算。
一、为何需要 DSA?
1.1 长上下文瓶颈
标准 Transformer 的自注意力机制计算所有 token 对之间的相关性,其时间和空间复杂度均为 O(L2)O(L^2)O(L2)(LLL 为序列长度)。当 LLL 扩展至 128K 或 160K 时:
- 显存需求爆炸:KV Cache 和注意力矩阵占用数百 GB 显存;
- 计算冗余严重:长文本中大量 token 对语义无关(如“the”与远端标点);
- 推理延迟高:难以满足实时交互或批量处理需求。
1.2 现有稀疏方案的不足
- 静态稀疏(Longformer、BigBird):固定窗口或全局 token,无法适应输入语义变化;
- 块稀疏:内存访问不连续,GPU 利用率低;
- 路由稀疏(如 MoE):适用于 FFN,难直接用于 attention。
DSA 的目标:构建一种 动态、细粒度、可学习、硬件友好 的稀疏注意力机制,在几乎不损失模型能力的前提下,显著提升长序列效率。
二、DSA 的核心架构
DSA 由两个协同工作的模块构成:

2.1 闪电索引器(Lightning Indexer)
- 功能:为每个查询 token hth_tht 与所有历史 token hsh_shs(s<ts < ts<t)计算一个轻量级相关性得分 It,sI_{t,s}It,s;
- 设计原则:
- 极低开销:使用少量头(HI≪HH_I \ll HHI≪H)、低维投影(dI≪dd_I \ll ddI≪d)、FP8 精度;
- 高吞吐:采用 ReLU 激活,避免 softmax 归一化;
- 可学习:端到端训练,适应任务语义。
数学形式化
给定查询 token ht∈Rdh_t \in \mathbb{R}^dht∈Rd 和历史 token hs∈Rdh_s \in \mathbb{R}^dhs∈Rd,闪电索引器计算:
It,s=∑j=1HIwt,jI⋅ReLU(qt,jI⋅ksI),(1) I_{t,s} = \sum_{j=1}^{H_I} w_{t,j}^I \cdot \mathrm{ReLU}\left( q_{t,j}^I \cdot k_s^I \right), \tag{1} It,s=j=1∑HIwt,jI⋅ReLU(qt,jI⋅ksI),(1)
其中:
- qt,jI=WqIht∈RdIq_{t,j}^I = W_q^I h_t \in \mathbb{R}^{d_I}qt,jI=WqIht∈RdI,ksI=WkIhs∈RdIk_s^I = W_k^I h_s \in \mathbb{R}^{d_I}ksI=WkIhs∈RdI 为低秩投影;
- wt,jI∈Rw_{t,j}^I \in \mathbb{R}wt,jI∈R 为可学习标量权重(可视为头重要性);
- HIH_IHI 通常为 4–8,dId_IdI 为 32–64。
关键洞察:索引器不需精确模拟主注意力,只需排序能力(ranking ability)——即正确识别哪些 token 更重要。
2.2 细粒度令牌选择机制(Fine-Grained Token Selection)
- 功能:基于索引得分 It,sI_{t,s}It,s,为每个查询 token ttt 动态选择 Top-kkk 的 key-value 对;
- 稀疏集合定义:
St={s∣It,s∈Top-k({It,s′}s′<t)}.(2) \mathcal{S}_t = \left\{ s \mid I_{t,s} \in \mathrm{Top}\text{-}k\left( \{ I_{t,s'} \}_{s' < t} \right) \right\}. \tag{2} St={s∣It,s∈Top-k({It,s′}s′<t)}.(2)
- 稀疏注意力计算:
ut=AttnMLA(ht, {(ks,vs)}s∈St),(3) u_t = \mathrm{Attn}_{\text{MLA}}\left( h_t,\ \{ (k_s, v_s) \}_{s \in \mathcal{S}_t} \right), \tag{3} ut=AttnMLA(ht, {(ks,vs)}s∈St),(3)
其中 AttnMLA\mathrm{Attn}_{\text{MLA}}AttnMLA 为 DeepSeek-V3 系列采用的 Multi-Latent Attention(MLA)机制。
重要约束:为兼容 MLA 的 MQA(Multi-Query Attention)模式,所有查询头共享同一组选中的 KV 对,确保 KV Cache 高效复用。
三、训练策略:如何让稀疏机制有效学习?
3.1 两阶段持续训练
阶段 1:稠密热启动(Dense Warm-up)
- 目的:初始化索引器,使其输出对齐主注意力分布;
- 方法:
- 冻结主模型,仅训练索引器;
- 将主注意力分数在头维度求和并 L1L_1L1 归一化,得到目标分布 pt,:p_{t,:}pt,:;
- 最小化 KL 散度:
LI=∑tDKL(pt,:∥Softmax(It,:)).(4) \mathcal{L}_I = \sum_t D_{\mathrm{KL}}\left( p_{t,:} \parallel \mathrm{Softmax}(I_{t,:}) \right). \tag{4} LI=t∑DKL(pt,:∥Softmax(It,:)).(4)
阶段 2:稀疏联合训练(Sparse Training)
- 目的:让主模型适应稀疏输入,索引器优化稀疏模式;
- 关键技巧:
- 梯度解耦:索引器输入从计算图 detach,其梯度仅来自 LI\mathcal{L}_ILI;
- 稀疏对齐:KL 损失仅作用于选中集合 St\mathcal{S}_tSt:
LI=∑tDKL(pt,St∥Softmax(It,St)).(5) \mathcal{L}_I = \sum_t D_{\mathrm{KL}}\left( p_{t,\mathcal{S}_t} \parallel \mathrm{Softmax}(I_{t,\mathcal{S}_t}) \right). \tag{5} LI=t∑DKL(pt,St∥Softmax(It,St)).(5)
- 主模型优化:仅通过语言建模损失更新,确保任务性能。
四、工程实现与硬件优化
4.1 算子实现
- TileLang 版本:用于科研快速迭代,支持高维稀疏张量操作;
- CUDA 版本:生产级优化,包含:
- 自定义 Top-kkk kernel;
- 稀疏 GEMM + softmax 融合 kernel;
- CSR(Compressed Sparse Row)内存布局。
4.2 硬件亲和性
- FP8 支持:索引器全程 FP8 运算,带宽与功耗大幅降低;
- H800 优化:利用 Tensor Core 加速低维投影;
- 短序列优化:对 L<4KL < 4KL<4K,启用 Masked MHA 模拟 DSA,避免稀疏 overhead。
五、性能与效果权衡
| 指标 | Dense (V3.1-Terminus) | DSA (V3.2-Exp, k=2048k=2048k=2048) |
|---|---|---|
| Attention FLOPs | O(L2d)O(L^2 d)O(L2d) | O(Lkd)O(L k d)O(Lkd) |
| 128K Prefill 显存 | ~78 GB | ~46 GB (↓41%) |
| Decoding 延迟/token | 1.0x | ~0.65x (↓35%) |
| MMLU-Pro (EM) | 85.0 | 85.0 |
| Codeforces Rating | 2046 | 2121 |
| AIME 2025 (Pass@1) | 88.4 | 89.3 |
结论:在 k≥2048k \geq 2048k≥2048 时,任务性能几乎无损,但资源消耗显著降低。
六、与前沿稀疏注意力方法对比
| 方法 | 稀疏类型 | 动态性 | 可学习 | 硬件友好 | 任务适配 |
|---|---|---|---|---|---|
| DSA(DeepSeek) | 细粒度 + Top-kkk | ✅ | ✅ | ✅ | ✅ |
| Longformer | 滑动窗口 + 全局 | ❌ | ❌ | ✅ | ⚠️ |
| BigBird | 随机 + 窗口 + 全局 | ❌ | ❌ | ⚠️ | ✅(理论) |
| Sparse Transformer | 固定块模式 | ❌ | ❌ | ⚠️ | ❌ |
| FlashAttention-2 + Sliding Window | 局部稠密 | ❌ | ❌ | ✅ | ⚠️(无长距) |
| Native Sparse Attention (ACL 2025) | 硬件对齐稀疏 | ⚠️ | ✅ | ✅ | ✅ |
DSA 独特优势:端到端可学习的动态稀疏 + 与 MLA/MQA 架构深度集成 + 工业级部署优化。
七、未来方向
7.1 核心洞见
- 稀疏不必精确,只需排序正确:索引器无需复现主注意力值,只需保证重要 token 排名靠前;
- 解耦训练是关键:梯度分离避免稀疏噪声干扰主模型学习;
- MQA 是稀疏友好的基础:共享 KV 对天然契合稀疏选择。
7.2 未来工作
- 分层索引:对超长序列(>1M tokens),构建多级索引(如段落级 → 句子级);
- ANN 加速:用近似最近邻(如 FAISS)替代 O(L2)O(L^2)O(L2) 索引计算;
- 自适应 kkk:根据输入复杂度动态调整稀疏度。
总结
DeepSeek 稀疏注意力机制(DSA) 是一种面向长上下文、任务驱动、工程落地导向的稀疏化方案。它通过 轻量级闪电索引器 + 动态 Top-kkk 选择 + 解耦训练策略,在保持模型表达能力的同时,将长序列处理成本降低 35–40%。其成功不仅在于算法创新,更在于与 MLA 架构、MQA 模式、FP8 硬件、生产部署的深度协同,为大模型高效推理提供了可复用的技术范式。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)