Transformer原理
880 字约 3 分钟
domain/aiai/foundations
2026-07-24
1. 核心结论
- Transformer 是 2017 年提出的神经网络架构,完全基于注意力机制,摒弃了 RNN 的序列依赖
- 自注意力机制(Self-Attention)让模型能够捕捉序列中任意位置之间的依赖关系
- 多头注意力(Multi-Head Attention)使模型能够从不同维度关注输入的不同部分
- 位置编码(Positional Encoding)为模型提供序列顺序信息
- Transformer 是当前所有主流大语言模型(GPT、Claude、Llama 等)的基础架构
2. 基础概念
注意力机制(Attention):让模型在处理某个位置时,能够关注输入序列中其他相关位置的信息。
自注意力(Self-Attention):注意力机制的一种,查询(Q)、键(K)、值(V)都来自同一输入序列。
多头注意力(Multi-Head Attention):将注意力计算分成多个头,每个头学习不同的表示子空间。
位置编码(Positional Encoding):将位置信息注入输入向量,使模型能够感知序列顺序。
编码器-解码器(Encoder-Decoder):Transformer 原始架构,编码器处理输入,解码器生成输出。
Layer Normalization:对每层输出进行归一化,稳定训练过程。
残差连接(Residual Connection):将输入直接加到输出上,缓解梯度消失问题。
3. 工作原理
Transformer 核心计算流程:
- 输入嵌入:将 token 转换为向量表示
- 位置编码:加入位置信息
- 自注意力计算:
- 计算 Q、K、V 矩阵:Q = XW_Q, K = XW_K, V = XW_V
- 计算注意力分数:Attention(Q,K,V) = softmax(QK^T / sqrt(d_k))V
- 缩放因子 sqrt(d_k) 防止点积过大导致梯度消失
- 多头拼接:多个头的输出拼接后通过线性层
- 前馈网络(FFN):两层全连接网络,中间使用激活函数
- 残差连接 + LayerNorm:每层输出与输入相加后归一化
Decoder 与 Encoder 的区别:
- Decoder 使用掩码自注意力,防止看到未来 token
- Decoder 增加交叉注意力层,关注 Encoder 的输出
4. 实战场景
- 大语言模型预训练:GPT 系列仅使用 Decoder
- 机器翻译:原始 Transformer 使用 Encoder-Decoder
- 文本摘要、问答、代码生成
- 视觉 Transformer(ViT):图像分类、目标检测
- 多模态模型:图文理解、图文生成
- 时间序列预测
5. 常见误区
- 认为 Transformer 能理解语义:本质是模式匹配和统计学习
- 忽视序列长度限制:自注意力计算复杂度为 O(n^2),长序列成本高
- 不理解位置编码的重要性:没有位置编码,模型无法区分顺序
- 混淆 Encoder-only 和 Decoder-only:BERT 是 Encoder,GPT 是 Decoder
- 忽视 KV Cache:推理时缓存 K、V 可大幅提升生成速度
6. 进阶方向
- 高效注意力机制(Flash Attention、Linformer、Performer)
- 稀疏注意力与局部注意力
- RoPE、ALiBi 等位置编码改进
- Mixture of Experts(MoE)架构
- 状态空间模型(Mamba、RWKV)
- 视觉 Transformer 变体(Swin、DeiT)
7. 推荐资料
- Attention Is All You Need (原始论文) - https://arxiv.org/abs/1706.03762
- The Illustrated Transformer - https://jalammar.github.io/illustrated-transformer/
- Hugging Face Transformer Course - https://huggingface.co/course
- PyTorch Transformer Implementation - https://pytorch.org/docs/stable/generated/torch.nn.Transformer.html
- Stanford CS224n Lecture 7 - https://web.stanford.edu/class/cs224n/