Transformer 是过去十年最成功的深度学习架构之一。它取代 RNN 成为序列建模主力,支撑了 BERT、GPT、T5、ViT、多模态模型和今天的大语言模型生态。正因为它如此成功,它的问题也被放大到了前所未有的程度。
早期讨论 Transformer 局限时,最常见的一句话是:attention 是 \(O(n^2)\)。这句话没错,但太粗。真正的限制不只是训练时 attention matrix 随长度平方增长,还包括推理时 KV Cache 随上下文线性增长、自回归 decode 串行、长上下文不等于长期记忆、位置编码外推不稳定、数据效率偏低、可解释性和可控性困难。
本篇不是为了宣布 Transformer 过时。相反,要理解后 Transformer 时代的各种路线,必须先准确理解 Transformer 到底卡在哪里。Mamba、S4、RWKV、RetNet、线性注意力、混合架构,都是在回答同一组问题:能不能保留 Transformer 的训练稳定性和通用性,同时降低长序列成本?
本篇能让你学会三件事:
- 区分 FlashAttention 解决的工程瓶颈和 attention 本身的架构瓶颈;
- 理解长上下文、KV Cache、自回归串行性为什么会共同限制推理;
- 看清新架构要赢 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、推理服务,几乎都围绕它高度优化。
新架构要赢,不能只在复杂度表格上赢。它至少要同时回答:
- 同等算力下 perplexity 和下游能力是否接近或更好;
- 训练是否稳定,是否容易 scale;
- 是否适配 GPU/TPU 等现有硬件;
- 是否支持长上下文和高吞吐推理;
- 是否能接入现有微调、对齐、工具调用和 serving 生态;
- 是否在多模态、代码、推理等任务上保持通用性。
很多线性复杂度模型在某些序列任务上很漂亮,但到了通用语言模型规模,会遇到质量、训练、硬件利用率或生态问题。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 的护城河也同样真实。
十、关键概念回顾
- 工程瓶颈:实现和硬件利用效率带来的瓶颈,可以通过 kernel、内存管理、量化等方式缓解。
- 架构瓶颈:模型信息流和依赖结构本身造成的瓶颈,例如 full attention 的二次关系。
- 长上下文:一次前向中可访问更多 token,不等于长期记忆。
- KV Cache 线性增长:decode 中缓存历史 K/V,显存随上下文和并发线性增加。
- 自回归串行性:生成第 \(t+1\) 个 token 依赖第 \(t\) 个 token。
- 位置外推:模型在超过训练长度的上下文上保持位置理解的能力。
- 后 Transformer 路线:SSM、RWKV、RetNet、线性注意力和混合架构等尝试降低长序列成本。
十一、常见误解
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 的长序列成本,同时保留可训练性和表达能力。问题是:用一个状态来压缩历史,究竟能保留多少信息?这会是下一篇的核心。
十三、参考文献
- Vaswani, A. et al. “Attention Is All You Need.” NeurIPS 2017. Transformer 架构与 scaled dot-product attention 来源。
- Dao, T. et al. “FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness.” NeurIPS 2022. 标准 attention 工程瓶颈的重要工作。
- Press, O. et al. “Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation.” ICLR 2022. ALiBi 与长度外推相关工作。
- Su, J. et al. “RoFormer: Enhanced Transformer with Rotary Position Embedding.” Neurocomputing 2024. RoPE 位置编码来源论文。
- Gu, A. et al. “Efficiently Modeling Long Sequences with Structured State Spaces.” ICLR 2022. S4 状态空间模型代表工作。
- Gu, A. and Dao, T. “Mamba: Linear-Time Sequence Modeling with Selective State Spaces.” arXiv:2312.00752, 2023. Mamba 论文。
- Peng, B. et al. “RWKV: Reinventing RNNs for the Transformer Era.” EMNLP 2023 Findings. RWKV 代表论文。
- Sun, Y. et al. “Retentive Network: A Successor to Transformer for Large Language Models.” arXiv:2307.08621, 2023. RetNet 论文。
- Kwon, W. et al. “Efficient Memory Management for Large Language Model Serving with PagedAttention.” SOSP 2023. KV Cache 服务化瓶颈的重要来源。
← 上一篇:54|涌现能力 | 下一篇:56|状态空间模型 →
同主题继续阅读
把当前热点继续串成多页阅读,而不是停在单篇消费。
【Transformer 与注意力机制】41|位置编码演进:Sinusoidal → Learned → RoPE → ALiBi
Transformer 本身没有递归和卷积,如果不注入位置信息,它只会看到一袋 token。本文从原始正弦位置编码讲到 learned embedding、相对位置、RoPE 和 ALiBi,解释位置编码为什么从“给 token 加坐标”演进到“让 attention 感知相对距离”,以及长上下文为什么让位置外推变成核心问题。
【Transformer 与注意力机制】43|稀疏与局部注意力:Longformer、BigBird、Sparse Transformer
FlashAttention 优化的是 full attention 的实现路径,稀疏注意力则直接改变 token 之间的连接图。本文解释局部窗口、全局 token、随机连接和结构化稀疏为什么能降低长序列成本,以及 Longformer、BigBird、Sparse Transformer 各自代表什么取舍。
【Transformer 与注意力机制】58|后 Transformer 时代:架构会消失还是会进化
后 Transformer 时代不太可能是某个新架构一夜之间消灭 Transformer,更可能是 attention、SSM、MoE、检索、外部记忆、工具调用和多模态模块逐渐混合。本文回顾本系列主线,解释为什么 Transformer 很难突然消失,也为什么它不可能原样解决所有问题。
【Transformer 与注意力机制】22|Encoder 详解:6 层堆叠到底在做什么
把 Transformer encoder 从“左半边”这个模糊概念拆成可操作的结构:单层里 self-attention、FFN、残差、LayerNorm 各做什么;6 层堆叠为什么不是重复劳动;encoder 输出为什么适合理解任务而不直接擅长生成;以及它和 decoder-only、encoder-decoder 两条路线到底差在哪。