SAS: 通过端到端上下文排序实现稀疏注意力 · 干货攻略

  • 链接: https://arxiv.org/abs/2609.13141
  • 分类: x-tips
  • 来源: X @_akhaliq
  • 作者: Jay
  • 更新: 2026-09-16
  • 仓库: Tencent-Hunyuan/Simple-Attention-Sparsification

这是什么

SAS(Simple Attention Sparsification) 是腾讯混元(Hunyuan)团队提出的一种门控稀疏注意力机制,核心创新是用连续的 soft gate 替代离散的 Top-K 硬截断,使注意力选择器(selector)能够直接通过语言模型损失端到端优化,从根本上解决传统稀疏注意力中梯度无法回传的问题。论文于 2026 年 9 月 11 日发布于 arXiv(编号 2609.13141),作者来自腾讯混元前沿团队、香港科技大学(广州)等机构。

项目配套开源了完整训练和评测流程,包括基于 SGLang 的稀疏注意力推理后端、Qwen3 系列适配 checkpoint,以及 Triton 高效训练核。


为什么值得关注

长上下文推理是当前 LLM 部署的核心效率瓶颈:自回归生成过程中,每个新 token 都需要对全部历史 context 做密集注意力,累积成本随上下文长度二次增长,KV-cache 访存压力也随之成为部署瓶颈。

现有稀疏注意力的两条路都有缺陷:

方法 原理 缺陷
训练-free(Static/Query-aware) 用手工规则(如 Score-based 或滑动窗口)选 token 无法适配模型自身预测行为,规则粗糙
可训练(SeerAttention-R 等) 引入可学习选择器,但用 离散 Top-K 截断 梯度被阻断,只能靠蒸馏密集注意力分布监督,排名与最终预测目标不对齐

第二条路的蒸馏监督存在排名错位(ranking misalignment):选择器学到的是"原版密集模型关注哪里",而不是"在有限注意力预算下哪些 token 对最终预测最有用"。这导致有限预算浪费在不太重要的单元上。

SAS 正是针对这个痛点:保留 Top-K 稀疏计算效率,同时让选择器直接从 LM loss 学到最优上下文排名。


核验过程

已读官方来源:

  1. GitHub README (Tencent-Hunyuan/Simple-Attention-Sparsification): 覆盖安装命令、训练脚本、评测脚本、硬件需求、支持的模型和数据集、推理后端架构。
  2. arXiv HTML 全文 (2609.13141v1): 覆盖背景、动机、核心方法(门设计、三个关键实践选择)、Triton kernel 实现细节、实验结果。
  3. HyperAI Papers 摘要页: 补充了部分评测数字和社区反馈。
  4. @_akhaliq X 帖 (2026-09-14): 原帖来源,标注"腾讯开源、continuous gate 替代离散 Top-K、附 Qwen3 适配 checkpoints"。

交叉验证结论:

  • ✅ 腾讯 Hunyuan 团队出品(GitHub 仓库 Tencent-Hunyuan org 确认)
  • ✅ Qwen3-4B/8B/14B 支持(README 明文列出)
  • ✅ 训练数据集 OpenR1-Math-220k(HuggingFace 公开 dataset)
  • ✅ 资源需求 8×NVIDIA H20(README 明文)
  • ✅ 推理后端 SGLang + FlashInfer(README + arXiv 交叉确认)
  • ✅ 延迟加速:512K 上下文 batch=1 时 5.6× 加速;64K/256K/512K 分别为 2.4×/4.6×/5.6×(来自 arXiv HTML 原文 Figure 7(a))
  • ✅ 评测基准覆盖:MATH500、GPQA-Diamond、AIME24、AIME25(推理)、LongBench(长上下文)、BFCL(函数调用)、VitaBench(多域工具使用)

上手步骤

环境安装

需要 pixi(Rust 包管理器):

curl -fsSL https://pixi.sh/install.sh | bash
git clone https://github.com/Tencent-Hunyuan/Simple-Attention-Sparsification.git
cd Simple-Attention-Sparsification
pixi install && git submodule update --init --recursive

下载模型和数据集

训练脚本适配 Qwen3-4B、Qwen3-8B、Qwen3-14B,数据集使用 OpenR1-Math-220k:

