领先于Transformer!新架构首个1200万上下文模型SubQ,成本仅Opus的5%
编辑|冷猫、陈陈
你有没有想过,为什么 AI 读一篇短文游刃有余,却在面对一整个代码库时频频出错?
原因无他,因为注意力撑不住。
现代大模型的核心机制叫做注意力机制,每个词都要跟上下文里的所有其他词两两比较,才能理解彼此的关系。这个设计让模型变得无比强大,但也埋下了一个隐患:上下文越长,计算量就越夸张。放到百万 token 级别,这种代价几乎是天文数字。
于是有研究者开始琢磨缩短上下文的方法,把长文档切碎、检索、压缩,再喂给模型。这样一来模型拿到的,只是碎片化信息。
Subquadratic,这家专注于前沿 AI 研究与基础设施的公司 ,在最近的一篇文章中给出了一个不同的思路:与其把文档切短来喂给模型,不如先来改造模型,让它真正读得了长文档。
他们提出了一种名为 SubQ 的模型,其核心是 SSA(Subquadratic Sparse Attention),即亚二次稀疏注意力机制 。这是一种经过线性扩展的注意力机制,专为长上下文检索、推理和软件工程工作负载而设计。
其核心需求很简单:企业 AI 需要解决的真正难题,本质上都是长上下文问题。代码库、合同、企业知识库、数据库、电子表格、研究语料,以及长时间运行的智能体会话。
以往,模型在回答问题时之所以经常失败,并不是因为答案不存在,而是因为相关证据分散在大量上下文中,彼此之间是间接引用的,只有同时理解多处信息时才真正有意义。
稠密注意力(Dense attention)成就了现代语言模型,但也让长上下文变得昂贵。每个 token 都要与其他所有 token 进行比较,因此注意力计算量会随着序列长度呈二次方增长。
SSA 改变了这种扩展方式。
它不是计算所有 token 两两之间的交互,而是通过内容相关的选择机制,将注意力路由到真正重要的位置,无论这些位置出现在序列中的哪里。
这点非常重要,因为长上下文能力并不只是更大的提示词窗口。名义上的上下文窗口,告诉你模型最多能处理多少 token;而真正有效的上下文窗口,决定了模型能在多少 token 中稳定地进行推理。SSA 瞄准的正是后一个问题。
在 MRCR v2 上,SubQ 能够跟上前沿的稠密注意力模型;在核心长上下文检索任务中,它达到了同等水平;并且在 100 万 token 场景下,相比稠密注意力实现了 52.2 倍的预填充加速。其结果是一种新的模型架构:让百万 token 上下文的服务成本更低、迭代速度更快。
Subquadratic 联合创始人 Alexander Whedon 对这项研究进行了宣传,称 SubQ 是 LLM 智能的一次重大突破。

据他介绍,SubQ 是首个基于完全亚二次稀疏注意力架构(SSA)构建的模型,也是首个拥有 1200 万 token 上下文窗口的前沿模型。
在 100 万 token 场景下,它比 FlashAttention 快 52 倍;而成本还不到 Opus 的 5%。
Whedon 认为,当前基于 Transformer 的大语言模型,在计算上存在天然浪费。标准注意力机制会处理词与词之间所有可能的关系,但真正有意义、真正会影响结果的关系,其实只占很小一部分。
SubQ 要做的,就是从海量 token 关系中,找到那些真正重要的连接,并把算力集中到这些地方。
这也意味着,SubQ 有望将计算量降低近 1000 倍,为大语言模型的扩展提供一条不同于传统 Transformer 堆算力的新路径。
Subquadratic 为此发布了技术博客,让我们来深入地了解这一颠覆了传统 Transformer 架构的大模型新技术。

