跳到主要内容

预训练 — 把语言压成能力

这一章讲三件事: 一个看似机械的目标为什么能长出这么多本事; 参数和数据该按什么比例同步放大,以及这个比例后来又被什么改写了; 以及一套能在三十秒内判断「这件事我干不干得起」的速算表。

它在全书链条里的位置:第 01 章说「第二件事是预训练范式成熟」, 这一章就是那一件事本身。第 06 章讲练完之后怎么把它塑成助手。

顶层全景:一段文字变成参数的六步

互联网上一段文字

① 抓下来、洗干净、按配方混 ── §1 §2 §3

② 切成一串编号 ── §5

③ 前面几个当输入、下一个当答案 ── §4

④ 猜一次,看差多少 ── §4(第 02 章那张评分表)

⑤ 反推所有参数各挪一丁点 ── 第 02 章 §10

└─ 重复几万亿次 ──→ 参数里留下了世界的统计结构 ── §7

要花多少机器?§6 §8 §9 §10

图说: 这六步里,第 ④、⑤ 步是第 02 章讲过的老套路,一点没变。 这一章真正新的东西是 ①②③ 和「要花多少机器」这两侧。

1. 数据从哪来:标不完的答案,和自带答案的文字

要理解这件事,不妨先回到一段并不久远的历史。

2007 年,有人启动了一个被很多同行视为「疯狂」的项目: 组织上万名众包人员,给一千四百多万张图像逐张贴上类别标签, 总成本最终达到数百万美元量级。当时不少人嘲笑这种投入——「标那么多图有什么用?」 回头看,正是这套数据,在 2012 年成了第 02 章那次爆发的关键燃料1

但它的成功同时暴露了一个无法回避的事实:这种规模的人工精标几乎不可复制。 每开发一个新任务、每进入一个新领域,都得从头再标一遍; 如果想做一个能理解所有领域的通用系统,这份成本会以指数级膨胀,再多预算也填不满。

这里先把一个词说清楚。标注指的是人工给每条数据写上正确答案: 这张图是猫、这封邮件是垃圾、这句话是褒义。它是第 02 章那种「监督学习」的燃料, 也是最贵的那一环——一条优质标注往往要训练有素的人花上几分钟。

与此同时,互联网上每天都在自动生成天量没有答案标签的材料。 每月抓取上百 TB 的网页文本、数千万条百科条目、堆着海量代码的仓库、 源源不断的社交平台内容,它们没人贴标签,也来不及贴2

转折点其实早就埋下了。2012 年,有团队把一个大型网络放到视频截帧上跑, 让它看了大约一千万张没有标签的图像;没人告诉它「猫」是什么,也没有任何类别标签。 训练完成后,研究者发现网络内部居然自发出现了对猫脸敏感的单元3

这件事后来被半开玩笑地总结成一句「机器先是在网上学会了看猫」。 但它真正讲的是一个朴素事实:只要某种结构在数据里反复出现, 模型就有机会自己把它抠出来,根本不需要人工标签来牵着走。

这正是第 02 章 §2 那个「自监督」的雏形:数据本身就携带着答案, 缺的只是一个合适的训练目标把它榨出来。

2. 十万亿词元有多大

规模发生了质变。过去很多语言任务的数据量往往以几万、几十万条样本计; 今天的预训练数据往往以数十亿、数百亿乃至更高数量级的词元来衡量4

公开的数字大致是这样:2020 年那一代用了约 3000 亿词元; 后来的开放权重模型分别用了约 1 万亿、2 万亿和 15 万亿词元。 许多闭源前沿模型的具体数据量没有公开,只能从技术报告和外部分析中大致估计。

十万亿词元是什么概念? 书里给了一串可以自己核的换算5:

  • 英文里一个词元大致相当于 0.75 个单词,所以 10 万亿词元约等于 7.5 万亿英文单词;
  • 按一本书平均 8 万单词算,这是 9000 多万本书的文字量;
  • 换个说法:一个人每天读 1 万词,要读两百多万年;
  • 再换个说法:让两百多万人一起读,也要读上一整年

这已经远远超出「多看几本书」的量级。 记住这几个参照物, 后面第 06 章说「几万条高质量指令样本就能显著改变体验」时,你才会觉得反差惊人。

规模一大,它学到的就不再只是某个狭窄任务的对应关系, 而是各种写作风格、任务模板、知识片段和语言结构的混合总体。 一个模型之所以能同时处理问答、改写、摘要、翻译、代码补全, 很大程度上正是因为这些模式都在训练材料里反复出现过6

3. 洗数据比换技巧更管用

但「数据多」并不自动等于「数据好」。互联网上的信息极其丰富,也极其混杂: 既有高质量教材、技术文档和经过编辑的文章,也有大量重复、错误、低质量、 带偏见甚至带攻击性的内容7

于是数据准备是一套复杂的筛选、去重、清洗和配比过程。书里列了五道工序8:

工序做什么不做会怎样
去重同一段文字反复出现的,只留一份它会把某些模式学得过于僵硬
过滤有害内容剔掉仇恨、暴力、色情这些模式会直接进入它的行为
过滤低质文本剔掉机器生成的垃圾、自动翻译、模板邮件有效学习密度被稀释
语言识别区分中英法德等配比失控
去污染不让考题混进训练材料「成绩」掺水,见 §12

这里有一个不算秘密的秘密:在很多阶段,把数据洗干净、配得好, 比再换一个花哨小技巧更能改进模型9

更进一步说,不同类型的语料(用来训练的那一大批文字材料) 对能力的塑造方向并不一样10:

  • 书籍和正式文档更有利于学连贯的长篇表达和较稳定的知识结构;
  • 网页和论坛提供更广覆盖的现实语言和热门话题;
  • 代码让它学会形式结构、接口(程序之间互相调用的约定)调用模式和程序逻辑;
  • 对话材料有助于形成更自然的交互风格。

