HiLS:层次稀疏注意力做到位了,8K 训练解锁 4M 上下文
论文:Hierarchical Sparse Attention Done Right: Toward Infinite Context Modeling arXiv: 2607.02980 · 2026 年 7 月 3 日
一句话开局
如果你给一个 8K 训练的全注意力模型硬扛到 4M 上下文,困惑度会从个位数直接窜到几万。 如果你把全注意力换成 NSA、LMK-Attn、HSA 这些 chunk-wise sparse attention,短上下文性能又会先塌一截,外推确实上去了,但模型在 RULER 的单 needle 任务上都拿不到满分。
HiLS(Hierarchical Landmark Sparse Attention)这篇论文做的事情,是把"short context 性能不掉 + 64× 以上的长度外推"这两件事第一次同时做到了。8K 训练,RULER 在 1M 上还能拿到 100/97/53(S-N/MK-MQ/VT),2M 拿到 97/87/50,4M 仍能保持 96/89/43——这是 512 倍长度外推,全注意力早崩了。
更狠的是,这套机制可以轻量级移植到已经训好的全注意力模型上:7B 的 Olmo3-base,50B tokens 的全参数继续预训练,或者只调 5B tokens 的 landmark token embedding,就能从"RULER 16K 还行、64K 直接归零"变成"RULER 128K 还有 94 分"。你之前训的几百亿 token 不会打水漂。
我读完后第一反应是:这不是又一篇"sparse attention 复现一遍 NSA"的工作。它真正解决的是chunk selection 不准这个老问题,而解法——把 chunk mass 用一个可微的 surrogate 显式建模、端到端训练——你看完会觉得"对,就该这么做"。
下面把方法、实验、价值点、不吐不快的地方一次说透。
论文基本信息
| 项 | 内容 |
|---|---|
| 标题 | Hierarchical Sparse Attention Done Right: Toward Infinite Context Modeling |
| 作者 | Xiang Hu, Xinyu Wei, Hao Gu, Minshen Zhang, Tian Liang, Huayang Li, Lei Zhu, Yan Wang, Sirui Han, Yushi Bai, Kewei Tu, Haitao Mi, Leo Liang |
| 单位 | 复旦、剑桥、苏黎世理工、Allen AI、UW 等团队合作 |
| 链接 | https://arxiv.org/abs/2607.02980 |
| 代码 | https://github.com/hi-ls/HiLS(论文中给出) |
| 投稿日期 | 2026-07-03 |
为什么这件事值得做:长上下文的两难
把大模型上下文长度从 8K 推到 1M,工程上你面前就两条路:
路线 A:硬扛全注意力。 Prefill 复杂度 \(\mathcal{O}(L^2)\),KV 缓存线性增长但每个 token 都得存。2024 年以来大家靠 FlashAttention、Sparse Attention Kernel、YaRN、NTK-aware 插值把这条路推到 128K 已经是极限,再往上 256K 时单次 prefill 几十秒,decoding 每 token 要 ~80ms(RULER 论文作者用 H800 测过)。更头疼的是外推——8K 训的 RoPE 全注意力,序列一过 32K,困惑度直接爆到 \(10^4\) 以上。RULER 上 16K 还能拿 100/100/100,32K 三个子任务直接 0/0/0(Table 2)。
路线 B:上 sparse attention。 NSA、InfLLM v2、DashAttention、LMK-Attn、HSA 这套方法思路都是把 KV 切成 chunk(典型 64 tokens/chunk),每个 query 只算 top-K 个 chunk + 一个 local sliding window。计算量下来了,但短上下文性能先掉了——NSA 在 8K in-domain RULER 上 Single-NIAH 只有 49 分(vs Full-Attn 100),LMK-Attn 在 32K 外推就崩到 PPL 6.36。更扎心的是 HSA,虽然能外推 64×,但 8K 训练 PPL 8.81(vs Full-Attn 4.96),短上下文本身就是瘸的。
根本问题到底在哪? 论文给了一个很犀利的判断:所有 chunk-wise sparse attention 的失败,不在于机制(top-K + local SWA 没问题),在于 chunk selection 不准。现有的 chunk 评分都是用 chunk 内部 key 的简单统计量(NSA 用 mean-pool,LMK-Attn 用 landmark token),这两种都不能忠实地估计 chunk mass \(Z_{i,c} = \sum_{j \in \mathcal{T}_c} \exp(\mathbf{q}_i^\top \mathbf{k}_j / \sqrt{d})\)。
论文给了一个反例:mean-pooled key 在 chunk 内 logits 分布接近均匀时等价于 chunk mass(\(\log Z \approx \text{mean} + \log S\)),但只要有一个 token 主导(即 max logit 远超其他),mean-pooled key 就会严重低估 chunk mass。landmark token 类似问题——它就是 chunk 内某一个特殊 token 的 key,跟整个 chunk 的 attention mass 关系不直接。
论文原话(Figure 3 旁边):"No existing method is in the top-right corner — they all fail at either in-domain accuracy, length extrapolation, or training flexibility."

