土法炼钢兴趣小组的算法知识备份

【Transformer 与注意力机制】55|Transformer 的根本局限:为什么 O(n²) 是终极瓶颈

文章导航

分类入口
transformer
标签入口
#transformer#long-context#attention-complexity#architecture#limitations

目录

Transformer 是过去十年最成功的深度学习架构之一。它取代 RNN 成为序列建模主力,支撑了 BERT、GPT、T5、ViT、多模态模型和今天的大语言模型生态。正因为它如此成功,它的问题也被放大到了前所未有的程度。

早期讨论 Transformer 局限时,最常见的一句话是:attention 是 \(O(n^2)\)。这句话没错,但太粗。真正的限制不只是训练时 attention matrix 随长度平方增长,还包括推理时 KV Cache 随上下文线性增长、自回归 decode 串行、长上下文不等于长期记忆、位置编码外推不稳定、数据效率偏低、可解释性和可控性困难。

本篇不是为了宣布 Transformer 过时。相反,要理解后 Transformer 时代的各种路线,必须先准确理解 Transformer 到底卡在哪里。Mamba、S4、RWKV、RetNet、线性注意力、混合架构,都是在回答同一组问题:能不能保留 Transformer 的训练稳定性和通用性,同时降低长序列成本?

本篇能让你学会三件事:

  1. 区分 FlashAttention 解决的工程瓶颈和 attention 本身的架构瓶颈;
  2. 理解长上下文、KV Cache、自回归串行性为什么会共同限制推理;
  3. 看清新架构要赢 Transformer,必须同时赢质量、成本、稳定性和生态。

一、先区分工程瓶颈和架构瓶颈

讨论 Transformer 局限时,最容易混淆两类问题。第一类是工程瓶颈:同样的数学公式,现有实现太慢、太耗显存、没有充分利用硬件。FlashAttention 就是典型工程突破。它不改变 attention 公式,却通过 I/O-aware tiling 和 online softmax 显著降低显存读写。

第二类是架构瓶颈:即使实现已经很优秀,模型本身的依赖结构仍然带来成本。例如 full attention 要让每个 token 和每个 token 交互,关系数量天然是二次的;自回归生成必须按 token 顺序前进,后一个 token 依赖前一个 token;KV Cache 必须保存历史 K/V,否则就要重复计算。

工程优化可以把瓶颈推远,但不能把所有瓶颈消灭。FlashAttention 让标准 attention 更快,却没有把 \(n^2\) 关系变成 \(n\);KV Cache 让 decode 不重算历史,却把历史变成显存状态;量化降低参数和 cache bytes,却不能改变信息流依赖。

理解这个区分很重要。否则每次出现新 kernel、新硬件、新 serving trick,人们就会误以为 Transformer 的根本问题已经解决。事实上,工程优化让 Transformer 继续保持竞争力,但也暴露了更深的架构问题:如果上下文继续变长、并发继续增加、交互延迟继续下降,现有结构还能撑多久?


二、O(n²) 到底卡在哪里

标准 self-attention 中,每个 query 都要和所有 key 计算相似度。序列长度是 \(n\),注意力分数矩阵就是 \(n \times n\)。这意味着序列长度翻倍,注意力关系数量变成四倍。对训练来说,这直接影响计算量、中间激活和显存。

有人会说,现代 GPU 很强,二次复杂度未必可怕。这个判断只在一定范围内成立。2K 到 4K、4K 到 8K,也许可以靠更强硬件、更好 kernel、更低精度扛过去。但当上下文走向 128K、1M token 时,二次关系会迅速变成结构性问题。

更重要的是,\(O(n^2)\) 不是抽象数学吓人,而是会在真实系统中变成多种成本:attention matrix 太大,HBM 读写太多,backward 激活太贵,batch size 被迫变小,训练吞吐下降,checkpoint 和重算策略变复杂。每一项都能通过工程优化缓解,但叠在一起就是长上下文训练的硬墙。

FlashAttention 的价值在这里很清楚:它让标准 attention 在同样硬件上走得更远。但它仍然计算完整 attention。只要模型要求每个 token 看所有 token,关系数量就不会消失。


三、推理阶段的瓶颈不完全一样

训练阶段的主要矛盾是并行计算一整段序列;推理阶段的主要矛盾是逐 token 生成。KV Cache 避免了反复重算历史 K/V,但带来另一个成本:历史越长,需要保存的 cache 越大。

49|KV Cache 的公式可以看出,cache 大小随层数、batch、上下文长度、KV head 数和 head dimension 线性增长。线性听起来比二次好,但在服务系统里,线性乘上并发请求数和长上下文窗口,同样会变成主要瓶颈。

推理还有自回归串行性。即使每一步 decode 都很快,也必须先生成第 \(t\) 个 token,才能生成第 \(t+1\) 个 token。Speculative decoding 可以让小模型先草拟,大模型批量验证;并行采样、树搜索和草稿模型都能缓解延迟。但只要输出序列本身依赖前一个 token,串行结构就仍然存在。