所以训练一个模型,某种意义上是在决定「希望它主要从怎样的世界里长大」, 喂多少数据反而是其次。这也是为什么数据配比会成为绕不开的工程问题。

一个很实在的观察: 一个团队里专门盯着数据来源占比、清洗规则和配比表 反复调参的人,常常不比改模型结构的人少;配方表改一行,下一版模型的脾性就可能跟着变11

4. 训练目标:接龙、完形填空,还是对照

现在看最核心的那件事:它到底在通过什么任务逼自己学习?

主流做法叫因果语言建模,也就是下一词元预测: 把文字看成一串词元,逐位置预测「给定前面这些,下一个是什么」, 所有位置的差距加起来作为总的损失12。 「因果」指的是它在第 t 个位置只能看到前面的词元、看不到后面的—— 靠的正是第 03 章 §7 讲的那个遮挡。

另一类目标叫掩码语言建模:随机把输入里 15% 的词元换成一个特殊符号, 让它根据左右两边的语境把被遮的填回来13。 每个被遮的位置可以同时看到前后两边,这让它学到的表示在「读懂」类任务上更稳定。 但代价是它不能直接用来生成——一个习惯了「看左右两边再填空」的模型, 让它从左到右逐词写一段话就很别扭。

还有第三条路,形态完全不同,叫对比学习: 不预测具体值,而是学习「谁和谁相似」14。 训练时对同一张图做两次不同的随机改动(裁剪、变色),得到两个「视图」; 让同一张图的两个视图在数值空间里彼此靠近,让不同图的视图彼此远离。 整套训练没有任何人工标签,学到的表示质量却接近甚至超过监督学习。

三种目标可以并排记住:接龙靠「续写」,填空靠「补洞」,对照靠「比像不像」。

现在回答第 03 章 §7 欠下的那个问题:为什么是接龙那一支成了主流?

答案不在结构上——第 03 章已经说过,三种搭法的积木完全一样。 答案在于这三种目标各自塑造了什么表示,以及哪种表示更适合今天的用法。

书里给的判断是这样的:填空学到的双向表示在分类、检索、实体识别这类任务上很好用; 接龙学到的生成能力则天然适合对话、写作、代码、翻译。 而在通用助手时代,绝大多数实际任务都可以被改写成「给一个问题,生成一个回答」, 于是接龙的通用性显著占优,逐渐成为主流15

但填空这条路并没有消失,它换了个位置继续当骨干: 在搜索召回、文本向量化(把文字变成一串可比对的数)、以相似度找相关内容这些场景里, 双向表示至今仍是主力技术之一16。 当大众说「大模型」时多半默认指接龙那一类,可这不代表另一支退场了—— 它只是从台前退到了检索链路的地基里。 第 12 章 §6 讲检索时你会再见到它。

5. 分词:它眼里的文字不是字

在喂进去之前,文字必须先被切成一个个小单位。 这个过程叫词元化(把一段文字切成模型能处理的小块); 落到具体的中英文文本上,它更常见的叫法是分词17

分词不是按单词切。 英文好说,但中文、日文的「单词」边界很模糊—— 「我爱机器学习」到底是几个词?分词也不是按字母切,那太细, 序列会变得很长,计算量巨大18

现代做法普遍用字节对编码或它的变种:从频率统计出发,常见的整切,稀有的切成更小的块。 这些更小的块叫子词(比一个完整单词更小、但比单个字母更大的片段)19

书里给的例子很好记:

原词怎么切为什么
the / and / is各是一个整词元出现得太多,整切最省
extraordinaryextra + ordinary中等频率,拆成两个常见块
ultraconfucianismultra + confucian + ism生僻,拆成三块也能拼出来
机器学习一个词元中文里的高频词
量子纠缠量子 + 纠缠中等频率
馥郁芬芳拆成几个字罕见,退回按字切

所有切出来的块合起来那张表叫词表(模型认识的所有词元的清单, 每个词元在里面有一个固定编号,常见规模是几万到几十万条)。

这种切法的优点是既能高效处理常见表达,也能处理任何生僻词。 代价是输入输出的长度比字数更多:英文里一个词元大致 0.75 个单词, 中文里一个词元大致 1 到 1.5 个汉字20

分词的细节会显著影响它。 切得好,训得更高效;切得差, 它要「浪费」参数去学语言的基本组合。 很多看似奇怪的错误其实都和这里有关:你问它某个英文单词里有几个字母,它可能答错, 因为在它眼里这个词不是一个个字母,而是几个词元块21。 书里那个比方很传神:就像你让一个人隔着磨砂玻璃数葡萄,他看到的是一团紫色, 不是每一颗葡萄。

6. 规模法则:参数和数据该按什么比例一起长

在很多传统工程系统里,投入翻倍并不一定带来成比例收益。 但在这里,人们观察到一个重要现象:在相当广的范围内, 当参数规模、训练数据和计算预算同步扩大时,差距通常会以一种相对平滑、 可预测的方式下降22。这条经验规律叫规模法则

2020 年有人第一次把它画清楚:横轴是参数量(模型里有多少可调数值)、数据量或算力取对数(数值每乘 10,横轴走一格),纵轴是差距。 几个点连起来在实验范围内接近一条下降的直线23

这种「取对数之后接近直线」的关系,数学上叫幂律 (一个量按另一个量的某个固定次方变化)。

就是这条线改变了整个行业对前沿训练的投资观念。 如果投入增加大致能换来可预期的改善,训练一个高成本模型就不再只是押注灵感, 而更像一项可以规划、可以小规模打点再往外推的工程。