图 1:HiLS-Attention 的核心机制。上面是 Naive Block Sparse Attention,下面对比 HiLS-Attention 的层次分解。蓝色框是 distant token(chunk 内部),绿色是 adjacent token(sliding window),实色方块是当前 query 的 landmark token。右侧公式 \(Z'_c \propto \exp(\mathbf{q}^\top \mathbf{k}'_c)\) 就是 chunk-mass surrogate——用一个 learned summary key 把 chunk 内的 attention mass 累加显式化。
方法核心:HiLS-Attention 三个关键设计
HiLS 的方法可以拆成三块,每块都对应着一个明确的问题。
设计一:Chunk-Mass Surrogate(Proposition 3.1)
先把朴素 chunk-wise sparse attention 的目标摆出来:query \(i\) 要对所有 chunk \(c\) 计算 chunk mass
然后取 top-K:
朴素方案是把所有 QK 都算一遍再聚合——计算量等价于 full attention,不稀疏。HiLS 想做的是用一个可微的 summary 来近似 chunk mass。
关键观察:\(\log Z_{i,c}\) 在 chunk 内 logits 分布均匀时等于 \(\text{mean} + \log S\),在 max 主导时等于 max。这两个值都跟 chunk 内 logits 的加权聚合有关。
论文做了一个 Taylor 展开线性化(Proposition 3.1):
其中 \(\mathbf{k}'_c\) 是 chunk 内部 attention 算出来的加权聚合(attention 输入是 chunk 自身 \(q'_c\)),\(b'_c\) 是 chunk 内 attention 分布的负熵(entropy bias)。
物理意义:用一个 learned chunk summary key + entropy bias 来拟合 chunk mass 的对数。这比 mean-pool 或裸 landmark key 都准,因为它显式考虑了 chunk 内的"信息分布形状"。
设计二:层次分解(Inter-chunk Softmax × Intra-chunk Softmax)
如果只做 chunk selection 选 top-K,但选中的 chunk 内部还是 dense attention,那这个 chunk 内的 softmax 是和全 chunk softmax 不一致的——分母不对。
HiLS 把 attention 显式拆成两步:
- intra-chunk softmax:query 在选中的 chunk 内部做一次 softmax(只在 chunk 内归一化)
- inter-chunk softmax:用 surrogate \(\hat{Z}_{i,c} = \exp(\mathbf{q}^\top \mathbf{k}'_c + b'_c)\) 在 top-K chunk 之间再归一化一次
这个分解的关键性质是端到端可微——surrogate 评分直接参与 forward 计算的权重分配,所以可以用 LM loss 直接优化 chunk selection 本身,不需要 oracle chunk selection 做 teacher。
这跟 NSA 不一样。NSA 也是端到端训练的,但它的 chunk summary 是 mean-pooled,估算精度差。HiLS 用 learned summary key,精度上了一个台阶。
设计三:Q-Cal(Low-Rank Query Calibration)
光有 chunk summary key 还有一个问题:query 的表征可能不适合直接拿来打 chunk summary。论文发现,给 query 加一个低秩的额外投影 \(\Delta \mathbf{q} = \mathbf{W}^{\text{up}} \mathbf{W}^{\text{down}} \mathbf{h}\)(秩 \(r \ll d\),额外参数 0.6%)能显著提升外推能力。
消融里这个组件的贡献最直观(Table 6): - 8K in-domain PPL: w/ Q-Cal 4.94 vs w/o Q-Cal 4.97(几乎一样) - 32K 外推 PPL: w/ Q-Cal 4.34 vs w/o Q-Cal 7.21 - 128K: w/ Q-Cal 4.71 vs w/o Q-Cal 12.40 - 512K: w/ Q-Cal 5.95 vs w/o Q-Cal 16.93
这意味着 query 在预训练时学到的表征,对"评估某个 chunk 的重要性"这个任务是不够用的——需要给它再开一个低秩通道专门做这件事。 论文里把这种机制解释成"query 需要额外的 calibration 才能匹配 chunk summary key 的语义空间",挺自然的。
一个意外的好消息:HoPE 比 RoPE 更适合
论文还专门做了一组位置编码的对比——保留旋转周期不超过训练长度的 RoPE 维度,其余维度用 NoPE(叫 HoPE):
- 对 Full-Attention:HoPE 只带来 marginal gain
- 对 HiLS-Attention:HoPE 是 substantial gain
- 7B Olmo3 上 RULER 平均:HoPE 97.42 vs RoPE 38.67 vs NoPE 43.33
原因论文也给了一个有意思的解释:chunk 压缩时把多个 key 加权聚合到 summary key 上,如果所有维度都带 RoPE,不同位置的旋转会一起被平均掉,扭曲语义。HoPE 把一部分维度专门留成"无位置",给 chunk summary 一个 position-independent 的语义子空间,正好解决这个问题。
这是个挺反直觉的发现——位置编码对 sparse attention 的影响远比对 dense attention 大,因为 sparse attention 高度依赖 chunk summary 的语义保真度。
实验:真的能 4M 上下文 + 速度狂飙?
实验一:8K 训练,4M 外推
主实验用 345M GPT-2 Medium 架构、8K 上下文训练,看每个方法在 RULER 上的退化曲线(Table 2):
| 方法 | 8K S-N | 32K S-N | 128K S-N | 512K S-N | 1M S-N | 4M S-N |
|---|---|---|---|---|---|---|
| Full-Attn RoPE | 100 | 0 | 0 | — | — | — |
| Full-Attn HoPE | 100 | 17 | 10 | — | — | — |
| NSA | 49 | 0 | 0 | — | — | — |
| HSA-Ultralong | 87 | 7 | 15 | 21 | — | — |
| LMK-Attn | 96 | 23 | 8 | — | — | — |
| Naive-BSA(oracle selection) | 100 | 16 | 13 | OOM | — | — |
| HiLS-Attn-HoPE | 100 | 65 | 99 | 99 | 100 | 96 |
看 32K 这行——HiLS 65 分,其他方法里最高的 HSA 才 7 分。到 128K,HiLS 99 分,其余全军覆没(Naive-BSA 也只有 13,oracle selection 都救不了)。这是 16× 外推。
更夸张的是 512K(64×):HiLS 99/95/68(S-N/MK-MQ/VT),这是论文标题里">64× 外推"的来源。其他方法要么直接 OOM,要么 HSA 21/65/42。

图 2:Olmo3-HiLS-Attn(蓝色实线)vs Olmo3-CPT (YaRN)(灰色虚线)的 RULER 表现。训练长度 8K,HiLS 在 64K 之前都维持在 89% 以上,到 1M 还有 81.7%。YaRN 32K 就开始跳水,128K 之后基本归零。
外推 1M(128×):HiLS 100/97/53。 外推 2M(256×):HiLS 97/87/50。 外推 4M(512×):HiLS 96/89/43。
论文里那句"it extrapolates to 4M context length while maintaining over 90% accuracy on needle-in-a-haystack retrieval, corresponding to a 512× length extrapolation"——这个数字在 8K 训练 setting 下是非常惊人的。
实验二:长上下文综合基准
把 7B Olmo3 用 50B tokens 全参数 CPT 转成 HiLS-Attn,在 LongBench-v1 上分 < 8K 和 > 8K 两组看(Table 11):
| 方法 | < 8K | > 8K | Overall |
|---|---|---|---|
| Olmo3-Base | 37.6 | 18.0 | 29.0 |
| Olmo3-512swa-CPT | 35.9 | 14.7 | 28.0 |
| + YaRN 32K | 35.6 | 27.6 | 31.7 |
| HiLS-Attn-HoPE | 38.2 | 30.6 | 33.2 |
| HiLS-Attn-NoPE | 38.3 | 31.5 | 33.2 |
HiLS 在 > 8K 任务上比 YaRN 32K 涨 3 个点,比 base 涨 12.6 个点(base 在长上下文上基本瞎了)。< 8K 任务上 HiLS 38.2 vs base 37.6,几乎没掉。
视觉对比一下细节,< 8K 和 > 8K 都拆开看(Figure 1 子图 3):
- Single-Doc QA:< 8K 基本打平(36.4 vs 36.9),> 8K 23.3 vs 10.0(+13.3 个点)
- Multi-Doc QA:< 8K 37.8 vs 27.8(+10.0),> 8K 25.0 vs 14.2(+10.8)
- Few-shot:< 8K 64.6 vs 64.1(打平),> 8K 50.7 vs 33.6(+17.1)
- Code:< 8K 59.3 vs 59.4(打平),> 8K 51.0 vs 32.9(+18.1)
- Synthetic:< 8K 4.7 vs 4.1(略涨),> 8K 5.3 vs 3.2(+2.1)
短上下文不掉,长上下文大涨——这正是 long-context 训练方法梦寐以求的曲线。

图 3:LongBench-v1 按上下文长度分组的分数对比,灰色实心是 Olmo3-CPT(基线),蓝色斜纹是 HiLS-Attn。短上下文(< 8K)打平,长上下文(> 8K)每项都领先 10+ 个点。
实验三:通用/数学/代码不掉
大家最担心的"换成 sparse attention 之后 MMLU 崩了"——HiLS 在 7B 上 Table 9 给出:
| 任务 | Base | HiLS-HoPE | 差距 |
|---|---|---|---|
| MMLU (5-shot) | 59.90 | 56.58 | -3.32 |
| GPQA (5-shot) | 29.29 | 34.34 | +5.05 |
| Hellaswag | 44.17 | 38.71 | -5.46 |
| ARC-c | 53.56 | 55.93 | +2.37 |
| BoolQ | 61.01 | 64.71 | +3.70 |
| Race | 73.89 | 69.75 | -4.14 |
| CMath | 41.53 | 43.35 | +1.82 |
| GSM8K | 37.00 | 36.85 | -0.15 |
| CRUX2 | 24.62 | 25.12 | +0.50 |
| HumanEval+ | 20.10 | 18.90 | -1.20 |
| MBPP+ | 37.60 | 32.60 | -5.00 |
| Avg | 43.88 | 43.35 | -0.53 |
11 个任务平均只掉 0.53 个点。MMLU 跌 3.3 个点是个真实代价,但 Hellaswag 和 MBPP+ 也有 5 个点的跌幅,说明在某些 few-shot 分类/代码任务上 sparse pattern 还是有信息损失。但整体看,已经是非常高的保真度。

图 4:7B Olmo3-base(灰色实心)vs HiLS-Attn-HoPE(蓝色斜纹)在 11 个任务上的分数对比。平均分 43.1 vs 43.2,几乎完全持平。
实验四:推理速度
最直观的速度对比(Figure 6,单卡 H800,bf16):
| 上下文长度 | Prefill 加速 | Decode 加速 |
|---|---|---|
| 8K | 0.62x(略慢) | 0.73x(略慢) |
| 16K | 1.1x | 1.1x |
| 32K | 1.9x | 1.7x |
| 64K | 3.3x | 2.9x |
| 128K | 5.8x | 5.2x |
| 256K | 9.3x | 9.3x |
| 512K | 13.5x | 15.7x |
16K 是 crossover 点——再短 HiLS 反而略慢(sparse 调度 overhead 比省下来的 QK 计算还多),超过 16K 加速比指数级上升,到 512K decode 单 token 从 ~86ms 降到 ~5.5ms。

图 5:HiLS-Attn(蓝色)vs Full attention(灰色)的推理延迟。注意 X 轴是对数刻度——8K 那个点 HiLS 略慢(0.62x / 0.73x),16K 之后加速比指数级上升。
实验五:为什么 sparse 还能反超 full attention
最有意思的一个发现:HiLS 在 RULER Variable Tracking 任务上比 full attention 高 2 倍——8K in-domain 72 vs 34/36,32K 95 vs 0。
论文给了一个直观的解释:token-level full attention 对每个 key 都给了 non-zero attention mass,这些 non-zero 的部分累积成噪声。chunk compression 把多个 key 加权聚合到 summary key 上,噪声项会互相抵消,而 shared semantic signal 被保留,所以 chunk summary 反而是个更"干净"的表征。
论文原话:"if each key can be decomposed as \(\mathbf{k}_i = \text{semantic}(\mathbf{k}_i) + \text{noise}(\mathbf{k}_i)\), then compression aggregates multiple keys into \(\mathbf{k}'_c\). The noise terms, being less aligned, tend to cancel out, while the shared semantic signal is preserved, yielding a cleaner representation."
这个解释跟经典 denoising 的直觉是一致的——用 redundancy 换 robustness。但要注意,这是 chunk 内部 attention 算出来的 weighted pool,不是简单的 mean/NSA 的 mean-pool,也不是 LMK-Attn 的裸 landmark key。
实验六:训练成本
7B 模型从 Olmo3-base 转成 HiLS:
- 全参数 CPT:50B tokens(8K context),原始 3:1 pattern(3 层 4K SWA + 1 层 full-attn)改成 3 层 512 SWA + 1 层 HiLS-Attn
- LMK token tuning:5B tokens,冻结 base,只训 landmark token embedding + Q-Cal 的 \(\mathbf{W}^{\text{up}}, \mathbf{W}^{\text{down}}\)(< 1% 参数)
LMK token tuning 的效果是 RULER 8K 从 base 的 11.34 涨到 22.33——纯 frozen base + 1% 参数 + 5B tokens,效果有限但确实涨。要拿到 RULER 64K 97.33 这种水平,还是得全参数 CPT 50B tokens。
50B tokens 对一个 7B 模型来说不算大——继续预训练领域数据的常规量级,工程上完全可行。相比从头训一个 7B sparse attention 模型,这是 5× 10 = 5× 节省(一次大预训练 + 一次轻量 CPT vs 一次大预训练 + 一次大 sparse 训练)。
我的判断
亮点
-
方法上抓住了"chunk selection 选不准"这个根本问题。别的 sparse attention 论文都在比 top-K 怎么选、kernel 怎么写、position encoding 怎么搞,HiLS 直接说"问题不是机制,是评分函数不对"。用 chunk-mass surrogate + Taylor 展开做准确估计,这事讲得通,工程上也能做。
-
第一个同时满足五维度的方法。论文 Table 12 把所有 sparse attention 方法在五个维度上横切:
| 方法 | Perfect NIAH | Full QK Support | >64× 外推 | 端到端训练 | 支持 CPT |
|---|---|---|---|---|---|
| NSA | ❌ | ❌ | ❌ | ✅ | ✅ |
| Dash-Attention | ❌ | ❌ | ❌ | ✅ | ✅ |
| LMK-Attn | ✅ | ✅ | ❌ | ✅ | ✅ |
| HSA | ❌ | ❌ | ✅ | ✅ | ❌ |
| HiLS | ✅ | ❌ | ✅ | ✅ | ✅ |
只有 HiLS 同时有 4 个 ✅,NSA/Dash 是 2 个,LMK-Attn 是 3 个,HSA 是 2 个。这不是营销话术,是表格里能直接核对的事实。
-
CPT 友好的设计。把已经训好的 full-attn 模型轻量级转成 HiLS,保留了过去的训练投资。这对比 LMK-Attn(训练时仍需 dense attention,推理时才 sparsify——意味着你训完一个模型推理还得跑 dense 计算)是个很大的工程优势。
-
HoPE 跟 HiLS 是配套的。这个发现对其他做 sparse attention 的工作有直接启发——位置编码不只是 full attention 的事,对 sparse attention 来说甚至更关键。
值得商榷的地方
-
8K 短上下文里 HiLS 反而慢(prefill 0.62x,decode 0.73x)。sparse 调度 overhead 在 8K 时比省下的 QK 计算还大。如果你的应用场景就是 8K-16K,HiLS 不会带来收益——这一点在产品落地时得权衡。
-
通用任务有真实代价。MMLU 跌 3.3 个点、Hellaswag 跌 5.5、MBPP+ 跌 5.0。平均 0.5 个点的跌幅背后是部分任务 5+ 个点的下滑,sparse pattern 不是免费的。
-
7B 实验里 HoPE-RoPE 和 NoPE 变体的对比很说明问题——RULER 平均 97.42 / 38.67 / 43.33,位置编码选错效果直接砍半。这意味着 HiLS 对位置编码非常敏感,工程落地时这个超参得调。
-
1.4B 训练只跑 8K 上下文(Table 8),没真正体现 HiLS 优势——8K 时 full attention 也好,HiLS 不会显著赢。从头训的 HiLS 故事只到 1.4B 是个局限,7B 上是 CPT 不是从头训。
-
Full QK Support 这一项 HiLS 标的是 ❌。意思是 HiLS 不能完整支持所有 QK 位置——它在 attention 计算时对未选中的 chunk 直接 mask 掉。如果某些任务需要访问到特定的远距离 token,chunk selection 选不到的话就完全 lost。论文里 RULER 16K 的 Single-NIAH 所有方法都拿 10 分(不是 100),恰恰说明这个上限。
跟 NSA 的对比:一个有意思的视角
NSA 在 8K in-domain RULER Single-NIAH 上拿 49 分,HiLS 拿 100。49 vs 100 的差距就是 chunk selection 准确度的差距。NSA 用 mean-pooled key,logits 一旦不是均匀分布就完全失真;HiLS 用 learned summary key + entropy bias,能适配不同分布。
HiLS 的 kernel 设计也比 NSA 灵活——NSA 要求 GQA group size \(G \geq 16\) 才能在 Tensor Core 上高效计算,HiLS 通过把相邻 query batch 起来只要求 \(M \times G \geq 16\)(\(M\) 是 grouped query token 数),适用面更广。Figure 7 给的实验数据:4K context 加载 union 占可见 history 的 76.4%,64K 时降到 9.9%——意味着 90% 的历史 chunk 都不需要被加载,KV cache 实际访问量比朴素 chunk-wise sparse 又小一个数量级。

图 6:左图是不同 context length 下,可见 history chunks(虚线)和实际加载的 union chunks(蓝线)的对比——64K 时只加载 9.9% 的可见 chunk。右图是 grouped query token \(M\) 和 chunk-id overlap 的关系,\(M=16\) 时 reuse 率 92.8%,\(M=64\) 时 98.1%——相邻 query 选 top-K 的高度重叠,让 kernel 可以高效 batch。
跟 LMK-Attn 的对比
LMK-Attn 跟 HiLS 思路最接近——都用 chunk summary key 做 top-K 选择。但 LMK-Attn 没有 chunk-mass surrogate 的 Taylor 展开 rectification,也没有 entropy bias term。消融里把 HiLS 的 Prop. 3.1 拿掉,结果:
- 8K in-domain PPL: w/o Prop. 3.1 = 4.97(vs w/ 4.94)—— 几乎一样
- 32K 外推 PPL: w/o Prop. 3.1 = 4.28(vs w/ 4.34)—— 略好
- 128K: w/o Prop. 3.1 = 4.73(vs w/ 4.71)—— 几乎一样
看起来差别不大?再看 RULER:
| 任务 | w/ Prop. 3.1 | w/o Prop. 3.1 | LMK-Attn(裸 landmark) |
|---|---|---|---|
| 32K S-N | 65 | 60 | 23 |
| 32K MK-MQ | 100 | 98 | 65 |
| 32K VT | 95 | 91 | 31 |
| 128K S-N | 99 | 83 | 8 |
| 128K MK-MQ | 91 | 83 | 3 |
| 128K VT | 66 | 52 | 10 |
Prop. 3.1 的 rectification 在 128K 才开始拉开差距(83 vs 99 on S-N),更激进的 LMK-Attn 在长上下文上崩得更厉害(8/3/10)。Taylor 展开线性化在长程是必要的——外推越远,chunk mass 分布越不均匀,mean-pool 和裸 landmark 越失真。
几个还可以再挖的点
- 训练数据是 5% 注入 RULER-style NIAH 任务的——这种"数据配方"对最终性能有多大影响?论文没单独消融。
- CPT 时 SWA 从 4K 缩到 512 是怎么选出来的?sparse 训练时 4K SWA 太重了吗?应该有个 ablation。
- chunk size 64 + top-K 32 是怎么选的?论文没单独提供 chunk size 和 top-K 的消融表格。直觉上 chunk 大一点 chunk summary 噪声抵消效果更好,但 summary 估计变难;top-K 大一点召回率高,但计算贵。这两个超参 sweep 结果没看到。
写在最后
这篇论文最值钱的地方,不是 13.5× 的推理加速,也不是 4M 的外推——是把"chunk selection 选不准"这个稀疏注意力最本质的问题给解了。
之前的 sparse attention 都在外围打转:改 top-K 策略、改 kernel 调度、改位置编码、改 KV 压缩率,没人去正面解决"你怎么知道哪个 chunk 重要"这个问题。HiLS 的回答是:用一个端到端可微的 chunk summary key 显式建模 chunk mass 的对数,再加 entropy bias 修正分布形状。这个回答既在数学上站得住(Taylor 展开的线性化),又在工程上做得到(Q-Cal 0.6% 额外参数、端到端训练、kernel 友好)。
如果你在做长上下文 LLM,这篇值得细读——不是因为它是个完爆 full attention 的银弹(不是,8K 短上下文它反而慢),而是因为它提供了一个轻量级把 full attention 模型迁移到稀疏模式的工程路径,50B tokens 的 CPT 换 13.5× 推理加速 + 64× 长度外推,对长上下文产品来说是相当划算的。
至于它是不是个真正的方法论突破,我倾向于说"半步"——核心问题解了,但 sparse attention 还有"Full QK Support"这个角没填上(HiLS 也丢分)。先把最容易拿的 80 分拿了,剩下的角留给后续工作。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我。