# 下载 base model(以 4B 为例)
export MODEL_PATH=/path/to/Qwen3-4B
# 下载数据集
export DATA_PATH=/path/to/OpenR1-Math-220k/data

训练

# 选择对应模型大小的脚本
bash scripts/train/simple_sparse_attention_Qwen3-4B.sh

资源要求:8×NVIDIA H20 GPU(官方 README 明确标注)。

推理评测

推理依赖 SGLang fork 的 block-sparse 后端,先构建环境:

cd third_party/sglang-blocksparse && pixi install && cd -

推理类任务(MATH、GPQA、AIME)

export GATES=/path/to/AttnGates
export BUDGET=2048        # seer decode token budget
export TP=1 DP=8         # TP=1, 8 full replicas
export TASK=math,gpqa,aime24,aime25
bash scripts/eval/run_reasoning.sh

长上下文任务(LongBench)

export GATES=/path/to/AttnGates
export BUDGET=2048
export TP=1 DP=8
bash scripts/eval/run_longbench.sh

函数调用(BFCL)

# 一次性初始化子模块和 venv
git submodule update --init third_party/gorilla third_party/vitabench
BFCL=third_party/gorilla/berkeley-function-call-leaderboard
python -m venv $BFCL/.venv && $BFCL/.venv/bin/pip install -e $BFCL soundfile
git -C third_party/gorilla apply "$PWD/scripts/eval/patches/bfcl.patch"

export GATES=/path/to/AttnGates
export BUDGET=2048
export TP=1 DP=8
export CATEGORIES=multi_turn
bash scripts/eval/run_bfcl.sh

多域工具使用(VitaBench)

# 需要云端 user-simulator + evaluator,这里用 DeepSeek-V4-Pro
export GATES=/path/to/AttnGates
export BUDGET=2048
export TP=1 DP=8
export DEEPSEEK_API_KEY=sk-...    # 替换为你的 key
export DOMAIN=delivery,instore,ota
bash scripts/eval/run_vitabench.sh

密集 baseline 对比

不导出 GATES,用 MODE=dense_4b 跑密集基线:

export MODE=dense_4b
export BASE_MODEL=/path/to/Qwen3-4B
export BUDGET=2048
export TP=1 DP=8
export TASK=math,gpqa,aime24,aime25
bash scripts/eval/run_reasoning.sh

坑与适用边界

1. 训练资源门槛

官方明确要求 8×H20,这不是单卡能跑的配置。需要评估集群资源,或考虑在更小规模模型(Qwen3-4B)上先行验证。

2. 推理后端依赖 SGLang fork

推理依赖 rayleizhu/sglang(SGLang 的 blocksparse fork),不是原生 SGLang。如果已有标准 SGLang 部署,集成需要切换后端。

3. 只在 decode 阶段稀疏,prefill 仍是密集

官方架构:prefill 用密集注意力,decode 用 block 稀疏。这意味着稀疏化的收益只在生成长序列时显著,短输出场景优势不明显。

4. token budget 选择影响精度

在极紧预算(如 1024 tokens)下,SAS 仍能保持接近全注意力的精度,但静态稀疏方法(滑动窗口、Query-aware)会崩溃。注意 BUDGET 过大(如超过 4096)会接近密集注意力,失去稀疏化收益,建议按场景调优。

5. 只验证了 Qwen3 系列

官方 release checkpoint 针对 Qwen3-4B/8B/14B。其他模型(如 Llama、Mistral)需要自己适配 selector 和训练流程。

6. 适用边界总结

场景 推荐度 说明
长序列推理服务(>64K context) ⭐⭐⭐ 5.6×延迟降低,收益显著
Agent 多轮工具调用 ⭐⭐⭐ BFCL/VitaBench 验证有效
短上下文任务 几乎无收益,prefill 仍是密集
其他非 Qwen3 模型 需要自行适配

一句话结论

SAS 通过把选择器的连续 score 以 log-space gate 注入注意力 softmax,实现了稀疏注意力选择器的端到端 LM loss 优化,在 Qwen3 系列上于推理、长上下文和 Agent 任务中均稳定超越蒸馏式稀疏基线,且 512K 上下文下延迟降低 5.6×——是目前 KV cache 稀疏化领域训练范式最简洁、端到端效果最显著的工作之一。