这条法则内部经历过一次重要调整,值得单独记住。

第一版结论说:在固定算力预算下,参数应该比数据增长得更快。 这条判断推动早期一批模型偏向「先把参数堆大」的路线24

两年后有人给出了不同结论。 他们训练了一系列从 7000 万到 160 亿参数、 配不同数据量的模型,绘出更细致的曲面,得到一个非常具体的「计算最优」结论: 在固定算力预算下,参数和训练词元应该按大约 1 比 20 的比例同步放大, 也就是每个参数大约配 20 个训练词元25。 按这个结论,许多此前的模型其实参数偏大、数据偏少,处于「欠训」状态; 论文用一只 700 亿参数的模型作代表,在远少于前者参数、 但训练词元多得多的设置下,反而在多个基准上超过了它。

这个转向一出就被广泛接受,行业的思路明显改变:参数不再一味追求「越大越好」, 而开始强调按合理比例同步扩大。后来的开放权重模型都把训练词元数推到了万亿级别。

但故事还有第三段,书里讲得很好。2024 年之后,这个比例又被使用成本改写了一次26

那个「1 比 20」衡量的是训练阶段的最优:在给定训练预算下怎样把差距压到最低。 可商业模型还要算上线之后的使用成本。一个模型每天被调用上亿次时, 使用阶段累积的计算量会远超一次训练的开销。

于是出现了一个新的权衡:参数小一点、数据多一点,是在用一次性的训练投入, 换长期的使用节省。 书里给了几个具体观察:有的模型把 700 亿参数训了 15 万亿词元 (约 214 倍,远超那个 20 倍);有的在 14.8 万亿词元上训了 6710 亿总参数但只激活 370 亿 (按激活量算约 400 倍)。

这不是否定,而是把优化目标从「训练阶段最优」推向了「整个生命周期最优」。

最后要留一句诚实的话:规模法则并不是一条永远固定的公式。 两版结论的差异主要来自实验区间和细节假设,它们都是经验律,不是物理定律。 后续研究又发现更多影响因素:词元质量、数据重复使用次数、 是否包含代码和推理类材料、训练后期是否单独安排「退火」阶段, 都会让最优比例浮动27

7. 能力怎么长出来:预测逼出中间结构

现在可以回到开头那个问题:为什么一个只是在做词元预测的系统, 最后会表现出问答、总结、翻译、编程乃至一定程度推理的能力?

一个直接但很有解释力的答案是:为了把预测做对,它不得不学习生成这些预测所必需的中间结构28

  • 要预测一句话中的代词指代,它就得学会谁在做动作、谁是被描述的对象;
  • 要预测一段技术文档接下来会怎么写,它就得逐步掌握该领域常见概念和叙述方式;
  • 要预测代码下一行最可能出现什么,它就得理解变量(会变动的取值)的生效范围、常见库用法和程序结构。

这些本事没有谁显式教过,它是在降低整体预测差距的过程中被迫吸收了它们。

这也是为什么预训练更像一种世界压缩(第 01 章 §4 讲过这个说法)。 语言并不只是词语排成的链条,它还包含现实世界中的对象、关系、因果、 目的和习惯表达方式;代码也不只是符号序列,它对应着程序逻辑和接口调用规范29

这里还有一个经常被忽视的要点:学到的能力往往是分布式的—— 一项本事摊在大量参数上,很难定位到某一小块独立模块30。 事实知识、语言风格、代码模式、任务格式,常常共同嵌进大量参数中。

这使它具有较强的组合能力,能把不同来源的模式临时拼接起来形成新的输出。 但这也意味着它的知识不是像数据库那样按条目存储, 因此会出现模糊、混淆、编造和不稳定调用等问题——第 06 章 §12 会正面处理这一条。

预训练还带来了一个非常重要的副产物:第 03 章 §9 讲过的上下文学习。 当它在大规模材料中反复见到「任务说明 + 示例 + 答案」这种结构后, 它逐渐学会从眼前的输入里推断「现在要做的是什么」,而不一定必须再改参数31这就是为什么后来提示写法和示例设计会变得如此重要。

8. 训练机制:批、学习率、优化器

到这里都在讲「为什么」。但要把一个模型真正训出来,工程师面对的更多是「怎么训」32。 第 02 章 §10、§11 讲过基本盘,这一节只补大规模场景下变形的那几处。

批量在这里被推到了极端。 大模型预训练里常见的「等效批量」可以达到几百万词元。 怎么做到的?靠梯度累积(先跑几个小批只算不更新、把方向攒起来, 攒够了再统一更新一次)和把许多小批分散到很多张卡上同时跑, 凑出一个单机根本装不下的大批效果33

学习率有一套相对稳定的配方。 第 02 章讲过预热;这里再补衰减(越训越把步子收小)的那一半。 预热结束后,学习率沿着一条先快后慢、平滑收尾的曲线缓慢下降到一个较小值(典型是峰值的 10%), 这条平滑下降的曲线得名于数学里的余弦——一条先陡后平的曲线——的前半段。它比阶梯式衰减更稳定,也比线性衰减更「留余地」: 前期猛冲,后期细修34

优化器几乎一律用 AdamW。 第 02 章 §10 讲过它为什么好用; 这里补一句:它已经被反复验证、踩过的坑最多,所以工业界主流仍是它。 2024–2025 年冒出了几个新的,共同的暗示是「单一对角自适应」很可能不是最终形态, 但它们还在向工业生产推进的路上35

还有一件事值得单独记:超参数(要人预先定的训练旋钮)的搜索在大模型上贵到做不起。 在百亿参数模型上做网格搜索,每组参数都意味着数百万美元算力。 一个常见方案是先在小模型上把这些可调项调到位,再按某种缩放规则外推到大模型; 业界有一套专门的参数化方法让最优学习率在不同规模之间近似不变, 于是可以「小模型调好、大模型直接套」36。它远不完美,但比在大模型上撞运气理性得多。

