本站内容由 AI 生成,可能存在错误。如发现问题,欢迎到 GitHub Issues 反馈。

BERT 与 GPT:理解与生成的两条路线

BERT 与 GPT:理解与生成的两条路线

更新于 2026-04-23

简介:同一个 Transformer 的两种用法

2017 年 Transformer 问世后,NLP 社区面临一个关键选择:如何用这个强大的架构来做预训练? 两条路线几乎同时诞生:

  • BERT (2018):遮住句子中的一些词,让模型从上下文预测被遮盖的词——学会理解(encoder)
  • GPT (2018):给模型一段前文,让它预测下一个词——学会生成(decoder)

这两条路线分别主导了 NLP 的两个方向:自然语言理解(NLU)和自然语言生成(NLG)。理解它们的区别,是掌握现代 NLP 的基础。

Encoder vs Decoder:Attention Mask 对比
Encoder vs Decoder Attention Mask 对比BERT (Encoder)全矩阵 — 双向双向 Attention:所有 token 互相可见IloveNLP.IloveNLP.可见遮蔽GPT (Decoder)下三角 — 因果因果 Attention:只能看到之前的 tokenIloveNLP.IloveNLP.可见遮蔽vs

从静态到上下文:预训练的动机

在 BERT/GPT 之前,NLP 的标准流程是:用 Word2Vec 或 GloVe 得到静态词向量,再接上任务特定的模型。问题在于,静态词向量无法区分多义词——“bank”(银行)和 “bank”(河岸)有相同的向量。

2018 年 ELMo 率先使用双向 LSTM 产生上下文相关的词向量,证明了预训练 + 微调范式的巨大潜力。BERT 和 GPT 都沿着这条路走下去,但选择了 Transformer 作为骨干网络——更好的并行能力、更长的上下文窗口、更强的表达力。

预训练任务对比:MLM vs CLM
MLM vs CLM 预训练任务对比MLM (Masked Language Model)BERT:填空题Thecat[MASK]satonthe[MASK]mat← 左右上下文 → 汇聚预测被遮盖的词CLM (Causal Language Model)GPT:接龙游戏Thecatsatonthemat→ 从左到右,每个 token 预测下一个vs

BERT:理解派

核心思想:Masked Language Model (MLM)

BERT 的训练方式非常直觉:随机遮盖(mask)输入中 15% 的 token,让模型从双向上下文预测被遮盖的词。

LMLM=E[iMlogp(xix\M)]\mathcal{L}_{\text{MLM}} = -\mathbb{E}\left[\sum_{i \in \mathcal{M}} \log p(x_i \mid x_{\backslash\mathcal{M}})\right]

其中 M\mathcal{M} 是被遮盖位置的集合,x\Mx_{\backslash\mathcal{M}} 是所有未被遮盖的 token。关键在于 xix_i 可以同时看到左边和右边的上下文——这就是”双向”的含义。

试试下面的交互演示,亲身体验 BERT 的训练方式:

Masked Language Model 交互演示点击 [MASK] 选择正确的词,体验 BERT 的训练方式[MASK]法国[MASK]也是世界著名旅游城市被遮盖: 2 个 token | 已揭示: 0/2训练目标:P(w_masked | context) = P(w_i | x_1, ..., x_{i-1}, x_{i+1}, ..., x_n)

为什么双向重要?

考虑 “I went to the bank to deposit money” 和 “I sat on the river bank”。如果只看左边的 “I went to the”,无法区分两个含义;但如果同时看到右边的 “deposit money”,意思就很明确了。BERT 的双向 attention 让每个 token 都能获取全局信息

NSP:Next Sentence Prediction

BERT 原始论文还引入了 NSP(Next Sentence Prediction)任务:给两个句子,判断第二个是否是第一个的后续。不过后来的研究(RoBERTa, 2019)发现 NSP 对性能帮助不大,现代 BERT 变体通常不再使用它。

[CLS] Token 的角色

BERT 在输入开头插入一个特殊的 [CLS] token。经过多层 Transformer 编码后,[CLS] 位置的向量汇聚了整个句子的信息,可以作为句子级分类的表示。结尾的 [SEP] 标记句子边界。

BERT 实战:联合 NLU 模型

BERT 在自然语言理解领域的一个经典应用是联合意图识别与槽位填充(Joint Intent Classification and Slot Filling, Chen et al., 2019)。

什么是 Intent + Slot?

在对话系统中,NLU 需要同时完成两件事:

  • Intent(意图识别):用户想干什么?→ “BookFlight”、“SetAlarm”
  • Slot(槽位填充):关键信息是什么?→ 出发地、目的地、时间

BIO 标注体系

槽位填充使用 BIO 序列标注:

  • B-xxx:某个槽位的开始(Begin)
  • I-xxx:某个槽位的内部(Inside)
  • O:不属于任何槽位(Outside)

