核心要点

  • 标准自注意力是 O(n²):每个 token 要关注序列中所有 token,需计算 n×n 关系矩阵,计算与内存复杂度都是 O(n²),上下文从 8K 扩到 128K 开销约增 256 倍。

  • 亚二次的核心洞察:标准注意力"浪费算力处理每对 token 关系,但只有极少数真正重要",亚二次方法只计算重要关系,目标 O(n log n) 或 O(n)。

  • 四类实现路径稀疏注意力(局部窗口+全局 token)、低秩近似(Linformer)、核方法/线性注意力(Performer,O(n))、状态空间/循环混合(SSM)。

  • 上下文工程挑战KV cache 内存随长度增长、prefill 延迟、推理成本,SubQ 以完全亚二次稀疏注意力实现 12M token 研究上下文、1M 处比 FlashAttention 快 52 倍(poolId N5)。

简要回答

标准自注意力让每个 token 关注所有其他 token,要算 n×n 的关系矩阵,所以计算和内存都是 O(n²),序列越长开销越爆炸。亚二次注意力的洞察是"只有极少数 token 关系真正重要",只计算这些关系,把复杂度降到 O(n log n) 或 O(n)。实现路径有四类:稀疏注意力(局部窗口加全局 token)、低秩近似(Linformer)、核方法/线性注意力(Performer)、状态空间/循环混合。长上下文的工程挑战集中在 KV cache 内存、prefill 延迟和推理成本上都随长度平方增长。SubQ 用完全亚二次稀疏注意力实现 1200 万 token 研究上下文,在 100 万 token 处比 FlashAttention 快 52 倍,说明长上下文可以从成本禁区变成可用能力。

标准回答

一、标准自注意力为什么是 O(n²)

标准自注意力要让每个 token 关注序列中所有其他 token,需要计算一个 n 乘 n 的关系矩阵(注意力分数),所以计算复杂度和内存复杂度都是 O(n²)。序列越长,开销越爆炸:上下文从 8K 扩展到 128K,注意力部分的开销增长约 256 倍。这是长上下文 LLM 的核心瓶颈——KV cache 内存、prefill 延迟、推理成本都随序列长度平方增长。FlashAttention 通过 IO 优化把常数项大幅降低、改善了内存访问效率,但没有改变 O(n²) 的复杂度本质。亚二次注意力的目标就是打破这个平方律。

二、亚二次注意力的核心洞察

核心洞察是:标准注意力浪费算力处理每一对 token 的关系,但实际上只有极少数关系真正重要。大部分 token 之间的注意力权重接近零。亚二次方法只计算"真正重要"的 token 关系,把复杂度降到 O(n log n) 甚至 O(n)。这不是近似偷懒,而是利用了注意力分布的稀疏性先验。

三、四类实现路径

第一类是稀疏注意力,只计算局部窗口加上少数全局 token 的关系,如 Longformer,复杂度降到 O(n) 但带常数项。第二类是低秩近似,用低秩分解逼近注意力矩阵,如 Linformer,把 n×n 矩阵投影到低维。第三类是核方法/线性注意力,通过重排计算顺序使复杂度降到 O(n),如 Performer 用随机特征近似 softmax 注意力。第四类是状态空间/循环混合,用 SSM(如 Mamba)或循环结构替代部分注意力,推理时可做到 O(n) 且内存友好。

四、SubQ 的工程突破

2026 年 7 月 Subquadratic 公司发布 SubQ(poolId N5):首个完全亚二次稀疏注意力(SSA)前沿模型,研究上下文 1200 万 token(约 10-12 本医学教科书)、生产 100 万 token。据官方与第三方验证,在 100 万 token 处 prefill 比 FlashAttention 快 52 倍,成本低于 Claude Opus 的 5%,SWE-Bench Verified 得分 81.8。它智能识别并只计算真正重要的 token 关系。工程意义在于:长上下文不再是成本禁区,Agent 可以一次推理整个代码库、合并数百个 PR、在数万文档中找模式。

五、长上下文的工程挑战

即便有亚二次架构,长上下文仍有工程挑战:第一,KV cache 内存——即使亚二次,长序列的状态仍需存储和管理;第二,prefill 延迟——首次处理超长输入的延迟可能很高;第三,质量退化——很多模型在接近标称上下文上限前性能就崩溃,SubQ 声称其研究模型在 12M token 仍稳定而其他前沿模型远早于标称上限就崩溃;第四,成本与验证——SubQ 官方坦承是 O(n) 而非 O(1),且早期未发技术报告,独立可复现性仍待观察。