9. 速算表:三个公式,三十秒判断可行性

这一节是全章最实用的一节。工程师常用几个量纲估算公式快速判断可行性—— 它们不是精确账本,但能让你在动手前就发现「这件事可能不行」37

先补两个词。浮点运算指的是对带小数的数做一次乘法或加法; 衡量算力时数的就是它——数的是浮点运算(带小数的数做的运算)做了多少次。

FLOPS 就是「每秒能做多少次浮点运算」的缩写, 你在显卡规格表上看到的那些天文数字用的就是这个单位。

第一条:参数量怎么估。 总参数量约等于 12 × 层数 × 宽度²。 这个 12 来自每层四套矩阵(查询、键、值、输出投影)加上前馈里两套通常 4 倍宽的矩阵38。 拿一个 32 层、宽度 4096 的模型验一下:12 × 32 × 4096² ≈ 64 亿, 和它实际的 70 亿量级吻合。

第二条:训练要多少算力。 训练一个含 N 个参数的模型、看过 D 个词元, 大约需要 6 × N × D 次浮点运算39。 这个 6 来自「前向约 2N、反向约 4N」——反向要同时对中间结果和权重求梯度, 开销约是前向的两倍。

第三条:显存要多少。 用 Adam 类优化器、半精度(每个数值只存一半的位宽)训练时, 每张卡至少需要约 16 × N 字节:参数 2N、梯度 2N、优化器一阶矩 4N、 二阶矩 4N、外加一份 4N 的高精度参数副本40。 一个 70 亿参数的模型至少要约 112 GB 显存,一张 80 GB 的卡单张塞不下,必须分到多卡。 中间结果还会再加几十 GB,长窗口场景下它可能比参数本身还大。

书里把这几条并排放成一张表,是大模型工程师反复用的41:

要估什么公式一句话
参数量12 × 层数 × 宽度²忽略词嵌入(把每个词变成一串数的查表)和规范化层
训练算力6 × 参数 × 词元数前向 2N + 反向 4N
使用算力2 × 参数 × 词元数只有前向,所以是训练的三分之一
训练显存16N 到 20N 字节优化器状态是大头
使用显存2N 字节 + 键值缓存缓存那部分见第 04 章 §8

记住这几个数之后,几乎所有「这个模型在我这套硬件上跑得动吗」的判断, 都可以在 30 秒内估到两倍以内。

这里还要补一条第 09 章会反复用到的判断。估完算力还不够, 因为显卡在很多情况下根本跑不到峰值——瓶颈不在算,而在搬数据42。 任何一次计算都同时受两个上限约束:算力峰值和显存带宽(每秒能从存储搬多少数据进来)。 每读一字节显存能换多少次浮点运算,这个比值叫算术强度; 它低于某个临界值时,硬件是「等数据」型的,时间几乎全花在搬运上。 训练里的矩阵乘法通常算术强度很高;使用阶段却往往落在「等数据」那一段—— 这两件事的本质区别,第 10 章 §3 会展开。

10. 混合精度:范围够宽比小数位够准更要紧

显存是最稀缺的资源(这里指芯片上的存储)之一,于是降低数值精度(一个数用多少位来存, 位数越多小数越准、能表示的范围越大)成了最直接的优化手段。

最早都用 32 位的单精度。但对大模型来说这太奢侈:每个参数 4 字节、 每个中间结果 4 字节,模型一大就吃不消。16 位的半精度能把显存和算力消耗砍掉一半, 但它能表示的范围比 32 位窄得多,超出范围的数值会变成 0 或无穷,让训练发散43

业界的折中叫混合精度训练:前向和反向用 16 位算(快、省显存), 但权重和优化器状态保留 32 位的主副本,更新时把 16 位的梯度先转回 32 位再做更新44。 再配合把损失乘一个大数、让梯度落进 16 位可表示范围的技巧, 这套方案能在几乎不损失准头的前提下,把速度提一倍、显存减一半。

更新一代的做法用一种「16 位但指数位和 32 位一样宽」的格式,解决了范围不够的问题: 它能表示的范围和 32 位一样宽,只是小数位更少。 书里给了一句很好记的判断:对大模型训练来说,「范围够宽」比「小数位够准」更重要, 所以这种格式越来越成为主流45。再往前一步是 8 位,新一代显卡开始原生支持, 可以再砍一半,但需要更精细的数值稳定技术。

精度的选择既是显存账,也是数值稳定性的赌博。 一次成功的大规模训练背后,通常藏着几次损失变成 NaN、损失突然大幅跳高再缓慢回落、 训练发散的事故和对应的工程修复46。这些细节决定了实验室里的「跑通」 和工业级训练的「可以反复跑通」之间,到底相差多少工程经验——第 09 章 §8 会展开。

11. 代价:算力门槛、数据偏差、以及基座还不是助手

预训练很强,但它从来不是免费的。书里列了三类代价47

第一类是算力和基础设施门槛。 训练需要大量加速硬件、长时间运行和复杂的并行系统, 这既意味着高昂的经济成本,也意味着显著的门槛。 很多关于「能力跃升」的讨论,背后都压着同样现实的问题: 谁能负担这样的预算,谁能持续地一遍遍重训——行话叫迭代——谁又只能在现成模型之上做局部适配。

