# DeepGraph 第一轮交付 · 稀疏注意力训练与推理加速

**提交方向**: Sparse Attention to accelerate large language model training and model inference  
**目标档位**: 完整实验交付（数据、结果、代码、日志） · **投稿目标**: AAAI / ICLR（备注，年份未定）  
**交付时间**: 2026-08-16

---

## 0. 先说一个判断：方向成立，但当前命题与 CPU 算力、AAAI/ICLR 目标不匹配

“稀疏注意力能否加速 LLM”已经不是足够具体的研究问题；NSA、MoBA、DSA 等工作已经覆盖可训练稀疏注意力，并在 GPU 长上下文模型上报告训练和推理加速。只有 CPU、60 分钟时，不能复现这些大模型结论，也不能据此支撑 AAAI/ICLR 级别的模型贡献。

两条出路：其一，若坚持 AAAI/ICLR，需要补充具体稀疏机制、科学假设，并准备 GPU 上的长上下文模型和任务评测；其二，当前先完成一个 CPU 算子级可证伪实验，确定“真正跳过计算”相对“只加稀疏掩码”是否产生实测加速，以及这种加速付出多少输出偏差。

本轮选择第二条，但它是工程可行性诊断，不替提交人决定论文题目，也不能替代端到端 LLM 证据。

## 1. 领域现状：高度拥挤，比较对象已经从“全注意力”扩展到“硬件对齐的动态稀疏注意力”

按 2025 年 2 月至 2026 年 8 月的公开结果，至少已有七条直接相关且可核验的代表路线：NSA、MoBA、SpargeAttn、XAttention、DeepSeek Sparse Attention（DSA）、SeerAttention-R 和 MISA；这只是代表工作数量，不是该方向论文总数。

其中：

- NSA同时覆盖端到端训练、前向、反向和解码，并把“理论稀疏能否变成硬件实测加速”列为核心问题。
- MoBA采用可学习的块选择，论文明确报告已用于 Kimi 长上下文请求。
- DSA已进入 DeepSeek-V3.2 系列，官方仓库和 FlashMLA 同时公开了预填充、解码稀疏内核；这说明稀疏注意力已有真实系统采用，而不只是概念验证。
- SpargeAttn、XAttention分别代表在线过滤和低成本块重要性估计；SeerAttention-R进一步覆盖长推理解码；MISA则直接优化 DSA 索引器的额外开销。
- FlexAttention已经成为表达块稀疏掩码和生成融合内核的通用基础设施之一。

因此，审稿人默认至少要看到：全注意力基线、只掩码但不跳过计算的控制臂、真正跳过块计算的实现，以及在同一 token/块预算下的质量—速度曲线。仅报告 FLOPs 减少，或者拿未经优化的稠密实现做对照，会被认为证据不足。

## 2. 查新去重与仍未覆盖的部分

近 18 个月已经被直接覆盖的内容包括：

- 静态局部窗口、固定块稀疏以及动态内容选择；
- 从已有模型中预测重要块或 token 的训练后稀疏化；
- 原生稀疏预训练，以及前向、反向、预填充和解码内核；
- 长上下文检索、LongBench、推理任务和端到端生成质量；
- GPU 上块大小、内存访问、索引器成本与实际延迟之间的权衡。

因此，当前输入不足以判断真正的“未覆盖研究空白”。“sparse attention; model training”只是范围，不包含可查重的机制或假设。正式选题前必须由提交人补齐：

1. 稀疏模式是固定窗口、块选择、token 选择，还是可学习索引器？
2. 主目标是训练、预填充还是逐 token 解码？三者的瓶颈不同。
3. “加速”具体指延迟、吞吐、峰值内存，还是总训练时间？
4. 面向哪种模型、上下文长度、数据集和硬件？
5. 可接受的困惑度或任务准确率损失是多少？
6. 相对 NSA、MoBA、DSA、SeerAttention-R 或 MISA，拟议机制改变了什么？

本轮不把这些缺失项擅自补成新选题，只对提交方向中最基础、也最容易被错误论证的一点做诊断：稀疏掩码本身不等于加速，只有实际跳过计算后才可能降低时间和内存。

## 3. 评审会打你的三个点（提前堵）

1. **“你的稀疏实现只是把元素设为负无穷，仍然计算了完整 \(N\times N\) 矩阵。”**  
   防法：加入 `dense-blockmask-control`。它与真正块稀疏臂使用完全相同的块对角因果掩码，但仍建立完整分数矩阵。若实验臂不能比它快，就不能声称稀疏带来了实测加速。

2. **“速度来自换了实现或牺牲语义，不是来自稀疏计算。”**  
   防法：三个臂统一使用 PyTorch float32、相同线程数以及相同的 `matmul → mask → softmax → matmul` 数学步骤。实验臂首先与同掩码控制臂检查输出、梯度数值等价，再单独报告它相对全注意力的偏差。

3. **“CPU 微基准不能推出 LLM、GPU 或端到端训练会加速。”**  
   防法：结论严格限定为两核 CPU 上的注意力算子结果；分别报告前向预填充和含反向传播的训练步延迟，不把算子 speedup 写成模型吞吐。若继续面向 AAAI/ICLR，后续仍需 GPU 内核、真实长上下文模型、任务质量和端到端 wall-clock 证据。

