Skip to content

引言

2017 年的原始 Transformer 是一个编码器-解码器的整体。但在随后的岁月里,这个架构像一颗种子,分裂出三条截然不同的进化路线:BERT 走向深度理解,GPT 走向无限生成,T5 试图统一一切。最终,Decoder-only 路线成为了大模型的赢家——但胜利的背后,是一系列精妙的架构创新在支撑。这是一个关于「简单为什么赢」的故事。


三大架构家族

原始 Transformer(2017)

    ├── Encoder-only → BERT 家族
    │   「理解」路线

    ├── Decoder-only → GPT 家族
    │   「生成」路线 ← 成为主流

    └── Encoder-Decoder → T5 家族
        「序列转换」路线
2017原始 Transformer:编码器-解码器架构,为机器翻译设计
2018GPT-1(Decoder-only)和 BERT(Encoder-only)分道扬镳
2019T5 提出「文本到文本」统一框架(Encoder-Decoder 路线)
2019-2020GPT-2/3 证明 Decoder-only 的 Scaling 能力,路线之争初见分晓
2022Flash Attention 发布,解决注意力计算效率瓶颈
2023LLaMA、Mistral 等开源模型统一采用 Decoder-only + RoPE + SwiGLU
2024Decoder-only 架构成为行业事实标准,架构创新聚焦于效率优化

Encoder-only:BERT 家族

代表模型

模型年份创新
BERT2018双向编码,MLM 预训练
RoBERTa2019更多数据、更长训练、去掉 NSP
ALBERT2019参数共享,降低参数量
DeBERTa2020解耦注意力,更好的位置编码
SpanBERT2019针对抽取式任务优化

核心特点

双向注意力:每个位置可以看到所有位置(包括未来)
  → 适合「理解」任务

典型任务:
  ├── 文本分类(情感分析、主题分类)
  ├── 命名实体识别(NER)
  ├── 问答系统(提取答案)
  ├── 语义相似度
  └── 信息检索

BERT 家族的时间线

BERT (2018)

  ├── RoBERTa (2019) — 更多数据,更优训练策略
  ├── DistilBERT (2019) — 蒸馏压缩,速度提升 60%
  ├── ALBERT (2019) — 参数共享,参数量减少 18x
  ├── SpanBERT (2019) — 针对 span 任务的改进
  └── DeBERTa (2020) — 解耦注意力,性能进一步提升

Decoder-only:GPT 家族

代表模型

模型年份参数量关键突破
GPT-12018117M预训练-微调范式
GPT-220191.5BZero-shot 学习
GPT-32020175BFew-shot + 涌现能力
GPT-42023未公布多模态 + 强推理
LLaMA20237-65B开源标杆
Mistral20237B高效架构
Qwen2023-0.5-72B中文能力强

核心特点

因果(单向)注意力:每个位置只能看到之前的 token
  → 适合「生成」任务

训练目标:预测下一个 token
  P(text) = ∏ P(wₜ | w₁, ..., wₜ₋₁)

为什么 Decoder-only 胜出?
  ├── 生成能力天然适配对话、写作等高价值应用
  ├── 简单的架构更容易扩展到超大规模
  ├── 「预测下一个词」是天然的海量自监督任务
  └── 理解能力可以通过规模涌现出来

Decoder-only 的胜利不是因为它在某个维度上更强,而是因为它的简单性使得扩展变得容易。 当规模足够大时,一个「只会预测下一个词」的模型,竟然也能理解语言——理解是生成的副产品。

Encoder-Decoder:T5 家族

代表模型

模型年份创新
T52019「文本到文本」统一框架
BART2019去噪自编码器
mBART2020多语言版本
PEGASUS2020专为摘要设计
Flan-T52022指令微调

T5 的「文本到文本」框架

T5 将所有 NLP 任务统一为「输入文本 → 输出文本」:

翻译:
  输入:"translate English to German: That is good"
  输出:"Das ist gut"

摘要:
  输入:"summarize: [长文章]"
  输出:"[摘要]"

分类:
  输入:"cola sentence: The course is jumping well."
  输出:"unacceptable"

Encoder-Decoder 的优势与局限

优势局限
输入和输出可以不同长度架构比 Decoder-only 复杂
适合翻译、摘要等序列转换扩展到超大规模不如 Decoder-only 顺畅
编码器提供完整输入理解在纯生成任务上不一定优于 Decoder-only

架构选择的决定因素

选择哪个架构?

  需要理解文本 → Encoder-only(BERT)
  需要生成文本 → Decoder-only(GPT)
  需要转换序列 → Encoder-Decoder(T5)
  不确定/想要通用 → Decoder-only(趋势)

现代 Transformer 的改进

注意力效率

技术解决的问题方法
Flash Attention注意力计算内存效率分块计算,减少显存访问
稀疏注意力长序列的计算复杂度只关注部分位置
线性注意力O(n²) 复杂度用核函数近似

架构改进

改进说明
Pre-LN vs Post-LN层归一化的位置影响训练稳定性
RoPE 旋转位置编码更好的相对位置表示
GQA 分组查询注意力减少 KV Cache 大小
SwiGLU 激活函数替代 ReLU 的更好选择

这些改进看似零散,但共同指向一个目标:让 Transformer 在保持架构简洁性的同时,跑得更快、吃得更少、走得更远


本节小结

架构代表优势领域趋势
Encoder-onlyBERT文本理解理解任务仍被使用
Decoder-onlyGPT文本生成当前主流
Encoder-DecoderT5序列转换特定任务

思考题

  1. 为什么 Decoder-only 架构最终成为主流,而不是最初看起来最「完整」的 Encoder-Decoder?
  2. 现代 AI 应用中,哪些任务仍然适合用 BERT(Encoder-only)而不是 GPT?
  3. Transformer 的架构还有多大的改进空间?我们需要全新的架构吗?

延伸阅读

  • Raffel et al., Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer, 2019 — T5 论文
  • Dao et al., FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness, 2022 — Flash Attention 论文
  • Su et al., RoFormer: Enhanced Transformer with Rotary Position Embedding, 2021 — RoPE 论文