第二类来自数据本身。 互联网上的数据并不是中性的,它带着时代背景、 平台偏见、语言差异和各种干扰。这些问题并不会因为模型规模更大就自动消失。 相反,模型越强,越可能把这些模式包装得更流畅、更像真的48。 还有版权、隐私和数据边界:训练材料里可能包含受版权保护的文本、 公共网页上的个人信息、代码仓库中的许可约束; 它通常不会逐字复述训练数据,但在记忆、过拟合、提示诱导等条件下仍可能暴露片段。 这一层第 17 章 §7 会正面处理。

第三类是最容易被忽略的:基座还不是助手49。 一个只经过预训练的模型,往往更像一个强大的续写系统: 它可能知识丰富却答非所问,可能表达流畅却在事实上不可靠, 可能会表现出推理痕迹却在关键步骤上不稳定。 预训练负责把能力练出来,后训练(练完之后的塑形阶段)则负责把这些能力组织成更适合真实使用的行为—— 这正是第 06 章的全部内容。

顺带说一句,那些「不含此前的架构探索、各种试法的试验」这类成本口径里, 有一项叫消融实验:把某个部件拿掉再训一遍,看结果差多少, 用来判断这个部件到底有没有用。它是研发投入里很大的一块,却几乎从不出现在公开账单上。

12. 评测:先搭一张能力剖面图

预训练做完之后,工程师面对的第一个现实问题是:这个模型到底学到了什么? 回答它比想象中难,因为一个刚练完的基座既不会乖乖回答问题, 也未必能展示自己的全部潜力50

这一节先把评测这件事的框架搭起来,第 06 章 §14 和第 14 章都会回来用。

评测真正困难的地方在于,它从来不是「出几张卷子」那么简单。 一个在知识问答上领先的模型,可能在长材料上不稳; 一个在偏好比较中受欢迎的模型,可能在事实性上反而退步。 评测的意义因此在于把复杂能力拆成可判断的分项,而一个笼统的总分反而说明不了多少51

基准测试(一批标准格式的题目,让不同模型在相近条件下作答、横向比较) 是最常见的形式。经过这几年演化,主流基准形成了几条家族线索52:

家族考什么代表
知识与综合各学科的知识覆盖MMLU;中文有 C-Eval、CMMLU
数学多步推导和严谨计算GSM8K、MATH、AIME
代码从入门函数题到真实仓库修复HumanEval(入门函数题基准)、SWE-bench
对话与长材料多轮、开放任务、长文本检索MT-Bench、大海捞针、LongBench

这些基准不构成一个总分,而更像一张坐标网格,把它在不同方向上的位置标出来。 读懂分数时,与其盯着排行榜(把各家模型按某个分数排序的公开榜单), 不如问清三件事:这套题到底测什么;它和真实使用场景距离多远; 它是不是可能受益于题目风格熟悉、材料污染或提示模板优化53

还有一类特殊的尺子叫困惑度:它量的是「模型对一段真实文字有多意外」—— 越低说明它对真实语言拟合得越好。它在预训练阶段是核心的调试刻度, 但它不直接对应下游任务表现:困惑度低的模型未必更好用, 所以通常只作为中间观察量54

当人工评测成本越来越高时,让一个更强的模型来当裁判成了自然想法。 它成本低、速度快、可扩展性强。但这里必须非常谨慎:裁判模型本身有偏见, 它可能偏爱更长、更像标准答案、更自信或更符合某种风格的回答; 也可能对与自己训练风格相近的模型更宽容55。 比较稳妥的做法是把它放进多层链条:先用它做大规模初筛,再对关键样本做人工复核。

最后是那个越来越严重的问题:数据污染—— 模型在训练过程中直接或间接接触过测试题或高度相似的材料, 于是它在测试中表现很好,却并不代表真正具备了对应能力56

对标准化基准来说这种风险尤其高:题目一旦公开、流行、反复使用, 就更容易被训练材料、合成材料、调参样本或提示模板「碰到」。 即使开发者有意过滤,也可能因为题目变体、解读文章和社区讨论而留下相似痕迹。 一个常用的检测方式是看它在原题和「重新表述过的同义题」上分数是否一致—— 原题答得特别好、变形题明显差,就说明分数可能受到了题面熟悉度或污染的影响57

书里还提醒要分清三类不同的评测:能力评测关心它会不会做事; 行为评测关心它在与人交互时是否表现得有帮助、诚实、稳定、适度克制; 风险评测更接近红队思路,主动寻找被骗着越界、误用和高风险组合58。 三者之间还可能存在张力:更积极的帮助性可能与更严格的风险边界冲突。 后两类分别是第 06 章和第 17 章的主题。

主走查:一句「上海是中国的金融中心」从网页到参数

这条走查贯穿本章。 我们跟着一句话走完预训练的全程。 凡不是书里给出的数,都当场标明是为演示编的。

① 它被抓下来。 这句话出现在某个网页里,被抓取程序收进语料池。 它没有任何人工标签——没人标注它是「地理知识」还是「经济常识」。 它自带的唯一「答案」,就是这句话本身的后半截。(§1)

② 它挨过五道工序。 去重时发现这句话在语料里出现过 1400 次 (这个数是为演示编的),只保留少数几份; 过滤时确认它不是机器生成的垃圾;语言识别把它归到中文; 去污染时检查它有没有出现在某套考题里。(§3)

③ 它被切成词元。 假设这句话切成 6 块: 上海 / 是 / 中国 / 的 / 金融 / 中心(这个切法是为演示编的)。 查词表得到 6 个编号,比如 [2810, 102, 1547, 88, 6621, 3390]注意这里是 6 个词元,不是 8 个汉字——「上海」「中国」「金融」「中心」 都是中文里的高频词,各自整切成一块。(§5)

④ 前 5 个当输入,第 6 个当答案。 这是接龙目标最朴素的一次: 给它 上海 是 中国 的 金融,让它猜第 6 块。 实际训练时每个位置都同时在被预测(第 1 块猜第 2 块、前 2 块猜第 3 块……), 所以这一句话一次就贡献了 5 个训练信号。(§4)

