“预训练”这个词很容易把问题说模糊。很多文章会把它讲成一句泛化描述:先拿大量无标注数据训模型,再去做下游任务。这样说不算错,但会掩盖真正关键的选择:模型到底在预训练阶段预测什么?
同样都是喂海量文本,不同训练目标学到的能力会非常不一样:
- 预测下一个 token,学的是续写和生成;
- 猜被遮住的 token,学的是双向理解;
- 从被破坏的序列恢复原文,学的是条件重建。
这不是小差别,而是直接决定了模型架构、推理方式、下游迁移路径,甚至决定了后来哪条路线能扩到几百亿参数、几万亿 token。
这一篇就把现代大模型前史里最重要的三条预训练路线放在一起讲:GPT、BERT、T5/BART。读完之后你应该能把“预训练目标”从一句流行语变成一个真正有区分力的技术判断。
一、预训练目标就是“让模型在自监督里学什么任务”
预训练的数据通常没有人工标签,所以监督信号必须从数据本身构造出来。这就是自监督学习。
对文本来说,最常见的构造方式有三类:
- 自回归语言建模(Causal Language Modeling,
CLM)
给历史,预测下一个 token。 - 掩码语言建模(Masked Language Modeling,
MLM)
把一部分 token 遮住,预测被遮住的内容。 - 序列到序列去噪(Denoising
Seq2Seq)
先把输入破坏,再让模型恢复原文。
这三类目标分别对应三种不同的“世界接口”。
1.1 它们不只是 loss 不一样,连模型最擅长的行为都不一样
这是理解预训练目标最重要的一点。
- CLM 让模型学会“接着往下写”;
- MLM 让模型学会“读完整句后填空”;
- Denoising 让模型学会“从不完整输入重建正确输出”。
你训练时逼模型做什么,它就会把参数预算主要花在那件事上。
二、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 或重写输入输出格式。
这带来三点巨大优势:
- 数据管线简单;
- 训练吞吐高;
- 模型接口统一。
这也是 GPT 路线后来越做越大的关键背景:它特别适合把“任何文本数据”都转成统一训练任务。
2.4 它的代价:双向理解不是结构内建的
CLM 只能看左上下文,这意味着模型如果想在理解任务上用好右上下文,只能靠更长上下文建模、提示工程或额外技巧。它不是做不到理解,而是在结构上不如 encoder-only 那么“天生对口”。
但随着模型规模变大、训练数据暴涨,这个代价在很多场景下被统一接口的好处压过去了。
三、BERT 路线:掩码语言建模为什么一度统治理解任务
和 GPT 相比,BERT 的目标完全换了视角。
3.1 MLM 的核心:把输入看完,再补缺失位置
最经典的 BERT 训练方式是:
- 随机抽一部分 token;
- 把它们替换成
[MASK]、随机 token 或保留原词; - 让模型预测原本被抽中的 token。
所以目标更像:
\[ \sum_{i \in \mathcal{M}} \log p(x_i \mid x_{\setminus \mathcal{M}}) \]
其中 \(\mathcal{M}\) 是被 mask 的位置集合。
3.2 它的优势:天然双向
因为模型在预测某个被遮住位置时,可以同时看左边和右边,所以它特别适合理解任务:
- 分类;
- NER;
- 抽取式问答;
- 文本匹配;
- 检索。
这就是为什么 BERT 一出来,几乎把 NLP 理解榜单横扫了一遍。
3.3 它的代价:训练目标和生成接口不一致
MLM 最大的问题不是效果不好,而是接口不统一。
训练时模型看到的是带 [MASK]
的序列;推理时真实文本里通常没有
[MASK]。这会导致两个问题:
- pretrain-finetune gap:训练分布和使用分布不完全一致;
- 直接生成文本很不自然。
你当然可以让 BERT 做生成,但那不是它最顺手的工作方式。
3.4 这条路线为什么后来没有扩成通用 LLM 主航道
原因不是它不强,而是它太偏“理解器”。
在 2018-2020 那个阶段,理解任务是 NLP 的主战场,所以 BERT 路线极其成功;但当行业开始追求:
- 多任务统一接口;
- 对话与写作;
- 代码补全;
- agent 式交互;
next-token prediction 的统一性优势就越来越大,BERT 这条路线逐渐退到专用 encoder 模型的位置。
四、T5 / BART 路线:去噪序列到序列,其实更像“条件重建”
除了 GPT 和 BERT,还有一条很重要的中间路线:用 encoder-decoder 做去噪恢复。
4.1 它的基本思路是“故意破坏,再恢复原文”
这类方法先对输入做 corruption,再让模型输出原始文本。常见破坏方式包括:
- 随机 mask token;
- mask 整个 span;
- 打乱句子顺序;
- 删除片段;
- 插入噪声。
于是训练目标不再是“预测单个缺失 token”,而更像“把一个坏掉的输入修回来”。
4.2 BART 和 T5 的区别主要在破坏方式与统一接口
- BART 更像是“通用去噪自编码器”:可以对输入做多种破坏,再恢复原文。
- T5 则把所有任务都统一成 text-to-text,mask 的通常是 span,并用特殊 sentinel token 标出缺口。
例如:
输入: The <extra_id_0> walks in <extra_id_1> park.
输出: dog <extra_id_1> the
这种目标对摘要、翻译、问答等条件生成任务很友好,因为模型从一开始就是 encoder-decoder。
4.3 它的优势:生成和理解都照顾到了
这条路线的好处是平衡:
- encoder 负责双向编码输入;
- decoder 负责自回归生成输出;
- 很多任务都能自然转成 seq2seq。
所以在摘要、翻译、条件生成上,这条路线长期都很强。
4.4 它的代价:结构和工程更重
相比 decoder-only:
- 两套 tower 更重;
- 推理缓存更复杂;
- 大规模统一预训练的数据组织也更麻烦。
所以它很强,但在“大一统通用 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 产品形态的那一步——微调,以及再下一步的指令微调。
十、参考文献
- Radford, A. et al. “Improving Language Understanding by Generative Pre-Training.” OpenAI Technical Report, 2018. GPT 路线的起点。
- Devlin, J. et al. “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.” NAACL 2019. MLM 路线的标志性论文。
- Liu, Y. et al. “RoBERTa: A Robustly Optimized BERT Pretraining Approach.” arXiv:1907.11692, 2019. MLM 路线的强化版代表。
- Lewis, M. et al. “BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension.” ACL 2020. 去噪 seq2seq 路线代表。
- Raffel, C. et al. “Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer.” JMLR 2020. T5 的统一 text-to-text 路线。
- Brown, T. et al. “Language Models are Few-Shot Learners.” NeurIPS 2020. decoder-only 规模化后的代表结果。
← 上一篇:29|Tokenization | 下一篇:31|微调演进 →
同主题继续阅读
把当前热点继续串成多页阅读,而不是停在单篇消费。
【Transformer 与注意力机制】38|GPT 系列:从 GPT-1 到 GPT-4 的路线演进
GPT 路线的关键不是某个模型名字,而是 Decoder-only Transformer、next-token prediction、规模扩展、上下文学习、指令微调和人类反馈逐步合流。本文从 GPT-1 讲到 GPT-4,只使用公开可确认信息,解释为什么自回归语言模型最终成为大语言模型时代的主线。
【Transformer 与注意力机制】39|T5:把所有 NLP 任务统一成 Text-to-Text
T5 的核心不是又发明了一种 Transformer,而是把翻译、摘要、分类、问答都改写成“输入文本到输出文本”的统一格式。本文解释 T5 为什么选择 Encoder-Decoder 架构,span corruption 和 BERT/GPT 的目标有什么差异,C4 和系统化消融实验为什么让 T5 成为迁移学习路线的重要基准。
【Transformer 与注意力机制】37|BERT:双向编码器为什么适合理解任务
BERT 不是“早期大模型”的历史遗物,而是 Encoder-only Transformer 路线的代表。本文解释为什么 BERT 选择双向编码器,Masked Language Modeling 到底在学什么,Next Sentence Prediction 为什么后来被质疑,以及为什么 BERT 天然适合分类、匹配、抽取这类理解任务,却不是自回归生成模型。
【Transformer 与注意力机制】22|Encoder 详解:6 层堆叠到底在做什么
把 Transformer encoder 从“左半边”这个模糊概念拆成可操作的结构:单层里 self-attention、FFN、残差、LayerNorm 各做什么;6 层堆叠为什么不是重复劳动;encoder 输出为什么适合理解任务而不直接擅长生成;以及它和 decoder-only、encoder-decoder 两条路线到底差在哪。