## 4. 我们这一轮真去跑的对照矩阵

### 要回答的问题

在相同块对角因果稀疏语义下，真正只计算活跃块，是否比建立完整注意力矩阵后再加掩码更快、更省内存；随着稀疏率提高，它相对全注意力的输出偏差如何变化？

这不是新的论文题目，而是对原命题“稀疏注意力能加速训练和推理”的最小可执行检验。

### 对照臂

| 实验臂 | 实现 | 作用 |
|---|---|---|
| `baseline-dense-causal` | 建立完整 \(N\times N\) 因果注意力矩阵 | 平凡基线，代表不使用稀疏结构 |
| `control-dense-blockmask` | 建立完整矩阵，再施加块对角因果掩码 | 零加速控制臂：隔离“掩码语义”与“跳过计算” |
| `proposed-block-sparse-exact` | 将序列重排为连续块，只在各块内部执行因果注意力 | 真正跳过非活跃块；应与控制臂数值等价 |

“proposed”这里只表示实验臂，不表示这是提交人的新方法。

### 可被推翻的预测

**可被推翻的预测**：当序列长度不低于 512、活跃注意力对密度不高于 25% 时，真正块稀疏臂的预填充和训练步中位延迟均至少比同掩码控制臂低 20%，同时两者输出及输入梯度相对误差低于 \(10^{-5}\)；任一速度条件未达到，或数值误差超过阈值，都算预测被推翻。

### 数据与张量设置

不下载文本数据，以程序生成的 seeded Gaussian \(Q,K,V\) 张量做算子诊断：

- batch size：1；
- attention heads：4；
- head dimension：32；
- dtype：float32；
- sequence length：128、256、512、1024；
- block size：32、64、128，不运行大于序列长度的组合；
- 随机种子：0、1、2；
- 固定实际可用线程为2，记录 PyTorch、CPU 和线程配置。

块对角模式的活跃注意力对密度近似为 `block_size / sequence_length`。每个配置独立进程运行，避免峰值内存和缓存状态串扰。

### 主指标

| 指标 | 口径 | 为什么 |
|---|---|---|
| `prefill_latency_ms` | 预热3次后，10次纯前向的中位 wall-clock；每个种子保留一个中位数 | 检验推理预填充的实际延迟 |
| `train_step_latency_ms` | 前向、标量损失、反向及梯度清零完整耗时的中位数 | 检验注意力算子训练步，而不是只看前向 |
| `speedup_vs_mask_control` | 控制臂中位延迟 ÷ 块稀疏臂中位延迟 | 直接判断跳过计算是否有收益 |
| `peak_rss_mb` | 每个臂在独立子进程中的最大常驻内存 | 检查是否真的避免完整分数矩阵 |
| `output_rel_l2_vs_mask_control` | \(\|O_s-O_m\|_2/\max(\|O_m\|_2,10^{-12})\) | 验证同一稀疏语义的实现等价性 |
| `gradient_rel_l2_vs_mask_control` | 对 Q、K、V 梯度分别计算相对 L2，报告最大值 | 防止只有前向等价、反向错误 |
| `output_rel_l2_vs_dense` | 块稀疏输出相对全注意力输出的相对 L2 | 显示速度所对应的近似代价 |
| `active_pair_density` | 实际计算的 query-key 对数 ÷ 完整因果对数 | 给出算法预算，避免只报名义稀疏率 |

### 扫描与统计口径

- 扫描 `sequence_length × block_size × arm`，无效组合跳过。
- 每个种子、每个配置预热3次，正式计时10次；计时期间不包含张量生成和结果落盘。
- 各种子先取重复计时中位数，再跨3个种子报告均值、标准差和原始值。
- speedup 使用同一种子、同一配置的配对比值，再汇总均值和标准差。
- 所有臂使用相同输入、dtype、线程数和数值公式；禁止把理论 FLOPs 当作实测延迟。
- 单个种子进程设置15分钟超时；预计总预算35分钟。
- 所有原始记录写入 CSV/JSONL，标准输出和错误输出保留为日志；负结果、超时和数值不一致照报。

### 这一轮做不到的部分

- 不能证明真实 LLM 的训练时间、困惑度或下游准确率不下降；
- 不能评估 GPU、Tensor Core、Triton、FlashAttention、FlexAttention 或 FlashMLA 内核；
- 不能复现 NSA、DSA、MoBA、SeerAttention-R 等需要大模型或专用 GPU 内核的结果；
- 不能覆盖动态 token/块选择器的召回率与索引开销；
- 不能用预填充前向结果替代逐 token 解码、KV cache 或端到端生成吞吐；
- 不能据此形成 AAAI/ICLR 投稿结论；投稿级实验范围须在提交人补齐研究假设后重新确定。

## 5. 参考来源