⑤ 它猜了一次,看差多少。 假设它给「中心」的可能性是 0.42, 给「市场」0.21,给「重镇」0.08,其余分散(这四个数是为演示编的)。 按第 02 章那张评分表,这一次的差距 = −ln(0.42) = 0.868。 如果它给「中心」只打 0.05,差距就是 −ln(0.05) = 3.00——三倍多

⑥ 反推,所有参数各挪一丁点。 第 02 章 §10 那一套原样搬过来: 算出每个参数的梯度,乘上学习率,各挪一丁点。 这一步和第 02 章那张手写数字图完全没有区别。

⑦ 这一句花了多少算力? 用 §9 那条 6ND 公式。 假设模型是 70 亿参数,这句话 6 个词元: 6 × 7×10⁹ × 6 = 2.52 × 10¹¹ 次浮点运算。 听起来很多,但按每秒 3×10¹⁴ 次的显卡算,只要 0.84 毫秒问题在于要重复这件事两万亿次——那就是第 09 章那笔账了。

⑧ 这句话最终在参数里留下了什么? 不是这一句话本身。 留下的是被压进参数的那一点点统计结构: 「上海」这个词元和「金融」「中心」「港口」「外滩」的共现倾向被略微加强, 和「首都」「沙漠」的共现倾向被略微削弱。 一句话只挪动千分之一丁点;两万亿个词元挪完之后, 参数里就有了第 01 章说的那份「世界的痕迹」。(§7)

作者的判断与证据

书里给了硬数字、可以自己核的地方:

  • 十万亿词元的四个换算(7.5 万亿单词、9000 多万本书、两百多万年、两百多万人一年), 每一步都能自己乘一遍5;
  • 那个 1 比 20 的比例,给了实验设置(7000 万到 160 亿参数、三种验证方法)25;
  • 三条速算公式,给了推导来源(12 来自每层六套矩阵,6 来自前向 2N 加反向 4N)3839;
  • 2024 年之后的实际比例(214 倍、按激活量约 400 倍),是可核对的公开数字26

书里明确标成经验、争议或未定的地方:

  • 规模法则是经验律不是物理定律,书里两次强调,并解释了两版结论差异的来源27;
  • 能力为什么会长出来,书里给的是一个「直接但很有解释力的答案」,不是证明28;
  • 数据污染无法根除,书里说「靠一次清洗很难彻底消除」,并承认这是「需要持续控制和披露的风险」56;
  • 让模型当裁判,书里明确说它「把模型偏见引入了评测环节本身」55

这一章还有一处口径值得点出:书里对「洗数据比换技巧更管用」这句话说得很直白, 甚至称之为「一个不算秘密的秘密」9。这句判断的分量在于, 它把大众叙事里最不性感的那一环(数据工程)放回了中心位置。

边界与局限

  • 书里没有讲数据管线的具体实现。 怎么去重、用什么规则过滤、 配比表长什么样,都只给方向不给做法。
  • 规模法则的公式书里只给了形状,没给系数。 你没法拿它去做真实的规划。
  • 评测这一节是框架,不是清单。 具体基准的题型、难度和适用范围, 书里点到为止;真要用,得去看各个基准自己的说明。
  • 本组拆解把「架构演化」整块移到了第 04 章。 书里第 4 章末尾提到的 长窗口与位置外推,在这里只作为「训练材料要包含足够长程依赖」这一条出现。

可带走的

  1. 人工标注走不通,不是因为它不好,而是成本以指数膨胀;转折点是「数据自己当老师」: 只要某种结构在数据里反复出现,它就有机会自己抠出来。
  2. 十万亿词元 ≈ 九千多万本书。 记住这个参照物,后面才有反差感。
  3. 洗数据比换技巧更管用。 配方表改一行,下一版模型的脾性就可能跟着变。
  4. 三种目标并排记: 接龙靠续写、填空靠补洞、对照靠比像不像;接龙成主流是任务形态使然,填空那一支退到检索和向量化里继续当骨干。
  5. 它眼里的文字不是字,是词元。 很多「数不清字母」的怪错误就出在这里。
  6. 规模法则的三段: 参数优先 → 参数和数据 1 比 20 → 再被使用成本推向「生命周期最优」;它是经验律,不是物理定律。
  7. 能力长出来,是因为「为了把预测做对,不得不学会生成预测所需的中间结构」。
  8. 三条速算公式记死: 参数 12Ld²、训练算力 6ND、训练显存 16N 字节;对大模型训练,「范围够宽」比「小数位够准」更重要。
  9. 基座还不是助手。 预训练练出能力,后训练组织行为。
  10. 评测要看能力剖面,不看总分,且要分清能力、行为塑形、风险三类;数据污染无法一次清干净,看分数先问基准发布时间和训练截止时间的相对位置。

原文地图

