2018 年之前,每个任务都要从头训练一个模型。之后变了: 先用海量无标注文本训练一个通用模型,再针对具体任务微调——像先读完 16 年通识教育,再接受入职培训。 这里的「三千亿」是 GPT-3 的量级;今天的大模型会读到 15 万亿,第 1 节那把尺子上有。 上一章《位置编码与长上下文》拼齐了模型零件,这一章把它们开一次机。 这个"两阶段"范式,就是今天所有大模型的地基。
| 对比项 | 预训练之前 | 预训练之后 |
|---|---|---|
| 数据要求 | 每个任务都要收集标注数据,常常要成千上万条 | |
| 训练成本 | 每个任务都从头训一遍 | |
| 效果 | 数据少就训不好,也不会迁移到别的任务 | 几乎所有 NLP 任务上大幅提升 |
| 本质 | 每个任务独立学 | 把"语言的通用规律"抽出来复用 |
像一个从小学读到大学的人,再去应聘具体岗位。
公司不需要从"认字"开始教他——他已经有了通用的语言能力和常识,
只要短时间培训一下业务就行。
不一样的地方:人上学有老师出题、批改;这里没有人出题——题目直接从文本里挖出来,下一节看怎么挖。
互动 · 两者要的数据量,差在一把对数尺子上
互动 · 同一句话,三种出题方式
三种目标用的其实是同一条公式:把「要猜的位置」的对数概率加起来。 差别在于:猜哪里(下一个词 / 被挖掉的词 / 被挖掉的一段)和能看哪边(左边还是两边看)。 这条公式的完整拆解在数学那节;本节先看三种目标的区别。
| 对比项 | MLM 掩码语言模型 | CLM 因果语言模型 | Span Corruption |
|---|---|---|---|
| 做什么题 | 挖掉几个词,猜它们是什么 | 猜下一个词 | 挖掉一整段,用哨兵 token 猜整段 |
| 看得见哪边 | 左右都能看(双向) | 只能看左边(单向) | |
| 训练效率 | 一句话只学 15% 的位置(BERT 论文的设定:每句话随机选 15% 的位置来猜) | 每个位置都学一次 | 和 MLM 相当(都只学一部分位置),但整段一起学 |
| 天生适合 | 理解(分类、抽取、匹配) | 生成(写作、对话、代码) | 两者都行 |
| 代表模型 | BERT、RoBERTa | GPT 全系列、LLaMA | T5、mT5 |
| 今天还用吗 | 理解类任务里还有 | 几乎全部大模型都用它 | 少了 |
三个原因:
① 训练效率最高——CLM 每个位置都是一个训练信号,MLM 只有一小部分位置算损失(见上表)。
② 和"生成"这个核心能力天然一致——语言模型的本质就是预测下一个词。
③ 可以做 in-context learning——看着几个例子就学会新任务,
这是 GPT-3 之后引爆一切的能力。只会编码、不能生成的 BERT 做不到。
| 对比项 | BERT (2018) | GPT (2018→) | T5 (2019) |
|---|---|---|---|
| 结构 | 只用 Encoder | 只用 Decoder | Encoder + Decoder |
| 注意力 | 双向 | 因果(单向) | |
| 目标 | MLM | CLM | Span Corruption |
| 性格 | 理解专家 | 生成专家 | 万能转换器 |
| 历史地位 | 把" |
今天几乎所有 LLM 的直系祖先 | 统一了"所有任务都是文本到文本" |
| 今天状态 | 被 |
绝对主流 | 主流大模型没有沿用 |
T5 论文的标题是 "Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer",
核心主张是:把所有 NLP 任务都改写成"文本进、文本出"。
分类?输出"positive"。翻译?输出译文。摘要?输出摘要。
这个"统一接口"的思想活了下来——今天的指令微调(用「指令 + 回答」的数据再训一遍,阶段 5 细讲)本质上就是它。
2020 年之后出现了一件没人预料到的事:模型大到一定程度,会突然学会训练里没教过的能力。
互动 · 能力不是线性增长的(示意图)
| 涌现出来的能力 | 大概从什么规模开始 |
|---|---|
| 上下文学习(看几个例子就会做新任务) | 约 100 亿 |
| 多步算术 | 约 130 亿参数(三位数加减,GPT-3,2.3×10²² FLOPs 即浮点运算次数) |
| 思维链推理(先写出中间步骤再作答) | 约 1000 亿参数 |
| 按指令执行没见过的任务 | 需要指令微调(见阶段 5) |
2023 年有论文(Are Emergent Abilities a Mirage?)指出:
所谓"突然出现",很可能只是评测指标选择的假象——如果用"答案完全正确"这种 0/1 指标,
曲线看起来就像断崖;但如果换成"部分正确的程度",曲线其实是平滑上升的。
这提醒我们:看到"能力跃迁"时,先检查一下是不是指标造成的错觉。
前面几节一直在说「给模型出题、答对了就奖」。这句话背后只有一条公式, 它回答的问题也只有一个:模型给正确的词打了多大概率,这道题就丢多少分。
互动 · 一句话被考几个位置、每题丢多少分(拖滑块看总分)
每个空都是一道题。老师只做两件事:
① 看你把多少「把握」放在正确答案上——这就是 P,也就是下面图上那根柱子的长度。
② 把握越小,扣分越狠,而且是「越小越陡」地狠——这就是 −ln 那条曲线:
概率 1.0 时丢 0 分、0.25 时丢 1.4 分、0.01 时丢 4.6 分。
然后把一句话里所有空的分加起来,就是这句话的损失。
不一样的地方:老师改卷是人工的;这里的题是机器从文本里自动挖出来的。
公式卡 ·
公式卡 · 一次
工业界怎么写 · 那条公式在代码里就是一行
把输出往左错一位,和原文对齐着算损失——这条公式在代码里的样子:
loss = loss_fn(logits[:, :-1].reshape(-1, V), input_ids[:, 1:].reshape(-1))
logits 是每个位置的预测分数,input_ids 是原文编号;[:-1] 和 [1:] 就是错开的那一位,reshape(-1, V) 把两堆分数摊平成「一行一个预测」,V 是词表大小(程序里由数据定)。完整程序(能直接跑)在页面末尾的工业界怎么写。
微型图解 · 标签是从哪来的:两行只差一格
| 问题 | 具体表现 | 什么时候真的会痛 → 换什么 |
|---|---|---|
| 一次完整 |
你想从零训一个通用模型 → 绝大多数人只做微调,不做预训练 | |
| 数据会用完 | 高质量文本总量有限:研究者预测过"数据墙"——按当前速度,公开可用的高质量文本可能在几年内被用尽 | 想再靠"多喂数据"换能力 → 转向合成数据、多模态数据 |
| "预测下一个词"训练出来的模型只会接话,不会听话:它可能生成有害内容、可能胡编乱造 | 要模型按人的意图办事 → 阶段 5 的 | |
| 无法更新知识 | 训练完之后知识就冻结了,想更新必须重训或微调 | 知识天天在变(股价、新闻)→ RAG(把外部资料查出来喂给模型,阶段 7) |
三条路线最后收敛到了 decoder-only(只保留解码器、一路往右生成的那种结构,就是第 3 节的 GPT)。
今天的 GPT、Claude、Gemini、Qwen、DeepSeek、LLaMA——无一例外都是 decoder-only 的 CLM 模型。
第 3 节说的「性格」是三家早期的分工;规模上去之后,一个 decoder-only 结构就能同时做理解、生成、翻译、写代码——
不用再为每个任务各做一种结构。统一和简单赢了。
BERT 的思想活在了嵌入模型里(阶段 7 的向量检索),T5 的思想活在了指令微调里。
它站在《第一性原理》那七条线里唯一一条只谈物理量的线上——参数量、token 数、FLOPs,全是能乘出来的数。 说白了还是开头那个类比:先攒够通识,再学具体手艺。
回到第 4 节那个互动(标题是「能力不是线性增长的(示意图)」): 先看默认的「0/1 指标」,再点一下「连续指标(部分正确给分)」。
曲线的形状换了(从断崖变成平滑上升),但不管用哪个指标,它都在往右上走。 这是一张示意图:真实实验里,不同规模的模型跑的是完全相同的代码、相同的层、相同的损失函数, 唯一的区别就是横轴上的一个数字。这一章从头到尾没有任何一处是为"翻译"或"算术"设计的—— 那些能力是从横轴上长出来的。
全站每一章都用同一张表,从六个角度看这一章: A 信息流动 · B 什么被牺牲了 · C 参数账本 · D 跑在什么上 · E 它假设了什么 · F 违背了哪个直觉。
| 暗线 | 这一章的回答 |
|---|---|
| A 信息流动 | 数据形状:这一章最特别的地方是它什么都没改。
文本 → [n] 个 token → [n, d]
→ N 层 Transformer → [n, d] → LM head →
[n, V] → 交叉熵。LM head 是最后一层:把每个位置的向量翻成词表上每个词的分数,
V 就是词表大小。所以暗线 A 在这一章的答案是:形状没变,变的是权重里装了什么 |
| B 什么被牺牲了 | 牺牲了可控性(能力是规模换来的,没人能逐条解释)与知识新鲜度
(训完就冻结,这就是 RAG 存在的理由)。还牺牲了数据:高质量文本有限,它从工程细节变成了瓶颈。 换回来的是一个可复用的通用底座——全书 ROI 最高的一次交易 |
| C 参数账本 | 这条线上的数字很好记:BERT-base 1.1 亿 → BERT-large 3.4 亿 →
GPT-2 15 亿 → GPT-3 1750 亿。
另一个容易忽略的数:BERT-base 的嵌入层就是 30522×768 ≈ 2340 万,占全模型的 21%——
嵌入层就是前面讲的词向量表:30522 是词表大小,768 是每个词的向量长度。 真正量级跳跃的是算力:GPT-3 约 3.14×10²³ FLOPs, 训练数据约 3000 亿 token,成本在几百万美元量级。 而微调一个 BERT 只要一张卡几十分钟——两者差六七个数量级, 这就是“两阶段”能成立的全部数学原因 |
| D 跑在什么上 | 训练时 GPU 忙着算: 生成时反过来:大部分时间不是在算,而是在等数据从显存搬过来。 两笔账都在 《硬件与算力账本》 |
| E 它假设了什么 | 四条,一条比一条大胆: ① “预测下一个词”这个任务足以承载语言、知识和推理—— 这就是 CLM 赢的那个赌注,2018 年时没人敢确定。 ② “语言能力可以跨任务迁移”——两阶段范式的全部前提。 ③ “规模带来的提升是平滑可预测的”—— 涌现现象反过来质疑了这条:有些能力在某个规模以下完全为 0。 ④ MLM 假设“[MASK] 这个符号不会被学成特征”—— 但它在真实文本里根本不存在:训练时句子里总能看到 [MASK],真正用的时候一个都没有, 它面对的和练习时不一样,效果会打折。BERT 为此把一部分该挖的词换成随机词或保留原词 |
| F 违背了哪个直觉 | “无标注数据没什么价值”——正好相反。
它比标注数据便宜好几个数量级,却贡献了几乎全部能力。 第二个:“猜下一个词能学到什么?”——它自己学会了翻译、算术、改错。 要把下一个词猜准,就得把文本背后的规律也学进去,翻译和算术是其中一部分。 第三个:“调参和微调才是主要工作”——实际上 |
它接住了上一章的什么:位置编码(《位置编码与长上下文》) 把模型结构的最后一块拼图补完了。这一章把这些零件拿去真的开了一次机。
它给下一章留了什么:
两阶段范式 = 通识教育 + 入职培训:用无标注数据学通用语言规律,再用少量标注数据学具体任务。
三种出题方式(MLM / CLM / Span Corruption)决定了模型的"性格":
MLM 会理解,CLM 会生成,Span Corruption 什么都能转;最后 CLM + decoder-only 赢了。
代价是可控性差、知识冻结、成本极高——分别由阶段 5 的对齐和阶段 7 的 RAG 来解。
上面讲的都是「够用」的版本。想往下挖,这里有三个入口—— 它们不是必修内容,是给想再往前走一步的读者准备的。