- [Native Sparse Attention: Hardware-Aligned and Natively Trainable Sparse Attention](https://arxiv.org/abs/2502.11089)
- [MoBA: Mixture of Block Attention for Long-Context LLMs](https://arxiv.org/abs/2502.13189)
- [SpargeAttn: Accurate Sparse Attention Accelerating Any Model Inference](https://arxiv.org/abs/2502.18137)
- [XAttention: Block Sparse Attention with Antidiagonal Scoring](https://arxiv.org/abs/2503.16428)
- [DeepSeek-V3.2-Exp](https://github.com/deepseek-ai/DeepSeek-V3.2-Exp)
- [FlashMLA: Efficient Multi-head Latent Attention Kernels](https://github.com/deepseek-ai/FlashMLA)
- [Sparse Attention Adaptation for Long Reasoning](https://openreview.net/forum?id=c5BOcHM6J8)
- [MISA: Mixture of Indexer Sparse Attention for Long-Context LLM Inference](https://arxiv.org/abs/2605.07363)
- [FlexAttention: A Programming Model for Generating Fused Attention Variants](https://proceedings.mlsys.org/paper_files/paper/2025/hash/61a9278dfef5f871b5e472389f8d6fa1-Abstract-Conference.html)

---

*本文档由 JouleBeat · DeepGraph 出具。文献结论来自公开检索，已标注出处；判断部分是我们的观点，可以被反驳。*

```json
{
  "task_slug": "cpu-block-sparse-attention-diagnostic",
  "question": "在相同块对角因果掩码语义下，真正跳过非活跃块能否在两核 CPU 上同时降低注意力预填充与训练步延迟，并量化其相对全注意力的输出偏差？",
  "falsifiable_prediction": "当序列长度不低于512且活跃注意力对密度不高于25%时，真正块稀疏臂的预填充和训练步中位延迟均至少比同掩码稠密控制臂低20%，且输出与Q/K/V梯度相对误差低于1e-5；任一速度条件未达到或误差超阈值即推翻预测。",
  "dataset": "程序按种子0、1、2生成float32 Gaussian Q/K/V张量，无需下载；batch=1、heads=4、head_dim=32，并保存生成参数与张量校验摘要。",
  "arms": [
    {
      "name": "baseline-dense-causal",
      "is_baseline": true,
      "what": "使用完整N×N分数矩阵执行标准因果注意力，不施加块稀疏。"
    },
    {
      "name": "control-dense-blockmask",
      "is_baseline": false,
      "what": "仍建立完整N×N分数矩阵，再施加块对角因果掩码；作为只改变掩码但不跳过计算的零加速控制臂。"
    },
    {
      "name": "proposed-block-sparse-exact",
      "is_baseline": false,
      "what": "把序列重排为连续块，只计算各块内部的因果注意力，不创建块间分数；其输出和梯度应与control-dense-blockmask数值等价。"
    }
  ],
  "metrics": [
    {
      "name": "prefill_latency_ms",
      "higher_is_better": false,
      "what": "预热3次后10次纯前向wall-clock的中位数，不含输入生成和落盘。"
    },
    {
      "name": "train_step_latency_ms",
      "higher_is_better": false,
      "what": "前向、标量损失、反向传播和梯度清零完整步骤的中位wall-clock。"
    },
    {
      "name": "speedup_vs_mask_control",
      "higher_is_better": true,
      "what": "同种子同配置下control-dense-blockmask中位延迟除以proposed-block-sparse-exact中位延迟。"
    },
    {
      "name": "peak_rss_mb",
      "higher_is_better": false,
      "what": "每个实验臂独立子进程报告的最大常驻内存。"
    },
    {
      "name": "output_rel_l2_vs_mask_control",
      "higher_is_better": false,
      "what": "块稀疏输出与同掩码稠密控制输出之间的相对L2误差。"
    },
    {
      "name": "gradient_rel_l2_vs_mask_control",
      "higher_is_better": false,
      "what": "Q、K、V梯度相对L2误差中的最大值。"
    },
    {
      "name": "output_rel_l2_vs_dense",
      "higher_is_better": false,
      "what": "块稀疏输出相对完整因果注意力输出的相对L2误差，用于量化近似代价。"
    },
    {
      "name": "active_pair_density",
      "higher_is_better": false,
      "what": "实际计算的query-key对数除以完整因果注意力对数。"
    }
  ],
  "sweep": {
    "sequence_length": [128, 256, 512, 1024],
    "block_size": [32, 64, 128],
    "batch_size": [1],
    "num_heads": [4],
    "head_dim": [32],
    "dtype": ["float32"],
    "warmup_repeats": [3],
    "timing_repeats": [10],
    "torch_threads": [2]
  },
  "seeds": [0, 1, 2],
  "budget_minutes": 35,
  "cpu_feasible": true,
  "out_of_scope": [
    "真实大语言模型预训练或微调",
    "语言建模困惑度和下游任务准确率",
    "GPU、Triton、FlashAttention、FlexAttention或FlashMLA性能",
    "动态token或block索引器训练",
    "逐token解码与KV cache吞吐",
    "端到端LLM训练或服务加速结论",
    "直接支撑AAAI或ICLR投稿的完整证据"
  ]
}
```