30 秒快速回答

隐空间稀疏注意力(Latent Sparse Attention,LSA)是一种面向超长上下文的注意力架构:它把 Key 映射到可学习的隐空间并按语义做层级聚类,形成一棵树;Query 不再扫描全部 Key,而是从聚类中心逐层下降,只对最相关的几个「桶」做精确注意力。

核心价值一句话:它没改注意力公式,而是换掉了被忽视的那一步——把「找哪些 token 值得看」从全表扫描变成树搜索,复杂度从 O(T²) 压到接近 O(T log T)。

出处:Prefrontal AI(James Whittington 团队)论文 arXiv:2610.42147,2026 年 11 月初开源论文、代码与蒸馏权重(GitHub:Prefrontal-AI/latent-sparse-attention),并提供了 SGLang fork 与 Docker 镜像。

一、真正的瓶颈不是「算」,而是「找人」

长上下文优化的主流思路是省计算:滑动窗口、块稀疏、可学习稀疏、KV 淘汰……都在优化注意力 kernel。但序列涨到千万级时,时间并不花在算注意力上——10M token 场景下,索引器(Indexer,即找出该关注哪些 Key 的过程)占了注意力层约 98% 的时间。再快的 kernel 也救不了「先找人」这一步。

方案 索引方式 复杂度 千万级上下文的问题
Full Attention 全量两两计算 O(T²) 直接算不动
滑动窗口 按位置取近邻 O(T·w) 远处信息永远看不到
块稀疏 按位置切块选择 亚二次 相关性由位置猜,语义跨度大时失准
KV 淘汰 按重要性丢缓存 亚二次 丢掉的可能是后面才用到的证据
LSA 隐空间语义层级树 ≈O(T log T) Prefill 比 Full Attention 快 72.4×

关键差别在于:前面几类方案的「块」由位置决定,LSA 的「桶」由语义相似度决定。所以它能在 10M token 的任意位置精确找到相关内容,不被窗口边界切断。

二、LSA 怎么工作:把 Key 装进一棵语义树

三个步骤,伪代码看结构就懂:

# 伪代码:LSA 的三步结构(非官方 API,仅示意流程)
W = learn_latent_projection(dim=d_latent)   # 1. 可学习的隐空间映射
tree = hierarchical_cluster(K @ W, branching=b)  # 2. Key 聚类成多级树

def lsa_attention(q, K, V, top_k=4):
    x = q @ W                     # Query 也投影到同一隐空间
    node = tree.root
    while not node.is_leaf:       # 3. 逐层下降,每层只保留最相关的 top_k 分支
        node = node.children.topk(sim(x, node.centers), k=top_k)
    keys = concat(node.leaf_key_indices)   # 只取命中的桶
    return softmax(q @ K[keys].T / sqrt(d)) @ V[keys]

要点有三个:隐空间是可学习的(不是固定哈希,因此聚类中心会随训练朝「注意力学到的相关性」收敛);树是多级的(浅层粗筛、深层精排,搜索代价随层数对数增长);精确注意力仍然在桶内做(所以精度不会像纯近似方法那样塌)。

三、实测数字(H200 / Qwen-3.8-27B / 10M token)

指标 对比 Full Attention 对比同模型原有稀疏方案
单层 Prefill 72.4× 更快 22.7× 更快
单层 Decode 42.5× 更快 4.6× 更快
端到端首 token 延迟 约 9.2× 加速 —
精度(RULER 等长上下文基准) 基本持平,部分任务略升 —

结论不是「稀疏化必然掉点」,而是当稀疏化的选择依据从位置换成语义,精度和速度可以同时要。

四、两条落地路径:D-LSA 与 N-LSA

版本 做法 适合谁 代价
D-LSA(Distilled) 基座模型冻结,只用短蒸馏训练 Indexer 已有现成模型、想低成本换注意力 需要一次蒸馏 + 推理侧支持
N-LSA(Native) 从零训练,原生使用 LSA 自研模型、预训练团队 要重训,但 128k 下训练速度反而快 1.6×

D-LSA 的意义被低估了:它验证了「注意力算法可以像插件一样移植」——新索引器套进旧基座,权重不用动。官方已放出 Qwen3.8-27B 的蒸馏权重,具体启动参数请以仓库 README 为准,不同 SGLang fork 版本差异较大,别照抄二手博客的命令。

五、四个工程建议与边界

  1. 先量一下你的长上下文任务卡在哪。如果瓶颈是「模型记不住细节」,LSA 帮不上忙,你需要的是上下文压缩或检索;如果瓶颈是「塞进去就慢到爆」,LSA 才对症。
  2. 短上下文别上。32k 以内全注意力的索引开销可以忽略,多一层树搜索纯属增加复杂度与调试成本。
  3. KV Cache 显存仍是硬约束。LSA 解决的是计算,不是显存;单卡跑满千万级还得再等等,千卡级部署也不用急着换。
  4. 做迁移就在自己的评测集上对比。长上下文基准(RULER 类)和你的真实任务是两回事,尤其是需要跨极远依赖做推理的 Agent 任务,务必做端到端 A/B。

总结

  • LSA 的洞察是重新定义了问题:超长上下文贵在「找 token」,不在「算注意力」。
  • 机制:隐空间映射 + 层级聚类 + 树搜索,复杂度从 O(T²) 降到接近 O(T log T)。
  • 数据:10M token 下单层 Prefill 快 72.4×、Decode 快 42.5×,精度基本不掉。
  • 两条路径:D-LSA 蒸馏即插即用(基座冻结),N-LSA 原生训练更快更准。
  • 边界:省的是计算不是显存,短上下文无收益,迁移必须自测。

延伸阅读建议:先读《什么是 KV Cache?大模型推理提速降本的核心技术全解析》理解显存这条硬约束,再读《什么是 MLA?DeepSeek 把 KV 缓存压缩十几倍的核心技术全解析》看另一条「压缩记忆」的路线,接着用《长上下文(Long Context):AI 处理超长文本的核心技术全解析》建立全局地图,最后读《什么是上下文腐烂(Context Rot)?》——窗口变长不等于模型变聪明,这是选型时最容易忽略的一半。