TL;DR
Transformer 是 2017 年 Google 论文《Attention Is All You Need》提出的架构,核心是自注意力(self-attention):每个 token 通过 Query/Key/Value 计算对序列中所有 token 的注意力权重,直接建模任意距离的依赖。因为没有 RNN 的循环依赖,可并行训练,成为 GPT、BERT 等大模型的基础。
核心组件
| 组件 | 作用 |
|---|---|
| 自注意力 | 每个 token 关注序列中所有 token,建模长距离依赖 |
| 多头注意力 | 多组 QKV 并行,捕捉不同子空间关系 |
| 位置编码 | 给 token 注入顺序信息(Transformer 本身无序) |
| 前馈网络 | 每个位置独立的非线性变换 |
| 残差连接 + LayerNorm | 稳定深层训练 |
注意力计算(QKV)
- 输入向量乘三个权重矩阵得到 Q、K、V;
- 计算 Q·Kᵀ,除以 √d_k 缩放;
- Softmax 得到注意力权重;
- 权重乘 V 得到输出。
两种主流通吃形态
- 编码器(Encoder-only):BERT 等,适合理解任务(分类、检索);
- 解码器(Decoder-only):GPT 等,适合生成任务;通过掩码自注意力只看已生成的 token。
常见问题
Transformer 为什么比 RNN 快?
RNN 必须按时间步顺序计算,无法并行;Transformer 一次并行处理整个序列,训练效率高几个数量级。
位置编码是干什么的?
注意力本身不区分 token 顺序(打乱输入结果一样),位置编码把顺序信息注入,让模型知道"谁在前谁在后"。
GPT 和 BERT 用的都是 Transformer 吗?
是。GPT 用解码器部分(decoder-only,自回归生成),BERT 用编码器部分(encoder-only,双向理解);两者都基于多头自注意力。
来源
- Vaswani et al., Attention Is All You Need, arXiv:1706.03762(2017),2026-08-04 访问
- Jay Alammar, The Illustrated Transformer(图解教程),2026-08-04 访问