博客标题:How SSA Makes Long Context Practical
博客链接: https://subq.ai/how-ssa-makes-long-context-practical
为什么长上下文仍未被解决
大多数企业级 AI 工作,并不像是在一小段文本上进行干净的问答。它更像是:
一个代码库:某个函数在一个模块中定义,却在几十个模块中被调用,并受到其他地方测试的约束;
一份合同:某项义务取决于一个定义、一个例外条款,以及相隔数页的引用条款;
一个科研流程:结论依赖于对多篇论文中证据的整合与协调;
一个长期运行的编程任务:早期的规划决策、中间修改、评审意见以及回归问题都至关重要。
这些都不是简单的查找问题,而是针对碎片化语料进行多跳推理的问题。
短上下文系统的失败,并不仅仅在于缺少了一些上下文,而在于它们被迫对碎片进行推理。当完整对象无法装入上下文时,系统通常通过分块(chunking)、检索(retrieval)、总结(summarization)和编排(orchestration)来弥补。
这些方法虽然有效,但也会引入新的失效模式。
RAG 系统能够保留语义相似性,但会丢失位置信息、层级结构、相邻上下文以及引用关系。一个片段可能包含正确的文本,却丢失了为什么它重要这种信息。
基于 Agent 的工作流会将大任务拆解为多个小的模型调用,但错误会在步骤间不断累积,编排逻辑变成人工编写的策略,同时上下文在多次调用之间被反复压缩。
最终,这类系统对人工设计的依赖,削弱了泛化能力。
行业的应对方式,是在模型之外不断构建脚手架。而 SSA 的尝试,是尽可能减少这些脚手架存在的必要性。
稠密注意力的成本
注意力机制本质上是内置在模型中的一种检索操作。每一个 token 都充当一个 query,与其他所有 token 进行比较,评估它们的相关性,并将这些信息聚合为自身的下一步表示。
这种机制之所以强大,是因为它让每个 token 都可以访问完整上下文;而它之所以昂贵,原因也正相同:每个查询都要与所有 key 逐一比较。最终形成的是一种 all-pairs 的计算,其成本会随着序列长度呈二次增长。
在较小的上下文规模下,这种开销尚可接受。但在真实问题所需的规模下,几十万到上百万 token,它就成为了主要瓶颈。上下文长度翻倍,计算成本并不会翻倍,而是变为四倍。原本可控的开销,很快就会在训练、推理和迭代过程中变得难以承受。
更糟的是,这其中大部分计算其实是无效的。在训练好的模型中,绝大多数注意力权重接近于零。模型依然执行了完整的比较过程,但真正对输出产生影响的交互只占很小一部分。
换句话说, 稠密注意力不仅是二次复杂度,而且是浪费性的二次复杂度 。
FlashAttention 改进了这种计算的执行方式。通过避免显式构建完整的注意力矩阵,并优化内存访问,它让稠密注意力在当前上下文规模下变得更加实用。但它并没有改变底层的扩展规律:比较次数依然不变,模型仍然执行二次规模的计算,只是执行得更高效。
同样的情况也出现在系统层面的各种补救方案中。检索 pipelines、上下文压缩、递归拆解以及基于 Agent 的编排,都在提升稠密注意力系统的可用性,但没有改变其扩展定律。它们是在绕开这一限制,而不是消除这一限制;二次成本依然是它们所绕行的那条边界。
这个领域多年来一直在尝试降低注意力机制的成本。难点从来不只是降低成本,而是 在不破坏检索能力的前提下降低成本 。
真正尚未解决的问题,并不是让注意力更快,而是更精确的目标: 构建一种同时具备高效率、基于内容的路由能力,并能够在长上下文中从任意位置进行检索的机制。
这正是 SSA 试图解决的问题。
SSA 的工作原理
SSA(Subquadratic Selective Attention,亚二次选择性注意力)改变了注意力计算的分配方式。
注:与前文 SSA(Subquadratic Sparse Attention,亚二次稀疏注意力机制)不同
其核心思想是 基于内容的选择(content-dependent selection) 。对于每一个 query,模型会先判断序列中哪些位置值得关注,然后只在这些位置上精确计算注意力。
稠密注意力假设「任意一对 token 都可能重要」,SSA 去除了这一假设, 只在真正有信息量的位置上计算注意力,其余部分直接跳过 。
这使 SSA 同时具备三个关键特性:
计算与内存的线性扩展 :注意力成本取决于被选中的位置数量,而不是完整序列长度,使长上下文在经济上变得可行。
基于内容的路由能力 :模型根据语义决定「去哪里看」,而不是依赖位置模式,因此无论关键信息出现在何处,都可以被检索到。
从任意位置进行稀疏检索 :不同于循环或压缩类方法,SSA 保留了从序列中任意远位置恢复具体信息的能力。
这一点在实践中非常关键。SSA 并不仅仅是对稠密注意力的「更快实现」,而是 从根本上减少了模型需要执行的注意力计算量 。这种减少,直接体现为速度提升。
以实际运行时间(wall-clock)衡量,在 B200 GPU 上、128K token 长度时,SSA 相比采用 FlashAttention-2 的标准注意力实现,实现了 7.2× 的输入处理加速 。FlashAttention-3 在 B200 上相较于 FlashAttention-2 并未带来额外加速。
随着上下文长度增加,加速效果进一步扩大:
256K:13.2×
512K:23.0×
1M:52.2×
这也再次印证:SSA 的优势,正是在长上下文场景中呈现指数级放大。