Transformer 详解
Transformer 是 2017 年 Google 提出的架构,现在几乎所有大语言模型(GPT、Claude、文心一言)都基于它。
为什么需要 Transformer?
在 Transformer 之前,处理序列主要用 RNN(循环神经网络):
RNN 的问题:
输入: "我今天很开心"
处理顺序: "我" → "今天" → "很" → "开心"
缺点:
- 句子长了前面的词会被"忘记"
- 无法并行计算,训练很慢
Transformer 的核心思想:注意力机制(Attention)
不是逐字阅读,而是让所有词同时互相”看”一眼,决定谁更重要。
注意力机制直观理解
句子:“猫坐在垫子上,因为它很累”
“它” 指的是谁?
- RNN 需要从头读到尾才能确定
- Transformer 的注意力机制让”它”直接关联到”猫”:
它 ──强关联──→ 猫
它 ──弱关联──→ 垫子
它 ──弱关联──→ 累
核心组件
1. Self-Attention(自注意力)
每个词都问自己:我和句子里的其他词有什么关系?
计算公式(简化版):
三个矩阵:
- Q (Query): 我要查什么?
- K (Key): 我有什么信息?
- V (Value): 实际内容是什么?
2. Multi-Head Attention(多头注意力)
不只做一次注意力,而是并行做多次,捕捉不同的关系:
| Head | 关注点 |
|---|---|
| Head 1 | 语法关系(主谓宾) |
| Head 2 | 语义关系(同义词) |
| Head 3 | 指代关系(它→猫) |
3. Feed-Forward Network
对每个位置独立做同样的全连接层变换,增加模型的表达能力。
4. Layer Normalization & Residual Connection
让训练更稳定的技巧,类似于 Java 里的异常处理——保证梯度不会爆炸或消失。
架构图
输入: [我] [今天] [很] [开心]
↓
Embedding + Positional Encoding
↓
┌─────────────────────┐
│ Multi-Head Attention │ × N 层
│ + Add & Norm │
│ + Feed Forward │
│ + Add & Norm │
└─────────────────────┘
↓
输出概率分布
从 Transformer 到 GPT
| 模型 | 特点 | 用途 |
|---|---|---|
| 原始 Transformer | Encoder + Decoder | 机器翻译 |
| BERT | 只有 Encoder | 理解文本(分类、抽取) |
| GPT | 只有 Decoder | 生成文本(对话、写作) |
GPT 就是堆了很多层的 Transformer Decoder,然后用海量文本训练。
总结
核心要点
- Transformer 用 注意力 替代了 循环,解决了长距离依赖和并行计算问题
- Self-Attention 让每个词都能看到所有其他词
- Multi-Head 让模型从多个角度理解关系
- GPT = Decoder-only Transformer + 海量数据训练