主题原书节原文位置
精标数据集不可复制4.1text/05-ch04.txt:29(搜「被很多同行视为」) · text/05-ch04.txt:36(搜「这种规模的人工精标数」)
无标签材料的规模4.1text/05-ch04.txt:40(搜「互联网上每天都在自动生成天量无标签数据」)
看猫那个实验4.1text/05-ch04.txt:44(搜「放到 YouTube 视频截帧」) · text/05-ch04.txt:47(搜「机器先是在网上学会了看猫」)
十万亿词元的换算4.1.1text/05-ch04.txt:92(搜「十万亿词元是什么概念」)
数据质量五道工序4.1.1text/05-ch04.txt:101(搜「训练大模型的工程团队会花大量精力做数据清洗」) · text/05-ch04.txt:105(搜「洗干净、配得好」)
数据配比塑造脾性4.1text/05-ch04.txt:67(搜「不同类型数据对模型能力的塑造方向并不一样」) · text/05-ch04.txt:85(搜「语料配方表改一行」)
因果语言建模4.2.2text/05-ch04.txt:192(搜「因果语言建模」)
掩码语言建模4.2.2text/05-ch04.txt:198(搜「掩码语言建模」)
为什么接龙成主流4.2.2text/05-ch04.txt:213(搜「CLM 和 MLM 的分工其实对应着两种使用场景」) · text/05-ch04.txt:216(搜「BERT 路线并没有消失」)
对比学习4.2.3text/05-ch04.txt:227(搜「对比学习」) · text/05-ch04.txt:249(搜「构成了自监督的三大范式」)
分词4.2.1text/05-ch04.txt:145(搜「分词不是按单词切」) · text/05-ch04.txt:165(搜「字节对编码」) · text/05-ch04.txt:180(搜「分词的细节会显著影响模型」)
规模法则两版结论4.3.1text/05-ch04.txt:301(搜「第一次把这条经验规律画清楚了」) · text/05-ch04.txt:315(搜「给出了不同结论」) · text/05-ch04.txt:317(搜「练词元应该按大约」)
生命周期成本改写配比4.3.1text/05-ch04.txt:337(搜「生命周期成本改写配比」) · text/05-ch04.txt:344(搜「而是在把优化目标从训练阶段最优」)
经验律不是物理定律4.3.1text/05-ch04.txt:350(搜「它们都是经验律」)
能力如何形成4.4text/05-ch04.txt:376(搜「些预测所必需的中间结构」) · text/05-ch04.txt:386(搜「预训练学到的能力往往是分布式的」)
上下文学习是副产物4.4text/05-ch04.txt:391(搜「上下文学习的副产物」)
批与梯度累积4.5.1text/05-ch04.txt:441(搜「等效批大小」)
余弦退火4.5.1text/05-ch04.txt:450(搜「余弦退火」)
超参数迁移4.5.1text/05-ch04.txt:482(搜「小模型上扫出的最优学习率」)
三条速算公式4.5.2text/05-ch04.txt:495(搜「总参数量约等于」) · text/05-ch04.txt:505(搜「次浮点运算」) · text/05-ch04.txt:512(搜「每张卡至少」)
速算表4.5.2text/05-ch04.txt:521(搜「Transformer 参数」)
算术强度与瓶颈4.5.2text/05-ch04.txt:531(搜「瓶颈不在算,而在搬数据」)
混合精度4.5.3text/05-ch04.txt:551(搜「但 FP16 的可表示范围」) · text/05-ch04.txt:553(搜「混合精度训练」) · text/05-ch04.txt:562(搜「范围够宽」)
三类代价4.6text/05-ch04.txt:574(搜「算力与基础设施门槛」) · text/05-ch04.txt:582(搜「能把这些模式包装得更流畅」) · text/05-ch04.txt:588(搜「基座模型还不是助手」)
评测框架4.7text/05-ch04.txt:609(搜「它从来不是」) · text/05-ch04.txt:622(搜「能力剖面图」)
基准家族4.7.2text/05-ch04.txt:637(搜「知识与综合能力」) · text/05-ch04.txt:649(搜「与其盯着排行榜」)
模型当裁判4.7.3text/05-ch04.txt:667(搜「评审模型本身有偏见」)
数据污染4.7.4text/05-ch04.txt:677(搜「最典型的情形是数据污染」) · text/05-ch04.txt:688(搜「重新表述过的同义题」)
三类评测4.7.5text/05-ch04.txt:701(搜「能力评测关心模型会不会做事」)