例如:“从 北京上海 明天” → “O B-depart O B-arrive B-date

联合训练

BERT 的联合模型非常优雅:共享同一个 encoder,在顶部接两个不同的 head:

L=αLintent+(1α)Lslot\mathcal{L} = \alpha \mathcal{L}_{\text{intent}} + (1-\alpha) \mathcal{L}_{\text{slot}}
  • [CLS] 向量 → Intent 分类头
  • 每个 token 向量 → Slot 序列标注头

下面的交互演示展示了完整的 BERT NLU 流水线:

输入与分词
[CLS]北京上海明天机票[SEP]

GPT:生成派

核心思想:自回归语言建模

GPT 的训练方式同样直觉:给前面的词,预测下一个词。数学上,这是最大化从左到右的条件概率:

LAR=t=1Tlogp(xtx1,x2,,xt1)\mathcal{L}_{\text{AR}} = -\sum_{t=1}^{T} \log p(x_t \mid x_1, x_2, \ldots, x_{t-1})

关键区别在于:GPT 只能看到左边的上下文(因果/causal attention),不能看到未来的 token。这限制了理解能力,但赋予了生成能力。

自回归生成:逐词预测输入提示法国首都因果注意力遮罩可见被遮盖当前步P(x_t | x_1, x_2, ..., x_{t-1})

GPT 的三次进化

GPT 家族展现了一条清晰的规模化路线:

版本参数量年份关键能力
GPT-1117M2018预训练 + 微调(仍需标注数据)
GPT-21.5B2019零样本(zero-shot)能力涌现
GPT-3175B2020In-context learning:给几个例子就能做新任务

Kaplan et al. (2020) 发现了缩放定律(Scaling Laws):模型损失随参数量呈幂律下降:

L(N)=(NcN)αN,αN0.076L(N) = \left(\frac{N_c}{N}\right)^{\alpha_N}, \quad \alpha_N \approx 0.076
GPT 系列:参数规模与能力演进20406080100100M1B10B100B参数量(对数尺度)模型能力1GPT-1117M (2018)2GPT-21.5B (2019)3GPT-3175B (2020)Kaplan 缩放定律:L(N) = (Nc / N)^{α_N}, α_N ≈ 0.076

分类 vs 生成:同一任务的两种解法

BERT 和 GPT 代表了两种截然不同的任务解决范式:

  • BERT(分类):为每个任务训练一个特化的 head,输出结构化结果。快速、准确、确定性强,但需要标注数据和逐任务微调。
  • GPT(生成):把一切任务都转化为”文本生成”。灵活、零样本、统一接口,但速度慢、输出不确定性高。
Classification vs Generation:同一任务的两种解法情感分析意图识别实体提取BERT / 分类方式这家餐厅的服务真的太棒了!BERT Encoder[CLS] → LinearSoftmaxPositive (0.96)GPT / 生成方式分析以下文本的情感:"这家餐厅的服务真的太棒了!"GPT Decoder (autoregressive)Token-by-token generationParse generated text积极。用户表达了对餐厅服务的高度满意。Trade-offs速度9530准确率9278灵活性3095数据需求8015BERT (分类)GPT (生成)

殊途同归:为什么 Decoder-only 最终胜出

回看历史,GPT 路线最终成为主流。原因是多方面的:

  1. 统一性:生成范式可以统一所有 NLP 任务——分类、翻译、摘要、问答都可以表达为”给上文,续下文”
  2. 规模优势:缩放定律在 decoder-only 架构上表现最佳;更大的模型 = 更强的能力
  3. 涌现能力:当模型足够大时,零样本和少样本能力自然涌现,不再需要任务特定的微调
  4. 数据效率:自回归目标只需要无标注文本,互联网提供了近乎无限的训练数据

BERT 的遗产

虽然 GPT 范式成为主流,BERT 并未消亡。它的遗产体现在:

  • 嵌入模型:BERT 风格的双向编码器仍然是文本嵌入(sentence embedding)的主流架构
  • 小模型场景:在延迟敏感、资源受限的场景(移动端、边缘设备),BERT 级别的小模型 + 分类头仍然是最佳选择
  • 编码器思想:现代模型(如 T5)融合了编码器和解码器的优势

总结

维度BERTGPT
架构Encoder (双向)Decoder (因果/单向)
预训练MLM (完形填空)自回归 (预测下一词)
核心能力理解、分类、匹配生成、推理、对话
微调需求必须(每任务一个 head)可选(in-context learning)
代表应用NLU、搜索排序、嵌入对话、翻译、代码生成

BERT 和 GPT 并非对立,而是 Transformer 这棵树上的两根分支。理解它们的设计选择,能帮助你更好地选择适合特定场景的模型架构。