1. 核心结论
BERT 的核心定位是"读懂文本":采用双向 Transformer Encoder,通过同时查看目标词左右两侧上下文,学习适合分类、匹配、信息抽取和阅读理解的语义表示。
GPT-3 的核心定位是"续写文本并通过生成完成任务":采用因果自回归的 Transformer Decoder,根据前文逐 token 预测后续内容,因此天然适合对话、写作、翻译、摘要和基于提示词的任务执行。
BERT 与 GPT-3 的差异不只是"编码器 vs. 解码器"。原始 BERT-Large 约 3.4 亿参数 ,而完整 GPT-3 为 1750 亿参数 ,二者参数规模相差约 500 倍;因此能力差异同时受到架构、训练目标、数据规模和参数规模影响。([ACL Anthology][1])
2. 总体结构对比
| 对比维度 | BERT | GPT-3 |
|---|---|---|
| 全称 | Bidirectional Encoder Representations from Transformers | Generative Pre-trained Transformer 3 |
| Transformer 类型 | Encoder-only | Decoder-style autoregressive Transformer |
| 注意力方向 | 双向注意力,token 可关注左右上下文 | 因果注意力,token 只能关注此前内容 |
| 预训练目标 | Masked Language Model,原论文还包括 NSP | Next Token Prediction,自回归语言建模 |
| 主要能力 | 文本理解、分类、抽取、匹配 | 文本生成、续写、问答、对话、提示学习 |
| 典型迁移方式 | 针对任务微调参数 | Zero-shot / One-shot / Few-shot 提示完成任务 |
| 原始代表规模 | BERT-Base:110M;BERT-Large:340M | GPT-3:175B |
| 原始最大上下文长度 | 512 tokens | 2048 tokens |
| 输出形式 | 句子表示、token 表示、分类结果、答案区间 | 连续生成的 token 序列 |
BERT 论文明确指出,其 Transformer 使用双向自注意力;相对地,GPT 类型模型使用受限注意力,每个 token 只能关注左侧上下文。GPT-3 论文则将其描述为 1750 亿参数的自回归语言模型,并以无梯度更新的提示方式评估其任务适应能力。
3. 模型结构差异
3.1 BERT:双向 Encoder 表示模型
BERT 的输入通常由以下部分组成:
text
[CLS] 句子 A [SEP] 句子 B [SEP]
其输入嵌入由三部分相加得到:
text
Token Embedding + Segment Embedding + Position Embedding
其中:
[CLS]对应的最终隐藏状态通常用于句子级分类任务;[SEP]用于分隔两个句子;- Segment Embedding 用于区分句子 A 与句子 B;
- 每个 token 都可以同时关注其左侧和右侧内容。
例如,在句子:
text
这家银行位于河岸附近。
判断"银行"表示金融机构还是地理岸边时,BERT 能同时利用前后的语义信息进行表示建模。
BERT 原论文提供了两种主要规格:
| 模型 | Transformer 层数 | 隐藏维度 | 注意力头数 | 参数量 |
|---|---|---|---|---|
| BERT-Base | 12 | 768 | 12 | 110M |
| BERT-Large | 24 | 1024 | 16 | 340M |
([ACL Anthology][1])
3.2 GPT-3:因果自回归 Decoder 模型
GPT-3 使用与 GPT-2 同类的自回归 Transformer 架构,并在部分层中交替使用稠密注意力与局部稀疏注意力。其基本工作方式为:
text
输入前文 → 预测下一个 token → 将新 token 加入上下文 → 继续预测
例如:
text
输入:人工智能正在改变
输出:制造业、医疗、教育和软件开发方式......
在生成"制造业"时,模型只能读取此前的"人工智能正在改变",不能读取未来尚未生成的内容。
完整 GPT-3 模型规格如下:
| 模型 | Transformer 层数 | 隐藏维度 | 注意力头数 | 参数量 |
|---|---|---|---|---|
| GPT-3 | 96 | 12288 | 96 | 175B |
GPT-3 的训练上下文窗口为 2048 tokens,所有模型总计训练 3000 亿 tokens。
4. 注意力机制差异
4.1 BERT 的双向注意力
假设输入为:
text
我 喜欢 吃 苹果
当 BERT 建模"吃"时,可以同时关注:
text
左侧:我、喜欢
右侧:苹果
其注意力关系可以抽象为:
text
我 喜欢 吃 苹果
↕ ↕ ↕ ↕
所有 token 之间均可相互关注
这使 BERT 特别适合需要完整上下文判断的任务,例如:
- 文本分类;
- 情感分析;
- 命名实体识别;
- 自然语言推断;
- 抽取式问答;
- 语义匹配与检索排序。
4.2 GPT-3 的因果注意力
GPT-3 只能从左到右读取信息:
text
我 → 喜欢 → 吃 → 苹果
注意力关系为:
text
我 喜欢 吃 苹果
↓ ↓ ↓ ↓
只能关注自己及此前已经出现的 token
例如生成"苹果"时,模型能够看到:
text
我 喜欢 吃
但生成"喜欢"时,不能预先看到后面的"吃 苹果"。
这种设计牺牲了一部分双向语义分析便利性,但使模型可以自然地进行开放式文本生成。
5. 预训练目标差异
5.1 BERT:Masked Language Model
BERT 会随机遮挡输入中的一部分 token,然后根据左右上下文恢复被遮挡内容。
例如:
text
输入:今天的天气非常 [MASK],适合外出。
目标:好
BERT 原始训练中随机选择 15% 的 WordPiece token 作为预测目标,其中:
| 处理方式 | 比例 |
|---|---|
替换为 [MASK] |
80% |
| 替换为随机 token | 10% |
| 保持原 token 不变 | 10% |
此外,原始 BERT 还使用了 Next Sentence Prediction,即判断句子 B 是否真实紧随句子 A,用于增强句子对关系建模能力。
其训练过程可以概括为:
text
完整上下文中挖去部分词 → 预测被遮挡词 → 学习双向语义表示
优势是:
- 能够充分利用上下文;
- 对歧义消解和句间关系判断友好;
- 对 token 级别任务非常有效。
局限是:
- 训练阶段使用
[MASK],实际推理输入通常没有[MASK]; - 原始 BERT 并不天然支持连续长文本生成。
5.2 GPT-3:自回归语言建模
GPT-3 的训练目标是预测下一个 token:
text
输入:今天的天气非常
目标:好
接下来继续:
text
输入:今天的天气非常好
目标:,
然后:
text
输入:今天的天气非常好,
目标:适合
其训练模式可以概括为:
text
根据已有文本预测后续文本 → 学习语言生成能力
优势是:
- 训练目标与推理生成方式一致;
- 天然支持长文本续写;
- 可以将分类、问答、翻译等任务统一转化为文本生成问题。
局限是:
- 分析某个词时不能直接同时查看其左右完整上下文;
- 在需要精确比较两段文本、细粒度语义判别或抽取定位的任务上,原始架构并不天然占优;
- GPT-3 论文指出,其在 WiC、ANLI 以及部分阅读理解任务上存在明显弱点,作者将其部分归因于缺少双向建模机制。
6. 语言理解任务上的差异
6.1 BERT 更适合传统判别式理解任务
BERT 的双向上下文建模使其适合从完整输入中提取稳定表示。
典型任务
| 任务 | BERT 的处理方式 |
|---|---|
| 情感分类 | 使用 [CLS] 表示预测正面/负面 |
| 文本相似度 | 输入两个句子,预测是否语义相似 |
| 自然语言推断 | 判断前提与假设是蕴含、矛盾或中立 |
| 命名实体识别 | 对每个 token 进行标签分类 |
| 抽取式问答 | 在文章中预测答案起始位置和结束位置 |
例如抽取式问答:
text
问题:Transformer 最初由谁提出?
文章:Transformer 由 Vaswani 等人在 2017 年提出。
BERT 可以同时读取问题与整段文章,然后直接预测:
text
答案起点:Vaswani
答案终点:2017 年
BERT 论文中,BERT-Large 在 SQuAD v1.1 测试集上取得 93.2 F1,在 GLUE 上取得 80.5 分,展示了其在语言理解和抽取式问答任务中的优势。([ACL Anthology][1])
6.2 GPT-3 通过提示完成理解任务
GPT-3 不一定需要针对每个任务额外训练分类头,而是可以将理解任务改写为生成任务。
例如情感分类:
text
输入:
影评:这部电影剧情紧凑,演员表现精彩。
情感:正面
影评:故事拖沓,结局令人失望。
情感:负面
影评:画面很美,节奏也非常舒服。
情感:
GPT-3 生成:
text
正面
这属于 Few-shot In-context Learning:仅在上下文中提供若干示例,不更新模型参数。
GPT-3 在 SuperGLUE 上的 few-shot 平均成绩为 71.8,高于原论文中报告的 fine-tuned BERT-Large 的 69.0;但其表现并不稳定,例如在词义比较任务 WiC 上仅取得 49.4,接近随机水平。也就是说,GPT-3 能依靠规模和提示在很多理解任务上表现强劲,但并不表示单向生成架构天然优于双向理解架构。
7. 语言生成任务上的差异
7.1 GPT-3 天然适合生成任务
GPT-3 的整个预训练过程就是学习:
text
给定前文,接下来应该生成什么?
因此,它可以直接用于:
| 生成任务 | 示例 |
|---|---|
| 文本续写 | 根据标题生成文章 |
| 对话生成 | 根据用户问题生成回复 |
| 开放式问答 | 根据问题直接生成答案 |
| 翻译 | 输入英文,生成中文 |
| 摘要 | 输入长文本,生成摘要 |
| 风格改写 | 将技术文字改写成通俗语言 |
| Prompt 任务执行 | 根据指令完成分类、抽取或推理 |
GPT-3 论文展示了其在文章生成方面的能力:在人类评估实验中,大模型生成的新闻文章越来越难被判断为机器生成文本。论文同时指出,GPT-3 的长文本生成仍可能出现语义重复、前后矛盾和长程一致性下降等问题。
7.2 原始 BERT 不适合自由生成
BERT 的任务是补全被遮挡的 token,而不是从左到右连续生成文本。
例如:
text
输入:深度学习在 [MASK] 识别中表现突出。
输出:图像
这很适合:
- 缺词填空;
- 文本修复;
- 语义判断;
- 信息抽取。
但如果要求生成一整段文章:
text
请写一段关于机器人导航的技术介绍。
原始 BERT 没有自然的逐步生成机制。虽然可以通过重复插入 [MASK]、重新采样或与 Decoder 组合等方式实现某些生成能力,但这已经不是原始 BERT 最擅长的使用方式。
8. 理解与生成能力对比总结
| 任务类型 | BERT | GPT-3 | 更适合的模型 |
|---|---|---|---|
| 文本分类 | 微调后非常有效 | 可通过提示完成 | 小规模专用任务通常 BERT |
| 情感分析 | 强 | 强,且可零样本/少样本 | 取决于部署需求 |
| 命名实体识别 | 非常适合 token 分类 | 可生成实体,但格式稳定性较弱 | BERT |
| 文本匹配/句对判断 | 双向语义建模更直接 | 可通过提示完成,但不总是稳定 | BERT |
| 抽取式问答 | 可精确定位答案区间 | 通常直接生成答案 | 需要定位时 BERT |
| 开放式问答 | 需要额外生成模块 | 天然支持 | GPT-3 |
| 文章续写 | 不擅长 | 天然支持 | GPT-3 |
| 对话系统 | 需要额外架构 | 天然支持 | GPT-3 |
| 翻译与摘要 | 通常需要 Encoder-Decoder 架构 | 可提示生成 | GPT-3 |
| 少样本任务迁移 | 通常需要微调 | 核心优势之一 | GPT-3 |
9. 为什么 BERT 更偏理解,而 GPT-3 更偏生成
BERT 的学习方式
text
观察完整上下文
↓
理解被遮挡词或句间关系
↓
得到高质量语义表示
↓
用于分类、识别、匹配和抽取
它更像一个"阅读理解器"。
GPT-3 的学习方式
text
读取已有前文
↓
预测后续 token
↓
不断扩展文本
↓
通过生成完成问答、写作与任务执行
它更像一个"语言生成器与提示驱动任务执行器"。
10. 工程应用中的选择建议
| 应用需求 | 推荐方案 | 原因 |
|---|---|---|
| 商品名称分类、意图识别、情感分类 | BERT / RoBERTa / 轻量 Encoder 模型 | 推理成本低、输出稳定 |
| 实体抽取、关键词定位、文档字段识别 | BERT 类模型 | token 级预测精度高 |
| 文本检索重排序、句子匹配 | BERT 类 Cross-Encoder | 双向交互充分 |
| 自动写作、对话、解释生成 | GPT 类生成模型 | 天然支持生成 |
| 少样本任务切换、指令式任务执行 | GPT 类模型 | 无需为每个任务重新微调 |
| 边缘设备固定类别 NLP 任务 | 蒸馏后的 BERT 类模型 | 模型小、吞吐高、易部署 |
| 通用智能助手或 Agent | GPT 类模型 | 可理解指令并生成行动计划 |
11. 总结
BERT 通过双向 Encoder 学习"文本是什么意思",适合理解、分类和抽取;GPT-3 通过自回归 Decoder 学习"文本接下来怎么写",适合生成、对话和基于提示的通用任务执行。
从工程角度看:
text
固定任务、低延迟、输出结构稳定 → BERT 类模型
开放任务、需要生成、少样本泛化 → GPT 类模型
参考链接:
1\]: https://aclanthology.org/N19-1423.pdf "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"