在第 1.2 节中,我们简要回顾了语言模型的四次范式转移,其中从 RNN/LSTM 到 Transformer 的跃迁被描述为“整个大模型发展史上最重要的分水岭”。本节将把这个结论展开:我们不仅会解释 RNN/LSTM 到底卡在哪里,更重要的是理解——Transformer 的胜出并非因为它在某个指标上“略胜一筹”,而是因为它从根本上解除了大规模语言模型训练的物理封印。 如果不理解这一点,后续学习自注意力机制时,你很容易陷入公式细节而忘记它为何这样设计。
一、RNN/LSTM 的序列建模逻辑:逐步压缩的记忆
在 Transformer 出现之前,神经网络处理文本的标准方式是循环神经网络(Recurrent Neural Network, RNN)。它的核心思想非常拟人化:像人类读书一样,逐字逐句地读,并依靠一个不断更新的“记忆”来携带前文信息。
数学上,它在每个时间步 $t$ 执行:
$$
h_t = f(h_{t-1}, x_t)
$$
其中 $h_t$ 是当前隐状态,$x_t$ 是输入词,$f$ 是一个非线性变换。当前输出不仅取决于当前输入词,还取决于前一时刻的隐状态 $h_{t-1}$。
LSTM/GRU 的改进:标准 RNN 的 $h_t$ 对很久之前的输入会快速“失忆”,且反向传播时梯度容易爆炸或消失。LSTM(长短期记忆网络)引入了门控机制(遗忘门、输入门、输出门)和细胞状态(Cell State),把信息的传递从“连乘”改为“累加+门控筛选”,极大地缓解了梯度消失问题,成为 2013–2017 年间机器翻译、语音识别等任务的事实标准。
然而,LSTM 只是缓解了症状,并未根治疾病。当模型规模、数据量和序列长度三者同时膨胀时,RNN/LSTM 家族暴露出了三个结构性缺陷。
二、瓶颈一:串行计算的先天桎梏
RNN 的最大问题藏在它的名字里——Recurrent(循环)。由于 $h_t$ 的计算严格依赖 $h_{t-1}$,整个前向传播过程是串行的:必须算完第 1 个词,才能算第 2 个词;必须算完第 2 个词,才能算第 3 个词。
这带来了两个工程噩梦:
- 训练无法并行:现代 AI 训练依赖 GPU/TPU,而这些芯片的架构优势在于大规模并行矩阵运算。RNN 的时序依赖让 GPU 的大部分计算单元处于等待状态,算力利用率极低。你买了 1000 张 A100,RNN 也只能一张一张地“排队用”。
- BPTT 的内存黑洞:RNN 训练使用反向传播 through time(BPTT),需要将整个计算图沿时间步展开。序列越长,显存占用越高,且无法通过简单的梯度检查点(Gradient Checkpointing)彻底解决。
实用影响:在 2017 年之前,训练一个有效的神经机器翻译模型可能需要数周;而如果想把上下文从几十个词扩展到几百个词,显存和时间的消耗会呈线性甚至超线性增长。没有并行化,就没有规模化。
三、瓶颈二:长程依赖的信息衰减
即使忽略速度问题,RNN/LSTM 在建模质量上也有一个致命上限:信息传递路径长度与序列长度成正比。
想象一篇 1000 字的文章,第 1 个词是“Alice”,第 800 个词需要一个代词“她”来指代 Alice。在 RNN 中,关于 Alice 的信息需要从 $h_1$ 传递到 $h_2$,再传递到 $h_3$……经过 800 步的矩阵乘法和门控筛选。哪怕 LSTM 的设计再精巧,这种长距离的“信息搬运”也必然伴随噪声累积和细节丢失。
用计算机科学的语言说:第 $i$ 个词和第 $j$ 个词之间的信号路径长度是 $O(|i-j|)$。这意味着模型越远的地方,关联越模糊。
直观表现:RNN 翻译长句子时,经常丢失句首的主语信息;生成长文本时,前后人物设定矛盾。这些问题不是数据不够多,而是架构上的信息带宽不足。
四、瓶颈三:规模化与稳定性的矛盾
还有一个容易被忽视的问题:RNN 很难“做深”。
深度是模型容量的关键(回忆 2.1 节中“层数”对模型规模的影响)。但 RNN 的深层堆叠会加剧梯度问题,且循环路径上的非线性叠加使得优化景观极其崎岖。业界常见的 RNN 模型通常只有 2–4 层;超过 8 层的 LSTM 就会变得极难训练,需要大量技巧(如递归dropout、层归一化的早期雏形)才能稳定收敛。
这导致了一个尴尬的局面:当计算机视觉领域已经通过 ResNet 把网络堆到 152 层、享受深度红利时,NLP 领域却卡在“既要循环,又要深,还要稳定”的不可能三角里。
五、Attention 的先行探索:从“附件”到“主角”
在 Transformer 诞生之前,学界已经意识到“直接连接”比“逐步传递”更可靠。2014 年,Bahdanau 等人提出的注意力机制(Attention) 在 Seq2Seq 模型中首次亮相:解码器在生成每个词时,不再只依赖编码器的最后一个压缩向量,而是直接“回看”源端所有词的隐藏状态,按相关性加权求和。
这证明了两个关键直觉:
- 全局关联优于局部压缩:与其让信息挤过一个窄窄的隐状态通道,不如在需要时直接建立长距离连线;
- 显式权重可解释:注意力分数让模型“看哪里”变得透明。
但此时的 Attention 只是 RNN 的附加组件:编码器和解码器仍然是循环的,串行瓶颈依然存在。Attention 还没有摆脱 RNN 的宿主。
六、Transformer 的破局:三项核心变革
2017 年,《Attention Is All You Need》提出了一个在当时看来颇为激进的主张:干脆彻底抛弃循环和卷积,只用注意力来做序列建模。 这一决策不是拍脑袋,而是精准地针对上述三个瓶颈给出了结构性解决方案。
| 瓶颈 | RNN/LSTM 的困境 | Transformer 的解法 |
|------|----------------|------------------|
| 并行计算 | 时序依赖导致强制串行 | Self-Attention 一次性看到全部序列,所有位置并行计算 |
| 长程依赖 | 信号路径长度 $O(n)$,信息衰减 | 任意两词直接相连,路径长度恒为 $O(1)$ |
| 深度与稳定 | 深层循环难以训练 | 残差连接 + 层归一化支撑几十甚至上百层的堆叠 |
具体而言:
- Self-Attention(自注意力):不再区分“编码器隐状态”和“解码器查询”,而是让序列中的每个词都去“审视”其他所有词,并计算它们之间的关联强度。于是,“Alice”和 800 词后的“她”可以直接发生作用,无需中间人传递。
- 完全并行化:在训练时,Self-Attention 的核心运算是大矩阵乘法(Query × Key × Value),这正好是 GPU 的强项。无论序列多长,只要显存装得下,计算密度可以拉满。
- 可扩展的深度架构:Transformer Block 通过残差连接(Residual Connection)和层归一化(Layer Normalization)解决了深层网络的梯度阻塞问题。今天的主流 LLM 可以轻松堆叠 32、64、甚至 128 层,而训练依然稳定。
一句话总结:RNN 是“时间维度的压缩”,Transformer 是“空间维度的关联”。前者试图用有限的隐状态记住过去,后者则直接在全局范围内翻查上下文。
七、实用认知:架构演进背后的产业逻辑
理解这段历史,对今天的技术决策有三条直接帮助:
1. Transformer 不是“更好的 RNN”,而是“让规模化成为可能的唯一选择”
如果今天有人告诉你“我发明了一种新架构,比 Transformer 快 20%”,这可能有工程价值;但如果有人说“我回到了 RNN 路线,但做出了 GPT-4 级别的效果”,你需要极度审慎——因为 RNN 的串行天花板是结构性的,不是调参能解决的。
2. RNN 并未完全死亡,只是退出了大语言模型的主战场
在端侧超低功耗设备、实时流式语音处理、某些时序预测任务中,RNN 及其现代变体(如 Mamba、RWKV,它们试图在保持并行训练的同时恢复循环优势)仍有研究价值。但在“用海量文本训练通用大模型”这个赛道上,Transformer 已经确立了统治地位。
3. 注意力机制的 $O(n^2)$ 复杂度是 Transformer 的阿喀琉斯之踵
我们赞美 Self-Attention 把路径长度降到了 $O(1)$,但也要诚实面对它的代价:序列长度为 $n$ 时,注意力矩阵的大小是 $n \times n$。当上下文从 2K 扩展到 128K 甚至 1M 时,显存和计算量会爆炸式增长。这也是今天行业拼命研究线性注意力、状态空间模型、MQA/GQA 缓存优化的根本原因——Transformer 解放了并行化,但长序列又带来了新的枷锁。
八、小结
从 RNN/LSTM 到 Transformer 的演进,核心动因可以归纳为一条主线:
序列建模的需求没有变,但对“并行训练能力”和“长程依赖建模能力”的工业级要求,彻底压垮了循环架构的渐进式改良,迫使行业转向基于全局注意力的非循环架构。
Transformer 的胜利,本质上是工程可扩展性(Scalability)的胜利。它本身没有让模型“更聪明”,但它让“把模型做大、把数据做多、把上下文做长”在工程上首次成为可能。而正是这种可扩展性,催生了第 4 章将要讲述的 Scaling Laws,以及千亿参数大模型的涌现奇迹。
在 3.2 节中,我们将正式进入 Transformer 的解剖室,详细拆解它的编码器-解码器框架:输入是如何被嵌入的,注意力是如何计算的,信息是如何在层与层之间流动的。理解了骨架,后续的自注意力公式推导才会顺理成章。