8.1 Transformer 的二次复杂度问题

为什么“所有的大模型都用 Transformer”这句话不再完全正确

8.1.1 Transformer 曾经是完美的

2017 年“Attention is All You Need”论文发表时,Transformer 看起来是一个优雅的解决方案。相比之前的 RNN(递归神经网络),它有一个关键优势:

RNN的问题:
序列处理 → 一个token一个token处理
           └─ 必须等待前面的token处理完
           └─ 无法并行化

Transformer的优势:
注意力机制 → 所有token可以同时看到彼此
             └─ 可以并行处理
             └─ 训练速度大幅提升

这就是为什么 Transformer 能够支撑更大的模型规模。更大的模型需要更快的训练,而 Transformer 的并行性正好满足这个需求。

8.1.2 问题显露:二次复杂度

虽然 Transformer 很强大,但它有一个隐藏的数学问题,只有在处理非常长的序列时才会显现:

什么是二次复杂度?

用生活中的例子理解

想象一个会议:

8.1.3 影响:为什么这很重要?

速度的代价

看到趋势了吗?处理长文本的成本增长非常快。

内存的代价

不仅时间增长,内存也以平方的方式增长:

这就是为什么即使是最强大的 GPU,也无法处理超级长的序列。

8.1.4 真实的影响:哪些应用受限?

受影响的应用场景

8.1.5 行业的应对方式

现有的解决方案(不太完美)

为了解决这个问题,行业采取了一些变通方案:

8.1.6 新的解决方案:状态空间模型

这就是为什么一个新的想法变得引人注目:

与其扩展注意力机制,不如放弃它,用完全不同的方法。

这个新方法就是 状态空间模型(State Space Models,SSM)。

简单类比:记忆的方式

想象两个人在看一部电影:

8.1.7 本节小结

Transformer 的二次复杂度是其根本的数学限制:

  • 处理长序列时,时间和内存成平方增长

  • 这限制了许多实际应用

  • 为了解决这个问题,新的架构(SSM)被开发出来

这不是说 Transformer“坏”——它在当前的任务上仍然很好。而是说它不是所有问题的最优解。

就像飞机不是所有交通工具中最快的(火箭比它快),但对大多数出行来说仍然是最好的选择。现在,新的“火箭”(SSM 架构)出现了,针对特定的问题(长序列处理)。

8.1.8 思考题

  1. 如果你要处理一部 100 万字的小说,用 Transformer 和 SSM 分别需要多少计算资源?

  2. 二次复杂度是 Transformer 的根本性问题吗?还是可以通过工程优化来解决?

  3. 如果 SSM 没有注意力机制,它是如何理解上下文的?(这是我们在下一节要回答的问题)

最后更新于