简介:本文从底层计算与硬件适配的视角,系统对比以RNN/LSTM为代表的循环递归架构与以Transformer为代表的全并行注意力架构。文章梳理两者的相同点与核心差异,覆盖计算范式、并行能力、长程依赖建模、复杂度开销、推理方式等维度,并给出典型场景下的选型建议与迁移注意事项,帮助技术读者理解Transformer成为主流的根本原因,并基于自身业务条件做出理性的架构决策。
在深度学习的发展历程中,序列建模架构经历过一次根本性的更替:以循环神经网络(RNN)及其改进版本LSTM为代表的串行递归结构,逐渐让位于以自注意力为核心的Transformer。这场更替的意义远不止“新模型效果更好”,其背后是计算组织方式与硬件物理现实之间的一次深度对齐。
要真正理解这两类架构的差异,不能停留在“注意力机制更先进”这类概念层面的解释,而要回到三个最基础的视角:计算过程怎么执行、显存怎么读写、硬件怎么调度。本文正是从这些底层视角出发,对比方案A(RNN/LSTM代表的循环递归架构)与方案B(Transformer代表的全并行注意力架构),帮助读者回答三个问题:差异到底在哪、各自适合什么场景、如果要迁移需要注意什么。
RNN的核心思想是让隐藏状态像接力棒一样沿时间步传递,每读入一个词就更新一次状态,其计算公式可以简化为:
ht = tanh(W·x_t + U·h{t-1} + b)
这里存在一条刚性的计算依赖链:要计算第10个词的状态h_10,必须先拿到h_9;要算h_9,又必须先拿到h_8,以此类推。LSTM在此基础上引入输入门、遗忘门、输出门和细胞状态,用来缓解长序列上的梯度消失问题,但“按时间步逐步递推”这一串行本质并没有改变。
Transformer的做法是把长度为N的输入序列直接打包成一个N×d的矩阵,通过查询、键、值三组线性变换,一次性计算出序列中任意两个位置之间的相关性,再按相关性加权聚合信息,叠加前馈网络、残差连接与归一化形成深层结构。整段序列不存在时间步之间的递归项,所有位置的特征映射与相关性计算在同一批次内并行完成。
值得注意的是,注意力机制本身并非Transformer首创,早在2014年前后它就已被应用于机器翻译任务。2017年那篇经典论文真正激进的地方,是把递归结构从序列建模中彻底移除,让注意力机制独立支撑起整个架构——模型不再按时间维度一步步思考,而是在一瞬间把全部词的信息映射到向量空间并完成两两相关性计算。
尽管执行方式差异巨大,两类架构在目标与数学基础上仍高度一致:
RNN的计算图存在致命的串行依赖,时间步之间必须依次等待。示意如下:
# 方案A:循环递归(示意)h = h0for t in range(seq_len): # 步与步之间存在硬依赖,只能逐步执行h = tanh(W @ x[t] + U @ h + b)
Transformer则把时间轴直接打平为矩阵维度:
# 方案B:全并行自注意力(示意)Q = X @ Wq # X 为 N×d 的整段序列矩阵K = X @ WkV = X @ WvA = softmax(Q @ K.T / sqrt(d)) # 一次性得到 N×N 相关性矩阵O = A @ V # 所有位置同时完成加权聚合
这个改动的直接效果,是把训练过程的瓶颈从时序依赖转移到纯粹的硬件算力吞吐上限上。
现代数据中心级GPU拥有上万个计算核心,天生擅长执行高计算密度、规则形状的稠密矩阵乘法。RNN的串行递推与之严重错配:在高端训练卡上训练LSTM时,大部分计算核心都在空转等待上一时间步的状态更新,实际利用率往往明显偏低,算力被大量消耗在显存搬运与同步等待上。
Transformer则是主动向硅基芯片的物理现实“低头”:用最纯粹、最规则的矩阵乘法组织全部计算,硬件利用率高,可以说它的成功不是因为它在结构上更接近人脑,而是硬件工程与基础线性代数对人类先验经验的一次系统性胜出。
由于消除了串行链,训练时间不再随序列长度线性叠加等待开销,数据并行、更大批次、更深堆叠都更容易实施。这正是“超大规模预训练”在工程上可行的架构前提之一——没有全并行特性,后续大模型时代的训练范式很难成立。
RNN中位置i与位置j之间的信息交互需要经过|i-j|步传递,路径长度随距离线性增长,梯度随路径逐步衰减,即使LSTM的门控也只能缓解而无法根除。自注意力则让任意两个位置一步直达,路径长度为常数,长程依赖的建模能力在结构上就更强。
优势不是免费的。自注意力需要计算N×N的相关性矩阵,计算量与显存占用随序列长度呈平方级增长;而RNN的开销近似随长度线性增长。因此在超长序列场景(整本文档、小时级音频、高密度时序数据),RNN类结构或Transformer的稀疏化、线性化变体仍有现实价值。这是Transformer最重要的使用边界,也是相关改进方向持续活跃的动机。
两者推理时权重都固定,但执行方式不同:
RNN按时间步计算,顺序是隐式具备的;Transformer的结构本身对位置不敏感,必须显式叠加位置编码(正弦位置编码、可学习位置嵌入、旋转位置编码等业界通行做法),且编码方案的选择会影响长度外推能力,这是复现与迁移时的关键差异点。
| 对比维度 | RNN/LSTM(方案A) | Transformer(方案B) |
|---|---|---|
| 计算范式 | 时间步串行递推 | 全序列并行矩阵运算 |
| 硬件适配 | GPU核心易空转,受带宽与同步拖累 | 高计算密度矩阵乘法,充分利用并行算力 |
| 训练吞吐 | 受串行链限制,难以规模化 | 支持大规模并行与超大规模预训练 |
| 长程依赖 | 信息路径随距离线性增长,逐步衰减 | 任意位置一步直达 |
| 长度开销 | 计算与显存近似线性 | 自注意力约平方增长,长序列成本高 |
| 顺序信息 | 隐式具备 | 需显式位置编码 |
| 推理方式 | 增量步进,单步开销恒定 | 依赖键值缓存,显存随上下文增长 |
| 训练稳定性 | 易梯度消失/爆炸,依赖门控与裁剪 | 相对稳定,重点关注学习率与归一化策略 |
| 典型场景 | 低资源流式、超长序列 | 通用预训练、大模型、高吞吐生产系统 |
选型的关键不是“谁更先进”,而是让架构特性与业务约束相匹配:
Transformer取代RNN/LSTM的根本原因,在于计算组织方式与硬件现实的对齐:用规则的、可全量并行的矩阵乘法取代串行递推,把算力瓶颈从时序依赖转移到纯硬件吞吐上限。同时它并非没有代价——平方复杂度与位置信息外挂是其主要边界。因此,理性的选型思路是:先明确序列长度、资源预算、延迟要求与团队能力,再判断哪一类架构的特性与这些约束最匹配,而不是简单追随某一种技术潮流。