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 学到最优上下文排名。
核验过程
已读官方来源:
- GitHub README (
Tencent-Hunyuan/Simple-Attention-Sparsification): 覆盖安装命令、训练脚本、评测脚本、硬件需求、支持的模型和数据集、推理后端架构。 - arXiv HTML 全文 (
2609.13141v1): 覆盖背景、动机、核心方法(门设计、三个关键实践选择)、Triton kernel 实现细节、实验结果。 - HyperAI Papers 摘要页: 补充了部分评测数字和社区反馈。
- @_akhaliq X 帖 (
2026-09-14): 原帖来源,标注"腾讯开源、continuous gate 替代离散 Top-K、附 Qwen3 适配 checkpoints"。
交叉验证结论:
- ✅ 腾讯 Hunyuan 团队出品(GitHub 仓库
Tencent-Hunyuanorg 确认) - ✅ 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 稀疏化领域训练范式最简洁、端到端效果最显著的工作之一。