GPT-1(2018 年 6 月)比 BERT(2018 年 10 月)早出几个月,但 BERT 一出,靠双向在 GLUE 榜上当场把 GPT-1 比下去。如果只看那一刻的分数,BERT 是赢家。可五年后回望,ChatGPT、Claude、Llama 几乎清一色 decoder-only——全是 GPT 这一支。BERT 系退守到 embedding/检索的角落。
答案不在「谁分数高」,在哪个目标更通用、更能吃规模。 BERT 的完形填空擅长理解、但天生不会流畅生成(你上节学的:完形填空的人不擅长从头编长文)。 GPT 的「预测下一个词」既是理解的训练、又直接就是生成本身——这个目标后来被证明越放大越通吃(GPT-2 / GPT-3 一路验证)。这一课先看它的起点 GPT-1 怎么搭。
| 第一段:生成式预训练(pre-training) | 第二段:判别式微调(fine-tuning) | |
|---|---|---|
| 用什么数据 | 海量无标注文本(BooksCorpus,7000 本书) | 少量有标注的下游任务数据 |
| 训练目标 | 预测下一个词(标准语言模型,单向自回归) | 任务标签(分类/蕴含/相似度…)+ 一个辅助的「继续预测下一个词」正则项 |
| 架构 | 12 层 decoder-only Transformer(带因果掩码的单向 self-attention)——预训练和微调同一个骨架 | |
预训练-微调这个范式,BERT 和 GPT 是共用的(都是「先海量无标注、再少量有标注」)。差别只在两格: ① 目标——BERT 完形填空(双向)vs GPT 接下一个词(单向); ② 架构——BERT encoder-only vs GPT decoder-only。 这又回到你拆透的那句:掩码开关定生死。GPT 的因果掩码挡住右边,正是「预测下一个词不能偷看答案」的物理实现。
你上一轮自检答对了「word2vec 词向量是副产品」。GPT 把这条暗线推到顶:它从头到尾只做「猜下一个词」一件事,却把整个语言能力当副产品学了出来。下面这个演示让你亲眼看到「猜准下一个词」到底逼模型学了什么。
每句话都缺最后一个词。点一句,看「猜准它」究竟需要哪种能力——你会发现「接下一个词」根本不是死记,是被逼着学会语法、事实、常识、推理、情感。
看出来了吗:没有人单独教模型「语法/事实/推理」,是「把下一个词猜准」这个唯一目标,顺着把它们全逼了出来。这就是为什么一个看似简单的目标,撑起了今天所有通用大模型。
| 维度 | GPT-1(本篇 P06) | BERT(上篇 P05) |
|---|---|---|
| 架构 | decoder-only | encoder-only |
| 方向 / 掩码 | 单向(因果掩码挡右边) | 双向(无掩码) |
| 预训练目标 | 预测下一个词(接龙) | MLM(完形填空) |
| 当年 GLUE 分数 | 开了范式,但被 BERT 反超 | 更高(双向理解占优) |
| 能否原生生成 | 能(生成是它的主场) | 不能 |
| 长线归宿 | 通用大模型的主干(GPT/Claude/Llama) | 退守 embedding/检索 |
一句话记牢:BERT 当年赢分数,GPT 长线赢天下。差别的根,仍是那个被你拆透的「目标函数 → 单向/双向 → 性格」的因果链。
GPT-1 还没有「一句话提示就干活」的能力(那是 GPT-2/3 的事)。它微调时靠一个聪明的小把戏:把各种任务都改写成「一段连续的 token 序列」,喂给同一个 decoder,末尾接个小分类头。
| 任务 | 怎么塞进一个序列 |
|---|---|
| 文本分类 | [起始] 文本 [抽取] → 读末位向量分类 |
| 蕴含判断 | [起始] 前提 [分隔] 假设 [抽取] |
| 相似度 | 两句话正反各拼一遍(顺序无关),结果相加 |
| 多选问答 | 每个选项各拼一条序列,分别打分再 softmax |
这个「把任务变成一段文本」的思路,就是日后「万物皆 text-to-text」(T5/P09)和你天天用的 prompt 的雏形。你写 prompt 把任务塞进一段话——和 GPT-1 干的是同一件事,只是它当年还要微调,你现在零样本就行。🔮
| 你工作里的东西 | 其实就是这篇论文的什么 |
|---|---|
| ChatGPT / Claude 一个 token 一个 token 往外蹦 | 就是 GPT-1 的「预测下一个词」自回归生成,原封不动放大了上万倍。你在第 1 课学的生成流水线,正是这条线的成品。 |
| 你写 prompt 把任务「描述成一段话」喂给模型 | GPT-1 的输入变换的直系后代——把任务塞进一段连续 token。区别只是它要微调、你不用。 |
| 「为什么大模型啥都会,又没人专门教它」 | 因为通用能力是「猜下一个词」的副产品。猜准海量文本的下一个词,被迫把语法/事实/推理全学了。 |
| 你做 LLM-as-judge / prompt 自动调优时,模型「凭语感」打分 | 那份语感正是预训练「猜下一个词」副产品里的分布感——它知道「像不像人写的」,因为它就是按人写的分布训出来的。 |
把这一课接到你真实工作上的几个关键问。点开看答。
关键在「猜准」的门槛有多高。在海量、多样的真实文本上,想把下一个词的概率压低损失,死记是不够的——同样的开头后面能接的词千变万化,唯一能稳定降损失的办法是真的抓住背后的规律:语法约束、世界事实、因果常识、甚至简单推理。
举例:「3 加 5 等于 ___」,背语料背不全所有算式,但学会加法就能稳定答对。于是「为了把下一个词猜得更准」这个压力,逼模型把能压缩损失的规律都内化。这就是「压缩即理解」——预测得越好,说明世界模型越准。🔮
骨架同源(decoder-only + 预测下一个词),但中间隔着三级跳,每一跳都是后面的课:
| 阶段 | 关键变化 |
|---|---|
| GPT-1(本课) | 立范式:生成式预训练 + 微调,但每个任务还要微调 |
| GPT-2(P07) | 放大规模,发现不微调、靠提示也能干活的苗头 |
| GPT-3(P08) | in-context learning / few-shot——你 prompt 工程的理论根 |
| ChatGPT | 再加 指令微调 + RLHF(对齐人类偏好,后面课会讲) |
所以你用的 Claude,是「GPT-1 的目标 + 巨大规模 + 对齐」的合成体。底层那个「猜下一个词」,从 2018 到今天一字未改。🔮
微调时 GPT-1 不只优化任务标签,还顺带保留一部分「预测下一个词」的损失作为辅助项。作用有二:① 防止灾难性遗忘——别为了一个小任务把预训练学的通用能力忘光;② 当正则化,让微调更稳、泛化更好。
这对你有迁移价值:在专门目标上微调时,掺一点原始的通用目标,能稳住别让模型「学窄」——和你调 LLM 时担心「过拟到某种风格」是同一个直觉。
self-attention 默认是「全看」的:每个位置能看到序列里所有位置、左右通吃——这就是双向(BERT 吃的红利)。因果掩码做的唯一一件事,是把「右边」的注意力权重强行抹成 0(设为 -∞,softmax 后变 0),让「谁能看谁」的方格表变成一个下三角:词 3 永远只能看到词 1、2、3,物理上够不着词 4 及以后。
为什么必须这样?训练目标是「用前面的词预测下一个词」。不挡右边,模型预测词 4 时就能直接看到词 4 本身——那是抄答案,loss 瞬间归零,啥也学不到。因果掩码=「预测下一个词不能偷看答案」的物理实现,强制信息只能从左往右流 ⇒ 这就是单向 / 自回归。
一句话:双向 vs 单向不是两种模型,是同一个 self-attention 加不加那张下三角掩码的区别——掩码开关定生死。这也是为什么 Claude 只会一个 token 一个 token 往外蹦:因果掩码决定了它天生「看左边、猜右边」,生成必须自回归地一步步来。
血脉相同、机制不同。本质都是「把任务塞进一段连续 token 序列」喂给同一个 decoder,差别在「怎么让模型知道要它干嘛」:
| 维度 | GPT-1 输入变换(2018) | 你写 prompt(今天) |
|---|---|---|
| 怎么表达任务 | 靠特殊分隔符拼结构:[起始] 前提 [分隔] 假设 [抽取] | 靠自然语言描述任务 |
| 模型怎么响应 | 必须微调(改权重 + 接分类头) | 不改任何权重,零样本/少样本直接出 |
| 谁适配谁 | 改模型去吃任务 | 改输入去够模型 |
核心差别一句话:GPT-1 是「改模型吃任务」,你写 prompt 是「改输入够模型」。能从前者跳到后者,靠的不是机制变聪明,而是规模——这正是 P08 GPT-3 的 in-context learning,你 prompt 工程的理论根。你写的每条 prompt,都是 GPT-1「把任务塞进序列」的直系后代。🔮
读原典:Radford et al. — Improving Language Understanding by Generative Pre-Training(GPT-1, 2018)。
建立直觉首选:Jay Alammar — The Illustrated GPT-2(图解 decoder-only 与自回归生成,同样适用于 GPT-1 直觉)。
下一篇 P07 GPT-2:把这条路「放大」——参数和数据一起加码,世界第一次看到「不微调、光靠提示就能干活」的苗头。规模,开始变成魔法。
参考:
Radford et al., Improving Language Understanding by Generative Pre-Training, 2018;Alammar, The Illustrated GPT-2.