Transformer
Transformer只有 Attention 的模型
Transformer 是一种完全基于注意力机制的深度学习架构,彻底抛弃了循环与卷积结构,使序列建模首次实现大规模并行训练。它于 2017 年由 Google 团队提出,随后成为自然语言处理乃至多模态 AI 的核心基础设施。
概述
Transformer 是一种完全基于注意力机制的深度学习架构,彻底抛弃了循环与卷积结构,使序列建模首次实现大规模并行训练。它于 2017 年由 Google 团队提出,随后成为自然语言处理乃至多模态 AI 的核心基础设施。
背景与动机
在 Transformer 出现之前,序列建模主要依赖 RNN 及其变体,存在固有局限。
- 顺序依赖:RNN/LSTM 必须逐步处理序列,无法并行,训练效率低下
- 长程遗忘:随序列变长,梯度消失问题导致早期信息难以保留
- 注意力补丁:早期 Bahdanau 注意力只是在 RNN 基础上的附加模块,并非独立架构
- 新思路:Vaswani 等人提出「只用注意力」——彻底去掉循环结构,证明注意力本身足以建模序列关系
核心机制
Transformer 的计算核心是缩放点积注意力(Scaled Dot-Product Attention)与多头注意力(Multi-Head Attention)。
- Query/Key/Value 三元组:每个位置的表示被线性投影为 Q、K、V,注意力权重由 Q 与 K 的点积经 softmax 归一化得到
- 缩放因子:点积除以 √d_k,防止维度过大时数值过大导致梯度消失
- 多头注意力:将注意力并行运行 h 次(原论文 h=8),各头关注不同子空间特征,最终拼接输出
- 前馈网络(FFN):每层在注意力后接一个两层全连接网络,引入非线性变换
- 残差连接与层归一化:每个子层外包一个 Add & Norm,稳定深层网络训练
位置编码
自注意力本身不感知序列顺序,因此需要显式注入位置信息。
- 正弦/余弦编码:原论文使用固定的正弦函数按位置维度编码,无需学习参数
- 可学习位置编码:BERT 等后续模型改为可训练的嵌入向量
- 相对位置编码:如 RoPE(旋转位置编码)在注意力计算中直接编码相对距离,被大多数主流大语言模型采用
- 外推能力:不同编码方案对超出训练长度的序列外推能力差异显著,是长上下文研究的核心议题
主要变体
原始 Transformer 为完整编码器-解码器结构,后来衍生出三大家族。
- Encoder-only(仅编码器):以 BERT(2018,Google)为代表,适合文本分类、命名实体识别等理解任务
- Decoder-only(仅解码器):以 GPT 系列(OpenAI)为代表,采用因果自注意力,适合自回归文本生成,是当前大语言模型主流结构
- Encoder-Decoder(编解码器):以 T5(Google,2019)、BART(Meta)为代表,适合机器翻译、摘要等序列到序列任务
- 视觉 Transformer(ViT):将图像分块作为 token 送入编码器,证明 Transformer 可直接应用于计算机视觉
发展脉络
Transformer 问世后迅速引发 AI 范式转变。
- 2017:Vaswani 等八位作者在 NeurIPS 发表「Attention Is All You Need」,机器翻译性能超越 RNN 基线
- 2018:GPT-1(OpenAI)与 BERT(Google)分别验证 Decoder-only 与 Encoder-only 的预训练范式
- 2019:T5、XLNet、RoBERTa 等大规模预训练模型涌现,NLP 进入「预训练+微调」时代
- 2020:GPT-3(1750 亿参数)展示大规模语言模型的涌现能力;ViT 将 Transformer 引入图像领域
- 2021—2022:CLIP、DALL-E、Whisper 等将 Transformer 扩展至视觉与多模态
- 2023—至今:Llama、Mistral、GPT-4 等持续迭代;MoE 与 Transformer 结合成为效率新方向
优势与局限
Transformer 并非没有代价,理解其权衡有助于选择合适方案。
- 优势——并行训练:相较 RNN 的逐步计算,自注意力可在序列维度完全并行,大幅加速训练
- 优势——长程依赖:任意两个位置之间路径长度为 O(1),理论上可捕获任意距离的依赖关系
- 局限——二次复杂度:标准自注意力计算复杂度为 O(n²),序列过长时显存与计算开销急剧增加
- 局限——数据饥渴:缺乏 CNN 那样的局部性归纳偏置,在小数据集上通常不如 CNN,需要大规模预训练
- 改进方向:Flash Attention、线性注意力、状态空间模型(Mamba)等持续探索更高效的替代或补充方案
常见误解
日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。
- 「只有 Attention 的模型」
- 「Google 那个 Attention 论文」
- 「BERT/GPT 的祖宗架构」
相关术语
和本术语关联紧密的其他词条,便于串联理解。
🎯 考点练习
含该术语的高频面试题,含标准答案与追问。
- 高级概念查看详解 →
Transformer 架构如何工作?通常用于哪些场景?
Transformer 用多头自注意力并行建模序列全局依赖,取代 RNN 的逐步递归;广泛用于机器翻译、大语言模型(GPT)、视觉(ViT)及多模态任务。
- 中级编码查看详解 →
手撕代码:实现 Layer Normalization
面试里先区分:LayerNorm 是每个样本自己沿特征维归一化,不看 batch,所以很适合 Transformer。
- 高级概念高频查看详解 →
BatchNorm 与 LayerNorm 有何区别?为什么 Transformer 用 LayerNorm?
BN 按 batch 维归一依赖 batch 大小,LN 按特征维归一与 batch 无关,更适合变长序列。
- 高级场景查看详解 →
如何估算 Transformer 模型的参数量与训练显存占用?
参数量约 12·L·d²;训练显存=参数+梯度+优化器状态(Adam)+激活。
延伸阅读
从知识库精选 3 篇文章,帮助深入理解该术语。
外部参考
维基百科:查看「Transformer」词条本页内容为本站原创撰写;维基百科链接仅作延伸参考。
