土法炼钢兴趣小组的算法知识备份

【Transformer 与注意力机制】30|预训练目标:BERT、GPT、T5 其实在学三种不同的事

文章导航

分类入口
transformer
标签入口
#transformer#pretraining#gpt#bert#t5

目录

“预训练”这个词很容易把问题说模糊。很多文章会把它讲成一句泛化描述:先拿大量无标注数据训模型,再去做下游任务。这样说不算错,但会掩盖真正关键的选择:模型到底在预训练阶段预测什么?

同样都是喂海量文本,不同训练目标学到的能力会非常不一样:

这不是小差别,而是直接决定了模型架构、推理方式、下游迁移路径,甚至决定了后来哪条路线能扩到几百亿参数、几万亿 token。

这一篇就把现代大模型前史里最重要的三条预训练路线放在一起讲:GPT、BERT、T5/BART。读完之后你应该能把“预训练目标”从一句流行语变成一个真正有区分力的技术判断。


一、预训练目标就是“让模型在自监督里学什么任务”

预训练的数据通常没有人工标签,所以监督信号必须从数据本身构造出来。这就是自监督学习。

对文本来说,最常见的构造方式有三类:

  1. 自回归语言建模(Causal Language Modeling, CLM)
    给历史,预测下一个 token。
  2. 掩码语言建模(Masked Language Modeling, MLM)
    把一部分 token 遮住,预测被遮住的内容。
  3. 序列到序列去噪(Denoising Seq2Seq)
    先把输入破坏,再让模型恢复原文。

这三类目标分别对应三种不同的“世界接口”。

1.1 它们不只是 loss 不一样,连模型最擅长的行为都不一样

这是理解预训练目标最重要的一点。

你训练时逼模型做什么,它就会把参数预算主要花在那件事上。


二、GPT 路线:自回归语言建模为什么最终赢成主航道

先看最简单也最有统治力的一条路线:next-token prediction。

2.1 目标定义非常朴素

给定 token 序列 \((x_1, x_2, \dots, x_T)\),训练目标是最大化:

\[ \sum_{t=1}^{T} \log p(x_t \mid x_{<t}) \]

也就是:当前位置只能看左边,预测自己是什么。这正好对应 decoder-only 结构。

2.2 它最强的地方是训练-推理完全一致

这一点怎么强调都不为过。

训练时模型学的是:

给前缀,预测下一个 token

推理时模型做的也是:

给前缀,采样下一个 token

目标和用法天然一致,这让 CLM 路线特别容易扩展到通用生成模型。

2.3 它对互联网文本尤其自然

网页、书籍、论坛、代码、对话记录,几乎都可以直接串成 token 流来做 next-token prediction,不需要额外构造 mask、span 或重写输入输出格式。

这带来三点巨大优势:

  1. 数据管线简单;
  2. 训练吞吐高;
  3. 模型接口统一。

这也是 GPT 路线后来越做越大的关键背景:它特别适合把“任何文本数据”都转成统一训练任务。

2.4 它的代价:双向理解不是结构内建的

CLM 只能看左上下文,这意味着模型如果想在理解任务上用好右上下文,只能靠更长上下文建模、提示工程或额外技巧。它不是做不到理解,而是在结构上不如 encoder-only 那么“天生对口”。

但随着模型规模变大、训练数据暴涨,这个代价在很多场景下被统一接口的好处压过去了。


三、BERT 路线:掩码语言建模为什么一度统治理解任务

和 GPT 相比,BERT 的目标完全换了视角。

3.1 MLM 的核心:把输入看完,再补缺失位置

最经典的 BERT 训练方式是:

  1. 随机抽一部分 token;
  2. 把它们替换成 [MASK]、随机 token 或保留原词;
  3. 让模型预测原本被抽中的 token。

所以目标更像:

\[ \sum_{i \in \mathcal{M}} \log p(x_i \mid x_{\setminus \mathcal{M}}) \]

其中 \(\mathcal{M}\) 是被 mask 的位置集合。

3.2 它的优势:天然双向

因为模型在预测某个被遮住位置时,可以同时看左边和右边,所以它特别适合理解任务:

这就是为什么 BERT 一出来,几乎把 NLP 理解榜单横扫了一遍。

3.3 它的代价:训练目标和生成接口不一致

MLM 最大的问题不是效果不好,而是接口不统一。

训练时模型看到的是带 [MASK] 的序列;推理时真实文本里通常没有 [MASK]。这会导致两个问题:

  1. pretrain-finetune gap:训练分布和使用分布不完全一致;
  2. 直接生成文本很不自然。

你当然可以让 BERT 做生成,但那不是它最顺手的工作方式。

3.4 这条路线为什么后来没有扩成通用 LLM 主航道

原因不是它不强,而是它太偏“理解器”。

在 2018-2020 那个阶段,理解任务是 NLP 的主战场,所以 BERT 路线极其成功;但当行业开始追求:

next-token prediction 的统一性优势就越来越大,BERT 这条路线逐渐退到专用 encoder 模型的位置。


四、T5 / BART 路线:去噪序列到序列,其实更像“条件重建”

除了 GPT 和 BERT,还有一条很重要的中间路线:用 encoder-decoder 做去噪恢复。

4.1 它的基本思路是“故意破坏,再恢复原文”

这类方法先对输入做 corruption,再让模型输出原始文本。常见破坏方式包括:

于是训练目标不再是“预测单个缺失 token”,而更像“把一个坏掉的输入修回来”。

4.2 BART 和 T5 的区别主要在破坏方式与统一接口

例如:

输入:  The <extra_id_0> walks in <extra_id_1> park.
输出:  dog <extra_id_1> the

这种目标对摘要、翻译、问答等条件生成任务很友好,因为模型从一开始就是 encoder-decoder。

4.3 它的优势:生成和理解都照顾到了

这条路线的好处是平衡:

所以在摘要、翻译、条件生成上,这条路线长期都很强。

4.4 它的代价:结构和工程更重

相比 decoder-only:

所以它很强,但在“大一统通用 LLM”这条路上不如 decoder-only 干净。


五、三条路线的真正差别,不在名字,而在接口哲学

把三种目标压成一张表,差别就非常清楚了:

路线 训练目标 典型架构 最强能力 最大代价
GPT / CLM 预测下一个 token decoder-only 生成、续写、统一接口 双向理解不是结构内建
BERT / MLM 预测被 mask 的 token encoder-only 双向理解、判别任务 不自然支持生成
T5/BART / Denoising 从破坏输入恢复原文 encoder-decoder 条件生成、任务统一 结构更重、工程更复杂

这张表里最关键的一列是“最大代价”。因为预训练目标的竞争,最终往往不是谁单点指标最好,而是谁在能力覆盖、数据管线、推理接口、规模扩展这四件事上更均衡。

从这个角度看,GPT 路线后来赢成主航道,就没那么神秘了。


六、为什么最后是 GPT 路线越走越宽

把过去几年发生的事浓缩一下,原因主要有四个。

6.1 数据利用最直接

互联网文本天然就是一个长 token 流。CLM 不需要人为造 mask、造 span、造 corruption,几乎可以直接开训。

6.2 产品接口最统一

无论是:

最后都能包装成“给前缀,继续生成”。

6.3 规模化规律更干净

当参数量、数据量、计算量一起往上堆时,decoder-only 的训练目标和推理目标始终对齐。工程复杂度相对也低,这让它特别适合大规模扩展。

6.4 指令微调和 RLHF 把“不会听话”这个短板补上了

GPT 路线最大的早期缺点是:虽然会续写,但不一定按你想要的方式回答问题。后来指令微调、偏好优化把这个缺口补上,于是它从“会写”变成“会按指令写”,统一接口优势进一步放大。


七、预训练目标会如何影响下游迁移

这件事非常实际。不同目标,不只是 pretrain 阶段不同,fine-tuning 习惯也会不同。

7.1 BERT 路线更适合挂任务头

句分类、token 分类、span 抽取,往往直接在 encoder 输出上挂一个小头就行。

7.2 GPT 路线更适合 prompt / instruction 接口

你给它一个自然语言前缀,它就继续生成。这让“统一成自然语言交互”变得极其方便。

7.3 Seq2Seq 路线更适合显式输入输出分离