这说明 Transformer 的推理瓶颈不是单一维度。prefill 阶段像大矩阵计算,受 attention kernel 和 prompt 长度影响;decode 阶段像状态机循环,受 KV Cache 读写、batch 调度和串行依赖影响。长上下文模型把两类问题都放大了。


四、长上下文不等于真正记忆

上下文窗口变长,很容易被宣传成“模型记忆更好”。这句话需要拆开。上下文窗口只是模型在一次前向过程中可访问的 token 范围。它不是长期记忆,不是数据库,也不是持续学习。

长期记忆至少包含几个不同能力:能把过去事件持久保存;能在未来合适时间检索;能更新、压缩和遗忘;能区分事实、偏好和临时上下文;能跨会话保持一致。长上下文只解决其中一部分:把更多文本塞进当前 prompt,让 attention 有机会读取。

needle-in-a-haystack 类评测可以测试模型能否在长文本中找到某个显著信息,但它不能完整代表长期记忆。真实任务里,信息可能分散、互相矛盾、需要多步推理、需要和已有知识融合。模型“能看到”不等于“会用”,更不等于“记住了”。

所以长上下文和 RAG、外部记忆、数据库、工具调用不是替代关系。很多系统最终会采用混合方式:短期工作记忆放在上下文里,长期知识放在检索系统里,结构化状态放在数据库里,模型负责整合和生成。


五、位置外推与分布外长度

Transformer 没有天然顺序感,必须通过位置编码或位置偏置知道 token 顺序。不同位置方案的外推能力差别很大。Sinusoidal、learned position embedding、RoPE、ALiBi 都试图解决“模型如何知道相对或绝对位置”这个问题。

位置外推的难点在于,模型训练时看到的长度有限,推理时却可能要求更长。如果训练只到 4K,推理拉到 32K,模型不只是计算更贵,还可能遇到从未见过的位置分布。RoPE scaling、ALiBi、插值和外推技巧都在缓解这个问题,但它们不是魔法。

更长窗口还会改变 attention 行为。模型在短上下文里学到的“关注最近内容”“某些位置模式”“段落结构”,放到长上下文里未必稳定。位置编码只是让模型有表示长度的方式,不保证模型学会长距离推理。

这也是为什么长上下文模型需要专门训练、评测和数据构造。不能简单把位置范围调大,就假设模型理解百万 token。


六、数据效率与样本效率问题

Transformer 很会吃数据。Scaling laws 告诉我们,在相当宽的范围内,继续增加模型、数据和计算,loss 会平滑改善。但这也暴露出另一个问题:Transformer 的强大很大程度上来自海量数据和算力。

人类可以从少量例子中形成概念,模型往往需要大量 token 才能稳定学到类似行为。当然,这个比较不能过度浪漫化人类学习;人类也带着长期进化和生活经验。但从工程角度看,训练强模型需要的 token 和算力仍然巨大。

数据效率问题和 35|数据工程 形成回环。高质量数据稀缺,重复和低质数据会浪费训练预算,合成数据会带来分布坍缩风险。当模型越来越大,继续靠“更多数据”提升能力会越来越困难。

新架构如果想挑战 Transformer,不能只说复杂度更低,还要证明在同样数据和算力下能达到相当质量。否则低复杂度只是理论优势,实际模型质量不够,仍然很难替代。


七、可解释性与可控性

Transformer 的另一个局限是可解释性。早期有一种直觉:attention weight 可以告诉我们模型关注哪里,所以 attention 就是解释。后来研究和经验都表明,这个说法太简单。attention weight 是模型内部计算的一部分,但它不是完整因果解释。

大语言模型的行为由大量层、头、MLP、残差流和训练数据共同决定。一个输出可能依赖许多分散特征。机制可解释性试图找 circuit、feature、activation pattern,但距离对整个模型行为的完全解释还很远。

可控性也类似。指令微调和 RLHF 能让模型更像助手,但不能保证它在所有分布外输入上稳定遵循意图。幻觉、越狱、过度自信、格式漂移、工具调用错误,都是复杂系统行为。它们不是单靠调整 attention 结构就能解决的问题。

这说明 Transformer 的局限不仅是算力问题。即使未来硬件足够强,如何理解、约束和验证模型行为,仍然是架构和训练范式共同面对的难题。


八、为什么替代路线很难彻底赢

既然 Transformer 有这么多问题,为什么还没有被轻易替代?原因很现实:Transformer 不只是一个公式,而是一整套生态。硬件、编译器、kernel、训练框架、并行策略、数据配方、初始化、优化器、checkpoint、推理服务,几乎都围绕它高度优化。

新架构要赢,不能只在复杂度表格上赢。它至少要同时回答:

  1. 同等算力下 perplexity 和下游能力是否接近或更好;
  2. 训练是否稳定,是否容易 scale;
  3. 是否适配 GPU/TPU 等现有硬件;
  4. 是否支持长上下文和高吞吐推理;
  5. 是否能接入现有微调、对齐、工具调用和 serving 生态;
  6. 是否在多模态、代码、推理等任务上保持通用性。

