外观
Transformer 架构
一句话定义:Transformer 是一种完全基于注意力机制、抛弃循环与卷积的序列架构——它让任意两个位置直接交互(路径长度为 1)、训练可完全并行,因而成为当今大模型时代的事实标准(先在注意力机制里理解"注意力是什么",再看本页会顺畅很多)。
一、为什么是"Attention Is All You Need"
2017 年 Vaswani 等人在论文 Attention Is All You Need 中提出 Transformer 时,动机很朴素:此前的序列主力是RNN 与序列建模讲过的 RNN/LSTM,它们串行——$h_t$ 依赖 $h_{t-1}$,GPU 的并行算力发挥不出来,且长程依赖受梯度路径限制。Transformer 的回应是"一步到位":把整句话一次性送入自注意力,两两位置直接交互,且每层计算彼此独立、可并行。加上它简洁统一的数学形式,很快从机器翻译席卷到语言建模、视觉、语音、多模态——整套范式详见大语言模型(LLM)。
二、整体架构
Transformer 由 Encoder(编码器) 与 Decoder(解码器) 两个部分堆叠而成,两者均由 N 个相同的层组成(原论文 N=6),每层结构几乎一样:
- Encoder 层:多头自注意力 →(残差+LayerNorm)→ 前馈网络 FFN →(残差+LayerNorm);
- Decoder 层:掩码自注意力(masked self-attention,只能看自己及之前的 token)→(残差+LayerNorm)→ 交叉注意力(cross-attention,查询来自解码器、键值来自编码器输出)→(残差+LayerNorm)→ FFN →(残差+LayerNorm)。
关键组件拆解:
- 自注意力(Self-Attention):把输入通过三个可学习矩阵投影出查询 Q、键 K、值 V,计算 $$ \text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V $$ 除以 $\sqrt{d_k}$ 是为了让点积的方差不随维度膨胀,softmax 前的 logits 保持在合理量级;
- 多头(Multi-Head):把 d_model 维切分成 h 个头(原论文 h=8),每个头独立做注意力再拼接——不同头学会关注不同关系(语法位置、指代、语义相似等),相当于"多个视角并行开会";
- 前馈网络 FFN:每个位置共享的两层 MLP(内层扩 4 倍宽,如 512→2048→512),做逐位置的非线性变换,是参数的主要聚集地;
- 残差 + LayerNorm:残差把层退化风险压住(思想同 CNN 与计算机视觉的 ResNet),LayerNorm 对每个 token 的特征做归一化,让深层训练稳定——LayerNorm 与 BatchNorm 的区别与选型见初始化与归一化。
三、多头自注意力的直觉
为什么要多头?单个注意力是"一种加权的求和",信息单一;多头允许模型同时在多个子空间检索不同模式。直觉类比:开会时一个人看全局、分头小组各盯一个议题(指代、时序、话题),最后汇总结论。实践中发现不同头会分化出"关注相邻词的头""关注句法主语的头"等角色。注意力权重本身常被用来做可解释性分析,不过要警惕它不等于因果归因(相关讨论见可解释性与公平性)。
四、位置编码
自注意力本身是排列不变的:"我爱你"和"你爱我"在注意力眼里完全相同——它没有"顺序"概念。因此必须注入位置信息,主流方式:
- 正弦位置编码(原论文):用不同频率的正弦/余弦波叠加,让模型能从编码推断相对距离,且无需训练、可外推到更长序列;
- 可学习位置嵌入(学习式):把位置当作词表的一部分训练一个位置向量表,BERT 用此法;
- RoPE(旋转位置编码,2021):把位置信息编码进 Q/K 的旋转矩阵,被 LLaMA、GPT 系大模型广泛采用,因其对相对位置有更好的外推能力。
位置编码是"Transformer 需要结构先验"的补丁——纯粹的结构先验反而被转嫁给了训练数据,这正是与 CNN 归纳偏置的微妙分野(见DL 设计原则)。
五、Pre-Norm vs Post-Norm
残差与 LayerNorm 的组合有两种排法,训练行为差别很大:
| 排法 | 顺序 | 特点 |
|---|---|---|
| Post-Norm | 子层 → 残差 → LayerNorm | 原始论文;梯度传播路径长,深模型训练不稳,需小心初始化与 warmup |
| Pre-Norm | LayerNorm → 子层 → 残差 | 残差恒等通路更"干净",深模型更稳,收敛更快;但容量略损失,常用 scale 补偿 |
经验法则:小模型(≤12 层)Post-Norm 精度略高;深模型(GPT 系动辄数十层)一律 Pre-Norm。GPT-2、BERT、LLaMA 系列均为 Pre-Norm 变体。这个细节体现了"训练稳定性 vs 表征容量"的工程取舍。
六、训练技巧
- 学习率 warmup:前若干步(数千步)线性升温再按 $\text{step}^{-0.5}$ 衰减。Transformer 深、注意力分布敏感,一开始学习率过大容易发散或进入坏局部最优;
- 标签平滑:softmax 目标从 one-hot 改为带小噪声的均匀分布,抑制"过度自信"、改善泛化(在过拟合与正则化中有详解);
- Dropout:多头注意力输出、FFN、嵌入层都加 Dropout,是大模型的标配正则;
- 初始化缩放:深层的残差分支权重用小量(如 0.02)初始化,是深 GPT 可训的关键细节;
- 梯度裁剪 + 混合精度:防爆炸、省显存提速,后者见训练配方与调参。
工程要点
Transformer 训练 90% 的崩溃都能在"注意力 logits 爆炸→softmax 饱和"与"LR 过大"里找到根因。先检查损失曲线形态,再查数值范围,方法见调试与诊断。
七、BERT(Encoder)vs GPT(Decoder)家族
Transformer 家族按"用哪一半"分化成两大阵营,对应两种预训练目标:
| BERT(2018,Google) | GPT(2018+,OpenAI) | |
|---|---|---|
| 结构 | Encoder-only(双向注意力) | Decoder-only(因果注意力) |
| 预训练任务 | 掩码语言建模 MLM + 下一句预测 | 自回归"预测下一个 token" |
| 擅长 | 理解:分类、抽取、相似度 | 生成:续写、对话、推理 |
| 后代 | RoBERTa、DeBERTa、T5(编解码) | GPT-2/3/4、LLaMA、Qwen、DeepSeek |
| 现状 | 理解任务仍有效,但风光渐被大生成模型盖过 | 大一统:"能生成 = 能理解"成为主流信念 |
生成式大一统背后的逻辑是:任何任务都可以被重写为"给定上文生成下文"(分类→"这段评论是正面还是负面?")。这个范式选择深刻影响了后来的大语言模型(LLM)路线。
八、扩展:ViT 与跨模态
Transformer 的通用性在于它"不挑输入格式"——只要把输入变成 token 序列:
- ViT(2020):把图像切成 16×16 的 patch 展平为 token,配合位置编码直接吃 Transformer,在大规模预训练下反超 CNN,见CNN 与计算机视觉;
- 跨模态 Transformer:文本、图像、音频、视频都能 token 化后送入同一套注意力,视觉编码器+投影+LLM 的 VLM 架构(LLaVA、Qwen-VL)与统一多模态模型(Gemini)皆源于此,详见多模态模型;
- 语音:Whisper 用 Transformer 做语音到文本的映射,见语音与音频。
九、复杂度优化:FlashAttention、稀疏注意力、KV cache
Transformer 的 O(n²) 注意力在长序列面前是瓶颈,工程上有一整套对策:
- FlashAttention(2022):把注意力计算分块、在 SRAM 中完成,避免把 O(n²) 的中间矩阵写回显存,速度 2~4 倍、显存线性化,成为大模型训练推理的标准算子;
- 稀疏/线性注意力:Longformer、BigBird 用局部窗口+全局 token 近似全连接;Linformer、Performer 把注意力近似成低秩/核函数形式,复杂度降到 O(n)。收益与精度损失要权衡;
- KV cache:推理生成时把历史 token 的 K、V 缓存复用,避免每步重算——但显存随序列线性增长,于是有 PagedAttention、投机解码等配套优化,详见大语言模型(LLM)的推理一节。
关键认知
Transformer 的演进史就是"结构定型(2017)→ 规模放大(2018-2022)→ 效率革命(2022-)"的过程。它的核心数学至今没变,变的是归一化排法、位置编码、注意力近似与工程实现。
十、权衡与取舍
- 二次复杂度 vs 线性近似:长文档、长视频用稀疏/线性注意力省算力,但全局依赖可能受损;通用任务仍是标准注意力+FlashAttention 最稳;
- Pre-Norm vs Post-Norm:稳定性与容量;深模型选 Pre-Norm,追求小模型极限精度可试 Post-Norm;
- 双向 vs 因果:理解任务双向有信息优势,生成任务必须因果,且双向 BERT 难以直接做生成——"理解为主"用 Encoder,"生成/通用"用 Decoder;
- 成本:训练一个 13B 模型需要数百张 GPU 卡月级别的算力,规模不等于一切,参见DL 设计原则与MLOps 与模型部署。
延伸阅读
- 大语言模型(LLM)——Transformer 规模化的全部后果
- 注意力机制——从定义到多头自注意力的完整推导
- RNN 与序列建模——被 Transformer 取代的前任与它的流式优势
- CNN 与计算机视觉——ViT 的视觉战场
- 初始化与归一化——LayerNorm 与 Pre-Norm 的工程选择
- 训练配方与调参——warmup、标签平滑等配方全景
参考资料
- Vaswani et al. Attention Is All You Need (NeurIPS 2017)
- Devlin et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (NAACL 2019)
- Radford et al. Improving Language Understanding by Generative Pre-Training (2018)
- Liu et al. RoFormer: Enhanced Transformer with Rotary Position Embedding (2021)
- Dao, Fu, Ermon, Rudra, Ré. FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness (NeurIPS 2022)
- Xiong et al. On Layer Normalization in the Transformer Architecture (ICML 2020)
- Dosovitskiy et al. An Image is Worth 16x16 Words (ICLR 2021)
- Raffel et al. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (T5) (JMLR 2020)