翻译、摘要、数据到文本、问答生成,天然就是一段输入到一段输出。encoder-decoder 在这类任务上往往更顺手。

所以不能说某个预训练目标“绝对更先进”,而要看你最后想把模型当成什么工具。


八、几个常见误解

8.1 “预训练就是无监督地先把模型训一下”

太笼统了。关键不是“先训一下”,而是“让模型在无标注数据上做什么自监督任务”。

8.2 “BERT 比 GPT 更懂语义,所以路线更高级”

BERT 在理解任务上结构更对口,但这不代表 GPT 不懂语义。随着规模提升,GPT 也能学出很强的语义能力。真正差别在于目标和接口。

8.3 “MLM 只是把 next-token prediction 换了个写法”

不是。它彻底改变了上下文可见性、模型架构和下游适配方式。

8.4 “T5/BART 只是 BERT 和 GPT 的折中版”

也不准确。它们有自己的训练哲学:通过去噪恢复学习条件生成,而不是简单混合前两者。

8.5 “今天大模型都用 GPT 目标,所以别的路线没价值了”

不对。encoder-only 在检索、分类、多模态编码等场景仍然非常重要;encoder-decoder 在翻译、摘要、语音和一些结构化生成任务里也长期有竞争力。


九、结语

预训练目标之争,本质上是在回答一个很朴素但后果极大的问题:让模型在大规模文本上先学会什么动作。 GPT 让它学会续写,BERT 让它学会补缺,T5/BART 让它学会修复。三条路线都成功过,但当行业目标从“单项任务最优”转向“一个模型覆盖尽量多任务”时,next-token prediction 的统一接口优势最终胜出。

下一篇我们就沿着这条胜出的路线往下走:模型已经会续写了,为什么还不够“听话”?答案就是后来改变 LLM 产品形态的那一步——微调,以及再下一步的指令微调。


十、参考文献

  1. Radford, A. et al. “Improving Language Understanding by Generative Pre-Training.” OpenAI Technical Report, 2018. GPT 路线的起点。
  2. Devlin, J. et al. “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.” NAACL 2019. MLM 路线的标志性论文。
  3. Liu, Y. et al. “RoBERTa: A Robustly Optimized BERT Pretraining Approach.” arXiv:1907.11692, 2019. MLM 路线的强化版代表。
  4. Lewis, M. et al. “BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension.” ACL 2020. 去噪 seq2seq 路线代表。
  5. Raffel, C. et al. “Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer.” JMLR 2020. T5 的统一 text-to-text 路线。
  6. Brown, T. et al. “Language Models are Few-Shot Learners.” NeurIPS 2020. decoder-only 规模化后的代表结果。

← 上一篇:29|Tokenization | 下一篇:31|微调演进

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-04-15 · transformer

【Transformer 与注意力机制】39|T5:把所有 NLP 任务统一成 Text-to-Text

T5 的核心不是又发明了一种 Transformer,而是把翻译、摘要、分类、问答都改写成“输入文本到输出文本”的统一格式。本文解释 T5 为什么选择 Encoder-Decoder 架构,span corruption 和 BERT/GPT 的目标有什么差异,C4 和系统化消融实验为什么让 T5 成为迁移学习路线的重要基准。

2026-04-15 · transformer

【Transformer 与注意力机制】37|BERT:双向编码器为什么适合理解任务

BERT 不是“早期大模型”的历史遗物,而是 Encoder-only Transformer 路线的代表。本文解释为什么 BERT 选择双向编码器,Masked Language Modeling 到底在学什么,Next Sentence Prediction 为什么后来被质疑,以及为什么 BERT 天然适合分类、匹配、抽取这类理解任务,却不是自回归生成模型。

2026-04-15 · transformer

【Transformer 与注意力机制】22|Encoder 详解:6 层堆叠到底在做什么

把 Transformer encoder 从“左半边”这个模糊概念拆成可操作的结构:单层里 self-attention、FFN、残差、LayerNorm 各做什么;6 层堆叠为什么不是重复劳动;encoder 输出为什么适合理解任务而不直接擅长生成;以及它和 decoder-only、encoder-decoder 两条路线到底差在哪。


By .