核心要点

  • 并行性:Transformer 整个序列并行计算,RNN 必须按时间步顺序展开,难并行

  • 长依赖:自注意力让任意两位置间路径长度为 O(1),RNN 长依赖易梯度消失

  • 代价:自注意力是 O(n²) 时间与显存复杂度,长序列开销大

  • Transformer 无内建顺序信息需位置编码且数据需求大;RNN 内存 O(1) 适合流式

标准回答

Transformer 的优势

并行计算:自注意力一次性处理整条序列,充分利用 GPU,而 RNN 必须按时间步串行展开,训练慢。长程依赖:注意力让任意两个位置直接交互,信息传播路径长度为 \(O(1)\),不像 RNN 那样要逐步传递、长依赖时梯度消失或爆炸。可扩展性:架构规整、易堆深、配合大数据出现强 scaling,是大模型的基础。

代价

复杂度:自注意力对序列长度 \(n\) 是 \(O(n^2)\) 的时间与显存开销,长文本成本高(催生了 FlashAttention、稀疏 / 线性注意力等优化)。无序:注意力本身对位置不敏感,必须引入位置编码(正弦、RoPE、ALiBi 等)。数据:缺乏 RNN/CNN 那样的归纳偏置,小数据下不如 RNN,需要更大规模预训练

RNN 仍有的位置

RNN/LSTM 推理时状态内存为 \(O(1)\),天然适合流式、超长或资源受限场景;这也是 Mamba 等状态空间模型重新受关注的原因。

常见误区

⚠️ 常见踩坑

认为 Transformer 全面碾压 RNN——其 O(n²) 复杂度在长序列上是硬伤,且小数据场景因缺乏归纳偏置反而可能不如 RNN/CNN。

追问

追问 1为什么 Transformer 需要位置编码?

自注意力对输入是置换等变的——打乱词序,输出只跟着换位置而不改变内容,模型无法感知顺序。因此需显式注入位置信息:绝对位置编码(正弦/可学习)或相对位置方案(RoPE、ALiBi),后者在长度外推上更好。

追问 2如何缓解自注意力的 O(n²) 开销?

工程上用 FlashAttention 降低显存与访存;算法上用稀疏注意力、滑动窗口、线性注意力近似,或分组查询注意力(GQA)减少 KV 缓存;架构上也有 Mamba 等线性复杂度的状态空间模型作为替代。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。