BERT 的掩码语言模型(MLM)任务与 GPT 的因果语言建模(CLM)任务有何根本区别?
BERT 的 MLM 与 GPT 的 CLM:根本区别
一、任务定义对比
BERT — 掩码语言模型(Masked Language Model, MLM)
输入: "The man went to the [MASK] to buy a cup of coffee"
目标: 预测 [MASK] → "store"
核心机制:随机遮盖输入中 15% 的 token,模型需要利用被遮盖词的左右两侧上下文来预测它。
GPT — 因果语言建模(Causal Language Modeling, CLM)
输入: "The man went to the store to buy a cup of"
目标: 预测下一个词 → "coffee"
核心机制:自回归地从前到后逐词预测,每个位置只能看到左侧(历史)上下文,不能看到右侧(未来)信息。
二、根本区别的五个维度
1. 信息可见方向 — 最本质的区别
| 维度 | BERT (MLM) | GPT (CLM) |
|---|---|---|
| 上下文方向 | 双向(左 + 右) | 单向(仅左) |
| 预测目标时 | 能看到目标词两侧的所有词 | 只能看到目标词之前的词 |
这是两者最根本的分歧,直接源于注意力掩码的设计:
BERT 的注意力矩阵(全双向): GPT 的注意力矩阵(因果/下三角):
w1 w2 w3 w4 w1 w2 w3 w4
w1 [ ✓ ✓ ✓ ✓ ] w1 [ ✓ ✗ ✗ ✗ ]
w2 [ ✓ ✓ ✓ ✓ ] w2 [ ✓ ✓ ✗ ✗ ]
w3 [ ✓ ✓ ✓ ✓ ] w3 [ ✓ ✓ ✓ ✗ ]
w4 [ ✓ ✓ ✓ ✓ ] w4 [ ✓ ✓ ✓ ✓ ]
✓ = 可以 attend ✗ = 被 mask 遮蔽
BERT 中每个 token 可以关注所有位置的 token;GPT 中每个 token 只能关注自身及之前的位置。
2. 训练目标与损失函数
BERT (MLM):
LMLM=−∑i∈MASKlogP(wi∣w∖i)\mathcal{L}_{\text{MLM}} = -\sum_{i \in \text{MASK}} \log P(w_i \mid w_{\setminus i})LMLM=−i∈MASK∑logP(wi∣w∖i)
- w∖iw_{\setminus i}w∖i 表示除被遮盖词外的所有词(双向上下文)
- 本质是完形填空(Cloze task)
GPT (CLM):
LCLM=−∑t=1TlogP(wt∣w1,w2,...,wt−1)\mathcal{L}_{\text{CLM}} = -\sum_{t=1}^{T} \log P(w_t \mid w_1, w_2, ..., w_{t-1})LCLM=−t=1∑TlogP(wt∣w1,w2,...,wt−1)
- 每个位置只依赖历史序列
- 本质是自回归生成(Autoregressive generation)
3. 架构设计差异
| 设计选择 | BERT | GPT |
|---|---|---|
| 架构类型 | Encoder-Only(Transformer 编码器) | Decoder-Only(Transformer 解码器) |
| 注意力类型 | 双向自注意力 | 因果自注意力(Causal Self-Attention) |
| 位置编码 | 可学习的绝对位置编码 | 可学习/旋转位置编码 |
| 特殊预训练任务 | MLM + NSP(下一句预测) | 纯 CLM |
架构差异的根源在于:BERT 的编码器天然支持双向注意力(没有解码器中的因果掩码),而 GPT 的解码器天然带有因果掩码以防止"看到未来"。
4. 擅长的任务类型
┌──────────────────────────────────────────────┐
│ 自然语言理解 (NLU) │
│ 分类、NER、问答、情感分析、语义相似度... │
│ ← BERT 的强项(双向上下文) │
├──────────────────────────────────────────────┤
│ 自然语言生成 (NLG) │
│ 文本续写、摘要、翻译、对话、代码生成... │
│ ← GPT 的强项(自回归生成) │
└──────────────────────────────────────────────┘
| 任务类型 | BERT (MLM) | GPT (CLM) |
|---|---|---|
| 文本分类 | ✅ 强 | ⚠️ 可用但非最优 |
| 命名实体识别 | ✅ 强 | ⚠️ 可用但非最优 |
| 阅读理解(抽取式) | ✅ 强 | ⚠️ 可用但非最优 |
| 文本生成 | ❌ 不擅长 | ✅ 强 |
| 开放式对话 | ❌ 不擅长 | ✅ 强 |
| 零样本/少样本 | ❌ 不支持 | ✅ 强(GPT-3+) |
根本原因:BERT 的双向注意力在训练时能看到"未来"词,但推理生成时无法自回归地逐词产出;GPT 的因果注意力天然支持从左到右的生成过程。
5. 训练效率与利用率
| 维度 | BERT (MLM) | GPT (CLM) |
|---|---|---|
| 每条样本的预测位置 | 仅被 mask 的 ~15% token | 所有 token(每个位置都预测下一个) |
| 训练信号密度 | 较低(大部分 token 不参与预测) | 较高(每个 token 都产生梯度) |
| [MASK] 标记的预训练-微调差异 | 存在(微调时无 [MASK]) | 不存在(无特殊标记) |
BERT 的 MLM 存在预训练-微调不一致问题:预训练时输入含 [MASK] 伪标记,但下游微调任务中不存在这些标记。BERT 通过混合策略缓解(80% 替换为 [MASK],10% 替换为随机词,10% 保持原词),但问题仍部分存在。GPT 的 CLM 则没有此问题。
三、一句话总结本质区别
BERT 的 MLM 是"看着上下文猜空格"(双向完形填空),适合理解;GPT 的 CLM 是"看着前文猜下一个词"(单向自回归生成),适合生成。
这一根本区别决定了两者的发展路线:
BERT 路线(理解优先):
BERT → RoBERTa → ALBERT → DeBERTa → 编码器模型持续在 NLU 基准上刷新
GPT 路线(生成优先):
GPT-1 → GPT-2 → GPT-3 → GPT-4 → 大规模自回归模型走向通用智能
值得注意的是,后来的统一架构(如 T5)通过 Encoder-Decoder 设计同时融合了双向理解(编码器端)和自回归生成(解码器端),用统一的 Text-to-Text 框架弥合了这两条路线的分歧。
更多推荐



所有评论(0)