标准回答
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 等线性复杂度的状态空间模型作为替代。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。