Footnotes

  1. 出处:「4.1 数据从哪里来」第 29 段(text/05-ch04.txt:29,搜「被很多同行视为」)。

  2. 出处:同节第 40 段(text/05-ch04.txt:40,搜「互联网上每天都在自动生成天量无标签数据」)。

  3. 出处:同节第 44 段(text/05-ch04.txt:44,搜「放到 YouTube 视频截帧」)。

  4. 出处:同节第 57 段(text/05-ch04.txt:57,搜「规模发生了质变」)。

  5. 出处:「4.1.1 数万亿词元的真实尺度」第 92 段(text/05-ch04.txt:92,搜「十万亿词元是什么概念」)。 2

  6. 出处:「4.1」第 59 段(text/05-ch04.txt:59,搜「规模一大,模型学到的就不再只是」)。

  7. 出处:同节第 62 段(text/05-ch04.txt:62,搜「规模不等于质量」)。

  8. 出处:「4.1.1」第 101 段(text/05-ch04.txt:101,搜「训练大模型的工程团队会花大量精力做数据清洗」)。

  9. 出处:同节第 105 段(text/05-ch04.txt:105,搜「洗干净、配得好」)。 2

  10. 出处:「4.1」第 67 段(text/05-ch04.txt:67,搜「不同类型数据对模型能力的塑造方向并不一样」)。

  11. 出处:同节第 85 段(text/05-ch04.txt:85,搜「语料配方表改一行」)。

  12. 出处:「4.2.2 自监督学习与因果语言建模」第 192 段(text/05-ch04.txt:192,搜「因果语言建模」)。

  13. 出处:同节第 198 段(text/05-ch04.txt:198,搜「掩码语言建模」)。

  14. 出处:「4.2.3 第三条路:对比学习」第 227 段(text/05-ch04.txt:227,搜「对比学习」)。

  15. 出处:「4.2.2」第 213 段(text/05-ch04.txt:213,搜「CLM 和 MLM 的分工其实对应着两种使用场景」)。 书里原句是「在通用助手时代,绝大多数实际任务都可以被改写成『给一个问题,生成一个回答』, CLM 的通用性显著占优,于是逐渐成为主流」。按审读意见, 这句「谁成了主流」整句归本节,第 03 章 §7 只保留结构上的一半。

  16. 出处:同节第 216 段(text/05-ch04.txt:216,搜「BERT 路线并没有消失」)。

  17. 出处:「4.2 词元化与训练目标」第 72 段(text/05-ch04.txt:72,搜「词元化」) 与「4.2.1 分词」第 143 段(text/05-ch04.txt:143,搜「这个过程叫分词」)。

  18. 出处:「4.2.1」第 145 段(text/05-ch04.txt:145,搜「分词不是按单词切」)。

  19. 出处:同节第 165 段(text/05-ch04.txt:165,搜「字节对编码」)。表格里的六个例子全部来自书里。

  20. 出处:同节第 178 段(text/05-ch04.txt:178,搜「代价是输入输出的长度比字数更多」)。

  21. 出处:同节第 180 段(text/05-ch04.txt:180,搜「分词的细节会显著影响模型」)。

  22. 出处:「4.3 规模法则」第 259 段(text/05-ch04.txt:259,搜「一个重要现象」)。

  23. 出处:「4.3.1 Kaplan 与 Chinchilla」第 301 段 (text/05-ch04.txt:301,搜「第一次把这条经验规律画清楚了」)。

  24. 出处:同节第 311 段(text/05-ch04.txt:311,搜「参数应该」)。

  25. 出处:同节第 315 段(text/05-ch04.txt:315,搜「给出了不同结论」) 与第 317 段(text/05-ch04.txt:317,搜「练词元应该按大约」)。 2

  26. 出处:同节第 337 段(text/05-ch04.txt:337,搜「生命周期成本改写配比」)。 2

  27. 出处:同节第 350 段(text/05-ch04.txt:350,搜「它们都是经验律」)。 2

  28. 出处:「4.4 能力如何在预训练中形成」第 376 段 (text/05-ch04.txt:376,搜「些预测所必需的中间结构」)。 2

  29. 出处:同节第 380 段(text/05-ch04.txt:380,搜「预训练更像一种世界压缩」)。

  30. 出处:同节第 386 段(text/05-ch04.txt:386,搜「预训练学到的能力往往是分布式的」)。

  31. 出处:同节第 391 段(text/05-ch04.txt:391,搜「上下文学习的副产物」)。

  32. 出处:「4.5 训练机制」第 429 段(text/05-ch04.txt:429,搜「工程师面对的更多是」)。

  33. 出处:「4.5.1 batch、学习率与优化器」第 441 段(text/05-ch04.txt:441,搜「等效批大小」)。

  34. 出处:同节第 450 段(text/05-ch04.txt:450,搜「余弦退火」)。

  35. 出处:同节第 478 段(text/05-ch04.txt:478,搜「它们共同的暗示是」)。

  36. 出处:同节第 482 段(text/05-ch04.txt:482,搜「小模型上扫出的最优学习率」)。

  37. 出处:「4.5.2 参数量、FLOPs 与显存的快速估算」第 492 段 (text/05-ch04.txt:492,搜「工程师常用几个量纲估算公式」)。

  38. 出处:同节第 495 段(text/05-ch04.txt:495,搜「总参数量约等于」)。 2

  39. 出处:同节第 505 段(text/05-ch04.txt:505,搜「次浮点运算」)。 2

  40. 出处:同节第 512 段(text/05-ch04.txt:512,搜「每张卡至少」)。

  41. 出处:同节第 521 段(text/05-ch04.txt:521,搜「Transformer 参数」)。

  42. 出处:同节第 531 段(text/05-ch04.txt:531,搜「瓶颈不在算,而在搬数据」)。

  43. 出处:「4.5.3 混合精度训练」第 551 段(text/05-ch04.txt:551,搜「但 FP16 的可表示范围」)。

  44. 出处:同节第 553 段(text/05-ch04.txt:553,搜「混合精度训练」)。

  45. 出处:同节第 562 段(text/05-ch04.txt:562,搜「范围够宽」)。

  46. 出处:同节第 567 段(text/05-ch04.txt:567,搜「精度的选择既是显存账」)。

  47. 出处:「4.6 预训练的局限与代价」第 574 段(text/05-ch04.txt:574,搜「算力与基础设施门槛」)。

  48. 出处:同节第 582 段(text/05-ch04.txt:582,搜「能把这些模式包装得更流畅」)。

  49. 出处:同节第 588 段(text/05-ch04.txt:588,搜「基座模型还不是助手」)。

  50. 出处:「4.7 大模型评测」第 603 段(text/05-ch04.txt:603,搜「评测要看能力剖面」)。

  51. 出处:同节第 609 段(text/05-ch04.txt:609,搜「它从来不是」)。

  52. 出处:「4.7.2 基准测试家族」第 637 段(text/05-ch04.txt:637,搜「知识与综合能力」)。

  53. 出处:同节第 649 段(text/05-ch04.txt:649,搜「与其盯着排行榜」)。

  54. 出处:「5.6.2 基础的评测指标」第 643 段(text/06-ch05.txt:643,搜「困惑度」)。

  55. 出处:「4.7.3 LLM-as-a-Judge」第 667 段(text/05-ch04.txt:667,搜「评审模型本身有偏见」)。 2

  56. 出处:「4.7.4 评测失真」第 677 段(text/05-ch04.txt:677,搜「最典型的情形是数据污染」)。 2

  57. 出处:同节第 688 段(text/05-ch04.txt:688,搜「重新表述过的同义题」)。

  58. 出处:「4.7.5 能力评测、对齐评测与风险评测」第 701 段 (text/05-ch04.txt:701,搜「能力评测关心模型会不会做事」)。