为什么很多序列任务从 RNN 转向 Transformer?
简化版
Transformer 在多数大规模序列任务中替代 RNN,核心是 self-attention 可并行处理训练时间维、长程路径短且扩展性强;RNN 仍在低延迟流式、小模型、连续状态和资源受限场景有价值。
详细版
-
RNN 时间步依赖导致训练串行。
-
Attention 任意两位置交互路径长度为 1。
-
标准 attention 成本随序列长度平方增长。
-
Transformer 需要显式位置编码。
-
流式 Transformer 也要缓存或限制上下文,并非天然无状态。
完整版教学
一、替代来自硬件并行与长依赖,不是 RNN 失效
RNN 每步复用同一 cell,参数和状态紧凑,却形成无法跨时间并行的关键路径。
Transformer 把 token 组成大矩阵运算,更适合 GPU/TPU。
当序列极长时 O(T²) attention 成为瓶颈,而 RNN 每步 O(1) 状态更新仍有吸引力;选择要看训练和服务约束。
二、底层机制与公式
RNN sequential depth=O(T), attention path=O(1)
standard self-attention compute~O(T^2*D), score storage~O(T^2)
三、带数字的推演
T=4096 时 attention score 矩阵有约 4096²=1678万 元素/头;RNN 不存该矩阵,但必须串行执行 4096 个 cell step。
四、方案对比
| 方案/对象 | 核心特点 | 代价或边界 |
|---|---|---|
| RNN/LSTM | 流式状态小 | 训练串行、长依赖难 |
| Transformer | 并行、长程交互直接 | 长序列二次成本 |
| 混合/线性注意力 | 折中长序列成本 | 实现与效果依任务 |
五、执行流程
明确序列长度/流式/硬件 -> 建 RNN 与 Transformer 同预算基线
-> 比较质量/吞吐/P99/状态内存 -> 选择并做分布切片
六、边界条件与工程代价
Transformer 推理自回归生成仍逐 token 串行,只是每步内部 attention 并行并可用 KV cache。
小数据或边缘设备上,大 Transformer 的预训练优势和部署成本需分别评估,不能只比参数规模。
记忆钩子:Transformer 赢在训练并行和短信息路径,RNN 赢在递归小状态与天然流式。
七、常见误区与追问
-
误区:Transformer 推理所有输出 token 都并行。 自回归生成仍依赖之前输出。
-
追问:为何更易学长依赖? 任意位置间信息路径更短。
-
误区:Transformer 永远更快。 长序列二次 attention 与小 batch 可能很贵。
-
追问:RNN 还适合哪里? 严格流式、固定小状态和资源受限任务。
-
追问:公平比较什么? 相同数据/预算下的质量、吞吐、延迟和内存。
八、加强记忆
Transformer 的主要优势是已知序列上的位置并行、全局注意力的短信息路径以及大规模训练的硬件利用率;标准注意力计算含 O(T²D) 项,朴素分数存储为 O(T²),自回归推理也仍逐 token。RNN 的时间维训练串行,却能用固定递归状态做天然增量流式。选型必须在同预算下比较质量、吞吐、P99 和状态内存,不能回答“Transformer 已完全替代 RNN”。