Appearance
三大架构对比
学完 BERT 与 GPT,这一页把三种范式放到一起正面对比,帮你建立「遇到一个任务,该选哪种架构」的决策直觉。这也是把前面所有机制串成一张总图的收束页。
1. 一图看懂三种范式
Encoder-only (BERT) Encoder-Decoder (T5) Decoder-only (GPT)
┌───────────┐ ┌──────┐ ┌──────┐ ┌──────┐
│ 双向自注意 │ │Encoder│──►│Decoder│ │ 因果自注│×N
│ 力 ×N │ │ ×N │CKA│ ×N │ │ 意 +FFN│
└─────┬─────┘ └──────┘ └──┬───┘ └───┬──┘
▼ ▼ ▼
每个位置的理解表示 直接生成目标序列 预测下一词, 循环续写
→ 分类/抽取/检索 → 翻译/摘要 → 生成/对话/代码- Encoder-only:双向可见,擅长「读懂并输出表示/标签」,不擅长生文。
- Encoder-Decoder(Seq2Seq):读入一段、生成另一段,天然适合「转换型」任务。
- Decoder-only:单向续写,一个「预测下一词」打天下,是当今大模型主流。
2. 核心维度对比表
| 维度 | Encoder-only (BERT) | Encoder-Decoder (T5/原始) | Decoder-only (GPT) |
|---|---|---|---|
| 注意力方向 | 双向 | 编码双向 + 解码单向 | 单向(因果) |
| 交叉注意力 | 无 | 有 | 无 |
| 典型预训练目标 | MLM 完形填空 | Span 损坏 / 翻译 | Next Token 续写 |
| 输出 | 表示 / 分类 | 完整目标序列 | 逐词自回归 |
| 天生擅长 | 理解 | 序列转换 | 生成 |
| 能否直接续写长文 | 否 | 是 | 是 |
| 代表模型 | BERT/RoBERTa | T5/BART/翻译模型 | GPT/LLaMA/Qwen |
3. 自注意力可见性对比(最关键的一张图)
词1 词2 词3 词4
Encoder(双向) ← 全都能互相看(除 padding)
词1 [ ✓ ✓ ✓ ✓ ]
词2 [ ✓ ✓ ✓ ✓ ] 任意方向可见 → 上下文最丰富
词3 [ ✓ ✓ ✓ ✓ ]
词4 [ ✓ ✓ ✓ ✓ ]
Decoder(因果)
词1 [ ✓ ✗ ✗ ✗ ] ← 下三角: 只能看过去, 为"预测下一词"服务
词2 [ ✓ ✓ ✗ ✗ ]
词3 [ ✓ ✓ ✓ ✗ ]
词4 [ ✓ ✓ ✓ ✓ ]一句话记住差异:BERT 能看整句所以懂词义,GPT 只能看左边所以会续写。
4. 任务 → 架构 速查
| 你的任务 | 首选范式 | 理由 |
|---|---|---|
| 文本分类 / 情感分析 | Encoder-only | 要的是高质量句表示 |
| 命名实体识别 / 抽取 | Encoder-only | 每个词的双向表示 |
| 语义检索 / 相似度 | Encoder-only(句向量) | 需要可比较的表示向量 |
| 机器翻译 / 摘要 | Encoder-Decoder | 明确的「输入→输出」转换 |
| 开放生成 / 对话 / 写作 | Decoder-only | 续写能力天然契合 |
| 代码补全 / Agent | Decoder-only | 大规模续写涌现出推理/工具能力 |
5. 为什么 Decoder-only 如今成了主流
1) 目标统一: 一个"预测下一词"就能自监督吃下全网文本, 无需标注
2) 规模友好: 结构简单、易并行堆叠, 完美契合 Scaling Law
3) 能力涌现: 足够大后, 理解/推理/多任务都被"续写"隐式覆盖
4) 交互天然: 对话、代码、Agent 本质都是"给前文, 续后文"需要注意:Decoder-only 也能做「理解」类任务(靠 prompt 让它输出标签),而 Encoder-only 做生成则很别扭——这是不对称的,也是大模型普遍走向 Decoder-only 的深层原因。
6. 参数规模与常见配置对照
| 模型 | 范式 | 层数 | d_model | 头数 | 上下文 | 参数 |
|---|---|---|---|---|---|---|
| BERT-base | Enc | 12 | 768 | 12 | 512 | 110M |
| GPT-2 small | Dec | 12 | 768 | 12 | 1024 | 124M |
| T5-base | E-D | 12+12 | 768 | 12 | 512 | 220M |
| LLaMA-7B | Dec | 32 | 4096 | 32 | 4k | 7B |
你会发现 BERT-base 和 GPT-2 small 层数/宽度几乎一样——它们的差别不在规模,而在「注意力能不能看右边」这一处设计,却走向了理解与生成两条路。
小结
- 三种范式 = 对「完整 Transformer」做不同的加减:留头(Enc)、留尾(Dec)、全留(E-D)。
- 决定性差异是注意力可见方向:双向懂词义、单向会续写。
- 选型口诀:要表示用 Encoder,要转换用 E-D,要生成/对话用 Decoder。
- Decoder-only 因目标统一、易扩展、能力涌现、交互天然而成为当代主流。
下一步
原理与架构都通了,进入工程侧:如何用 HuggingFace Transformers 库把模型跑起来 → 分词器。