很多线性复杂度模型在某些序列任务上很漂亮,但到了通用语言模型规模,会遇到质量、训练、硬件利用率或生态问题。Transformer 的强大之处在于它是一个“足够好且极度可优化”的通用底座。

所以更现实的未来可能不是某个架构一夜之间完全替代 Transformer,而是混合。局部 attention、状态空间层、卷积、检索、外部记忆、MoE、线性 attention,都可能和 Transformer 组件组合,逐步改变模型形态。


九、下一代路线图

状态空间模型(State Space Model, SSM)试图用线性时间处理长序列。S4、Mamba 等工作把序列建模看成状态更新问题:输入流过一个可学习动态系统,状态携带历史信息。它们的吸引力在于长序列效率和推理形态,但挑战是如何达到 Transformer 在通用语言任务上的质量和生态成熟度。

RWKV 把 RNN 式状态更新和 Transformer 式训练结合起来,目标是获得类似 RNN 的推理效率,同时保留并行训练的一部分优势。RetNet 也在尝试 retention 机制,在并行训练、循环推理和 chunkwise 计算之间建立统一形式。

线性注意力和各种 kernelized attention 则试图直接改写 attention 计算,把 softmax attention 近似成可线性累积的形式。它们的优势是复杂度,但难点是质量、稳定性和对真实任务分布的适配。

这些路线都值得关注,但它们面对的共同标准很严格:不仅要在长序列上快,还要在短序列、通用语言、代码、多模态、对齐和服务系统里都足够好。Transformer 的局限很真实,Transformer 的护城河也同样真实。


十、关键概念回顾


十一、常见误解

11.1 “O(n²) 意味着 Transformer 马上过时”

不成立。\(O(n^2)\) 是真实瓶颈,但 Transformer 仍然有质量、生态、硬件优化和通用性优势。瓶颈推动替代路线发展,不等于立刻替代。

11.2 “FlashAttention 已经解决长上下文”

FlashAttention 解决的是标准 attention 的内存 I/O 和显存效率问题,没有改变完整 attention 的二次关系。它是重要工程突破,不是复杂度魔法。

11.3 “长窗口就是长期记忆”

长窗口只是把更多 token 放进当前上下文。长期记忆还需要持久化、检索、更新、遗忘和跨会话一致性。

11.4 “新架构只要复杂度低就会赢”

复杂度低只是必要条件之一。新架构还必须在质量、训练稳定性、硬件利用、生态和对齐上接近或超过 Transformer。


十二、下一步

理解 Transformer 的限制之后,下一步就可以认真看状态空间模型。Mamba、S4 这类路线不是凭空出现的,它们正是在尝试绕开 full attention 的长序列成本,同时保留可训练性和表达能力。问题是:用一个状态来压缩历史,究竟能保留多少信息?这会是下一篇的核心。


十三、参考文献

  1. Vaswani, A. et al. “Attention Is All You Need.” NeurIPS 2017. Transformer 架构与 scaled dot-product attention 来源。
  2. Dao, T. et al. “FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness.” NeurIPS 2022. 标准 attention 工程瓶颈的重要工作。
  3. Press, O. et al. “Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation.” ICLR 2022. ALiBi 与长度外推相关工作。
  4. Su, J. et al. “RoFormer: Enhanced Transformer with Rotary Position Embedding.” Neurocomputing 2024. RoPE 位置编码来源论文。
  5. Gu, A. et al. “Efficiently Modeling Long Sequences with Structured State Spaces.” ICLR 2022. S4 状态空间模型代表工作。
  6. Gu, A. and Dao, T. “Mamba: Linear-Time Sequence Modeling with Selective State Spaces.” arXiv:2312.00752, 2023. Mamba 论文。
  7. Peng, B. et al. “RWKV: Reinventing RNNs for the Transformer Era.” EMNLP 2023 Findings. RWKV 代表论文。
  8. Sun, Y. et al. “Retentive Network: A Successor to Transformer for Large Language Models.” arXiv:2307.08621, 2023. RetNet 论文。
  9. Kwon, W. et al. “Efficient Memory Management for Large Language Model Serving with PagedAttention.” SOSP 2023. KV Cache 服务化瓶颈的重要来源。

← 上一篇:54|涌现能力 | 下一篇:56|状态空间模型

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-04-15 · transformer

【Transformer 与注意力机制】22|Encoder 详解:6 层堆叠到底在做什么

把 Transformer encoder 从“左半边”这个模糊概念拆成可操作的结构:单层里 self-attention、FFN、残差、LayerNorm 各做什么;6 层堆叠为什么不是重复劳动;encoder 输出为什么适合理解任务而不直接擅长生成;以及它和 decoder-only、encoder-decoder 两条路线到底差在哪。


By .