在长上下文建模领域,腾讯混元团队正式开源了 HiLS-Attention(分层地标稀疏注意力),首次从数学层面同时解决了稀疏注意力中 chunk 重要性估计的表达力不足和选择过程的端到端不可导两大难题,实现了效率与效果的双重突破,让大模型真正实现“读得更长”。
一、长上下文的核心挑战:全注意力扛不动,稀疏注意力又“不准”
让大模型处理更长的上下文,是智能体、深度推理和海量资料整合等场景的刚需。但标准全注意力机制存在三大难题:
- 计算量呈平方级增长:序列长度翻倍,算力需求翻四倍。
- 长度外推能力差:训练 8K,测试 32K 就开始性能下降。
- KV Cache 随长度线性膨胀,显存很快吃紧。
因此,研究者转向分块稀疏注意力(Chunk-wise Sparse Attention):将上下文切分为多个 chunk,每个 query 只选择最相关的 Top-K 个 chunk 进行计算,将多余的 KV Cache 卸载到 CPU 内存,计算和显存开销控制在常数范围。然而,迄今为止,没有任何一种分块稀疏注意力能真正追平全注意力。

图:最直接的证据——即便让 345M 模型在 RULER 任务上训练,现有分块稀疏注意力依然无法达到全注意力的效果。
问题的根源在于:chunk 选择不准确。
二、现有方法为什么“选错 chunk”?——mean/max logits 的先天缺陷
要准确选择 chunk,必须精确估计每个 chunk 的“重要性”。