常见误区

⚠️ 常见踩坑

误区一:以为 FlashAttention 改变了复杂度。 FlashAttention 是 IO 优化,大幅改善内存访问效率和常数项,但复杂度仍是 O(n²),不是亚二次。误区二:把亚二次等同于"精度损失换速度"。 好的亚二次方法利用注意力稀疏性先验,在很多任务上精度不降反升,不是简单牺牲质量。误区三:以为 O(n) 就能做无限上下文。 O(n) 仍是线性增长,且状态存储、质量退化、成本都是实际约束;SubQ 官方也明确 O(1) 是不可能的。误区四:只看复杂度不看质量退化。 很多模型在接近标称上下文上限前性能就崩溃,复杂度低不代表长上下文真的可用,要看"有效上下文"而非"标称上下文"。

追问

追问 1线性注意力(如 Performer)把复杂度降到 O(n),为什么实践中 Transformer 仍主流?

**理论与实践确有差距。**理论和实践有差距。线性注意力通过核近似把 softmax 注意力重排成 O(n),但有幾個实践难点:第一,近似精度--随机特征近似 softmax 会引入误差,在很多需要"尖锐注意力分布"的任务(如精确检索、长距离精确依赖)上,线性注意力的近似质量不如标准 softmax 注意力。第二,训练稳定性--线性注意力的优化景观和数值稳定性不如标准 Transformer 成熟,大规模训练的工程经验积累少。第三,生态与硬件适配--标准 Transformer 有 FlashAttention、CUDA kernel、推理框架的深度优化,线性注意力缺乏同等程度的工程栈。所以现状是:标准 Transformer 加 FlashAttention 在中等上下文仍是性价比之选,亚二次/线性方法在超长上下文场景才显出优势。SubQ 这类工作的意义正在于把亚二次架构的工程成熟度推到前沿水平。

追问 2为什么"很多模型在达到标称上下文上限前就崩溃"?这对长上下文应用意味着什么?

**标称上限不等于有效工作长度。**标称上下文上限是架构能“容纳”的长度,不代表模型在那个长度上还能"有效工作"。崩溃的原因:第一,注意力稀释--上下文越长,关键信息在海量 token 中被稀释,模型难以精准定位("大海捞针"测试随长度变难);第二,位置编码外推--很多位置编码在训练长度之外外推能力差,超出训练分布后质量下降;第三,KV cache 噪声累积--越长越多无关 token 的状态进入计算,干扰推理。这对应用意味着:选择长上下文模型不能只看标称窗口,要看"有效上下文"--在目标长度上的实际检索精度和推理质量。SubQ 声称研究模型在 12M token 仍稳定,而很多前沿模型远早于标称 1M 上限就崩溃,这正是亚二次架构若能在长距离保持注意力精准度带来的实际价值。工程上要做的是在真实任务长度上做压力测试,而不是相信规格表。

追问 3如果让你为一个 Agent 系统选择长上下文方案,亚二次模型、RAG、上下文压缩,你怎么权衡?

**三者互补,按信息访问模式选择。**这三者不是互斥而是互补,要按"信息访问模式"选择。RAG 适合"海量文档中检索少量相关片段"--把长上下文问题转化为检索问题,成本低、可更新,但依赖检索质量,且会丢失跨文档的全局结构。上下文压缩(摘要、蒸馏)适合"需要全局概要但不需要逐字细节"--压缩后塞进窗口,但压缩有信息损失。亚二次长上下文模型适合"需要一次推理大量原始内容、保留全局结构和精确细节"--比如整个代码库的跨文件推理、数万文档的交叉模式发现,这是 RAG 的分片检索做不好的。Agent 系统的实际架构通常是组合:用 RAG 做粗筛召回相关大块,用亚二次长上下文模型在一次推理里精细处理召回内容,必要时用压缩处理超长的单条内容。核心权衡维度是:需要多少原始细节、是否需要全局结构、信息更新频率、成本预算。盲目追求最大窗口或盲目用 RAG 都是误区,关键是匹配信息访问模式。

🔗 相似问题

同一考点的不同问法,换着练更稳

延伸学习

按主题分类的相关资源,便于系统复习