图:从朴素 block sparse attention 出发——一个 chunk 的重要性等于其内部所有 token 注意力质量的总和。
基于上图,形式上有:
按 Zc 从大到小取 Top-K,就能得到与全注意力完全一致的精确排序。但问题在于:要精确计算 Zc,需要将 query 与 chunk 内每一个 token 进行点积,这等于重新计算全注意力,稀疏的意义丧失。
于是,高效稀疏注意力的共同目标变为:给每个 chunk 构造一个摘要,让 query 与它做一次点积,就能近似出 chunk 的重要性。现有方法中最主流的是均值池化(mean pooling):直接将 chunk 内所有 key 求平均作为摘要 key。推导发现,它算出的分数就是 token logit 的均值。NSA、InfLLM v2、MoBA 等均属此类。另一类方法(如 MiniMax 稀疏注意力)则改用max logits 来近似。
但真正的目标是一个 LogSumExp,其行为完全取决于 chunk 内的 logit 分布,有两种极端形态:
也就是说:
- mean logits 只在 chunk 内注意力均匀分布时才准确;
- max logits 只在单个 token 独占注意力时才准确。
然而,真实场景中 logit 分布随 query、head、数据剧烈变化,不会固定在某一种极端。因此,无论使用 mean 还是 max,都是用只在极端情况下成立的假设去硬凑 LogSumExp,导致系统性地错估 chunk 重要性,打乱排序,让真正关键的 chunk 落选。
实验验证了这一现象:在简单的单针大海捞针任务上,使用均值池化的 NSA / DashAttention / InfLLM v2 在 8K 域内已经明显掉点——因为大海捞针是“少数针 token 独占注意力”的高度集中分布,而均值池化会将这种尖峰稀释掉。
三、想用“参数化 summary”救场?先过端到端反传这一关
既然非参数化的 mean/max 表达力不够,自然想到给每个 chunk 学习一个参数化的 summary,让它更有表达力地概括整块内容。但这里存在一个被几乎所有现有方法忽略的致命断点:
现有方法即便使用了参数化 summary,也仅用于打分、选择 Top-K。一旦 Top-K 的 chunk ID 被“硬选”出来,summary 和打分就被丢弃,不再参与后续注意力计算。这意味着:
语言建模(LM)loss 的梯度无法传到 summary 和选择分数上。
Top-K 选择是一个离散、不可导的操作。打分→排序→选 ID,这条链路梯度无法反传到 summary,LM loss 无法告诉 summary“你这次把重要的 chunk 排低了,下次该调高一点”。于是 summary 的学习变成了“盲训”——它学不会去抑制无关 chunk、抬高对预测真正有用的 chunk。选择过程没有被端到端优化,再有表达力的 summary 也无济于事。
这引出了两个研究问题:
- RQ1. 数学表达能力足够的 chunk 重要性估计。
- RQ2. chunk summary 必须能跟着 LM loss 端到端训练。
把这两点同时做到,才算把稀疏注意力“做对”。
四、HiLS-Attention:把 chunk 选择变成可微分的“分层 softmax”
腾讯混元提出 HiLS-Attention(Hierarchical Landmark Sparse Attention,分层地标稀疏注意力),其核心是将上述两个问题拆解并逐一攻破。
RQ1:用“一阶泰勒展开”构造表征能力足够的 chunk 算分函数
一个直觉是对 LogSumExp 进行一阶泰勒展开,观察数学性质。研究团队发现,chunk 的对数重要性可以被近似成非常优雅的形式:
它由两部分组成:
- 一个相关项:其中 summary key 是 chunk 内 key 的一次“注意力加权求和”;
- 一个偏置项:恰好是这个分布的熵(entropy),它会自适应地在两种极端间插值——分布越均匀越接近 ,越集中越趋近 0。
关键就在这个熵偏置。它正好补上了 mean/max logits 各自缺失的那一半信息:mean 丢掉了集中度,max 丢掉了分散度,而熵偏置把两种 regime 一次性统一,让打分分数在任意分布下都能贴合真实重要性。
这个 summary 如何计算?给每个 chunk 末尾追加一个特殊的摘要 token(landmark token),用它学习所有潜在可能对 chunk 感兴趣的 query 的中心,再对 chunk 内做一次注意力得到相关项和熵偏置。每个 chunk 只需计算,整条序列总成本,彻底摆脱平方级全注意力。
RQ2:如何让 chunk summary 跟着 LM loss 端到端训练?
光有好 summary 还不够,要解决那个致命断点:让梯度真正流到 summary 上。HiLS 的做法是把注意力权重分层因式分解成两级 softmax:
图:先按 summary 算每个 chunk 应该分摊多少饼,再由 chunk 内 token 继续分饼。
- chunk 内(intra-chunk)softmax:在每个被选中的 chunk 内部,决定 token 之间的相对权重;
- chunk 间(inter-chunk)softmax:用打分质量决定每个 chunk 整体能分到多少注意力。
关键在于:打分质量直接出现在前向的注意力权重里。 这样一来,LM loss 的梯度就能顺着前向计算图,一路反传到 summary key 和地标 token 上——模型会被“逼着”去给对预测更有用的 chunk 打更高的分、把无关 chunk 压下去。断点被打通了。 chunk 选择第一次成为在 LM 目标下端到端可学习的过程,训练和推理全程都是真稀疏(native sparse training)。
一个反直觉的彩蛋:它不只是“模仿”全注意力,还更准
研究团队最初期望 HiLS 去逼近“全注意力诱导的 chunk 选择”(即朴素 BSA)。但实验给出了惊喜:HiLS 不仅追平了朴素 BSA,还在长上下文检索上反超了全注意力本身。
原因可能在于压缩本身能去噪。全注意力有个固有毛病:只要一个 token 的 logit 不是负无穷,它就会分到一点点注意力质量。上下文越长,这些无关 token 的微小噪声越积越多,反而污染了检索信号。而 HiLS 把多个 key 压缩成一个 summary key 时,不对齐的噪声相互抵消,共享的语义信号被保留,于是检索反而更干净——这正是它在变量追踪(VT)这类多跳任务上能比全注意力高出多达 50% 的根源。
五、实验:从 345M 到 7B,全面验证
在 345M → 1.4B → 7B 三个尺度上进行了系统验证,结论高度一致:
- 短文本不掉点:345M 与 1.4B 从零训练时,HiLS 在各上下文长度、各训练阶段的 PPL 与全注意力几乎重合,8K 处持平甚至略低;
- 超长外推炸裂:仅用 8K 训练,外推到 4M(512 倍)仍保持 90%+ 大海捞针准确率,远超全注意力;
- 低成本改造存量模型:把 OLMo3-7B 这类全注意力模型转成 HiLS,只需续训 50B token 即可实现切换。短程任务不掉点,长序列任务 LongBench 在 in-domain 长度甚至能超越全注意力基线,无缝继承 HiLS 的外推能力,在 out-of-domain length 显著碾压 YaRN 等各类 baseline;
- 推理还更快:512K 上下文下,prefill 快 13.5×、单步 decode 快 15.7×。
稀疏注意力长期以来的“效率 — 性能”二选一困境,被第一次同时打破了。
六、总结
回顾整个逻辑链:
- 稀疏注意力的瓶颈是 chunk 选错;
- 选错的根源是 mean/max logits 系统性失准;
- 想用参数化 summary 补救,又卡在端到端反传断点上;
- HiLS 用 泰勒线性化(提出足够表达力的估分函数)+ 分层 softmax(把打分分数送进前向),一举解决了表达力和可微分两个问题。
HiLS 证明了:稀疏注意力可以同时提升效率和效果。效果提升的根源或许源自压缩导致去噪,带来更纯净的检索表征。这,才是把分层稀疏注意力“Done Right”的样子。
常见问题
- Q:HiLS-Attention 的摘要 token(landmark token)如何训练?
A:每个 chunk 末尾追加一个特殊 token,通过反向传播更新其参数。它学习所有可能对 chunk 感兴趣的 query 的中心,再利用 chunk 内注意力得到 summary。 - Q:HiLS 在推理时如何保证稀疏性?
A:训练和推理全程保持真稀疏——只计算 top-K 个 chunk 内的注意力,其余 chunk 的 KV Cache 卸载到 CPU 内存,计算量恒定。 - Q:HiLS 能否直接应用于现有全注意力模型?
A:可以。只需续训少量 token(如 50B),即可将 OLMo3-7B 等模型转换为 HiLS,短文本任务不掉点,长文本任务甚至超越原模型。
小提示
• 在实际应用中,建议先在小规模模型(如 345M)上验证 HiLS 的效果,再迁移到更大模型。
• 对于超长上下文任务(如 4M 以上),HiLS 的外推能力显著优于全注意力,可大幅降低训练成本。
• 如果遇到 chunk 选择偏差,可尝试调整 top-K 值或熵偏置的权重。
