预训练 · Pre-training
数据准备好了、模型架构定了、损失和梯度机器也搭起来了——现在轮到"烧算力"环节。所谓预训练,就是让一个刚出生的模型,狂读几十万亿 token 的文本,练成一个"什么都懂一点"的通才基座。这一步单次成本从数千万美元到数亿美元不等——不夸张地说,它是人类史上最贵的一项数学运算。
先把术语翻译成人话
这一篇全是"万亿 token""10²⁵ FLOPs"这种数字,听着玄。说白了整章就在讲一件事:把图书馆所有的书都让一个人读一遍,得花多少钱、多长时间、会出多少事故。先摆一张对照表。
| 术语 | 换成大白话 | 生活里对应什么 |
|---|---|---|
| 预训练(Pre-training) | 先上完通识教育,什么都懂一点,但不专精 | 学校的九年义务教育 + 高中 |
| 基座模型(Base Model) | 刚毕业、书读了一堆、但不会办事的那个人 | 刚拿到毕业证、没进过办公室的应届生 |
| token | 模型眼里的一个"字块",比字大比词小 | 看书时眼睛扫过的一小段 |
| NTP 下一词预测 | 看一段话,猜下一个字 | 背课文时的"接下句" |
| MLM 掩码语言模型 | 盖住中间几个字,看前后文猜 | 完形填空 |
| 数据流水线(Data Pipeline) | 把捡回来的一堆废纸筛成能读的书 | 废品站分拣:挑出能用的、扔掉发霉的 |
| 去重(Deduplication) | 同一本书买了八百本,留一本就够 | 图书馆入库前先查有没有重本 |
| FLOPs 算力 | 一共要算多少次加减乘除 | 一条流水线总共要拧多少颗螺丝 |
| 检查点(Checkpoint) | 每隔一会儿存个档,崩了能接着来 | 写长文档每隔十分钟按一次保存 |
| MFU 算力利用率 | 这些卡有几成时间在真干活 | 车间工人真正动手的时间占比 |
| 涌现(Emergence) | 攒到某个量,突然就会了以前完全不会的事 | 练琴几百小时后某天忽然通了 |
| Scaling Law 规模定律 | 多投入多少钱能换多少本事,有个可算的公式 | 装修报价单:多几平米加多少钱 |
想象一下:把整个互联网印成书,堆起来能到月球那么高;
你抓来一个刚出生的婴儿,把这些书全塞给他读——不问理解、不考中心思想、不要求写作文;
只有一个游戏规则:看到一段话,猜下一个字是什么——猜对给糖,猜错打手心。
读完几十万亿字后,这个婴儿虽然还不会"聊天",但对语言、事实、常识、代码、数学,都建立了一种朦胧的直觉。
这就是"预训练"要干的事——把整个数字世界压缩进几百 GB 的参数里。
一、预训练的目标:预测下一个 token
缩写先摊开:NTP(Next Token Prediction,下一词预测——给一段前文,猜下一个字块是什么);token 其实就是模型眼里的一个"字块",比单个字大、比一个完整词小,中文里常常两三个字算一个。换成大白话,预训练干的活儿就一句:遮住下一个字,猜;猜错了改一点,再往下翻。重复几十万亿次。
整个大语言模型的预训练,本质上只做一件事:给定一段前文,预测下一个 token 是什么。这个任务学名叫 Next Token Prediction(NTP),或者自回归语言建模。听起来很朴素,但威力惊人——因为要"猜对下一个字",模型必须理解语法、常识、事实、逻辑、风格、乃至于一定程度的推理。
举个例子。要猜出"爱因斯坦提出的著名理论叫 ___"里的"相对论",模型必须知道爱因斯坦是谁;要猜出"2 + 3 × 4 = ___"里的 14,模型必须会数学的运算优先级;要猜出"用 Python 写一个快排:def quicksort(arr): if len(arr) <= 1: return ___"里的 arr,模型必须懂递归和边界条件。"预测下一个字"这个游戏,把无数种能力都逼了出来。
技术上它长什么样?一句话:输入是一段文本,标签就是同一段文本右移一位。这是整个预训练能规模化的根本原因——它不需要任何人工标注,文本自己就是自己的答案。这个特性叫自监督学习(self-supervised learning),它让"训练数据量"这个瓶颈从"人类能标多少"变成了"互联网上有多少字",一下放大了六个数量级。
# 一条训练样本的真实样子(假设序列长度 8)
原始文本 : "今天 天气 真 好 , 适合 出门 散步"
input_ids: [今天, 天气, 真, 好, ,, 适合, 出门, 散步]
labels : [天气, 真, 好, ,, 适合, 出门, 散步, ]
↑ 就是 input 右移一位,最后一位丢掉
# 关键:一条 8 token 的样本,同时提供了 7 个训练信号
# 位置0 看到"今天" → 要预测"天气"
# 位置1 看到"今天 天气" → 要预测"真"
# 位置2 看到"今天 天气 真" → 要预测"好"
# ... 以此类推,全部并行计算,一次前向传播全搞定
# 这就是 Transformer 相比 RNN 的核心效率优势:
# RNN 必须一步步串行;Transformer 用因果掩码一次算完整个序列
# 所以 15 万亿 token 的训练在工程上才成为可能
还有一件容易被忽略但影响很大的事:预测下一个 token 是一个"压缩"任务。信息论上有个等价关系——一个能准确预测下一个符号的模型,等价于一个高效的压缩器(用算术编码就能把预测概率转成码长)。所以训练大模型的过程,可以理解为"用几百 GB 的参数去压缩十几 TB 的文本",压缩比大约是几十比一。而要在这个压缩比下不丢失关键信息,模型别无选择——它必须放弃逐字记忆,转而提取可复用的规律。这就是"压缩即理解"这个说法的技术依据。
顺带说清一个常被误解的点:预训练不是"背下了整个互联网"。15 万亿 token 大约是 60 TB 文本,而一个 405B 模型的权重只有 810 GB——压缩比约 74:1。它物理上不可能存下原文。它存下的是统计规律、共现模式、概念之间的几何关系。这正是幻觉的根源:回忆时它只能根据规律"重建"细节,而重建出来的东西未必是原来的那个。
二、掩码语言模型(MLM):BERT 的另一条路
除了预测下一个 token,还有另一种预训练目标:掩码语言模型(Masked Language Model)——BERT 用的就是这种。做法是:从一句话里随机遮住 15% 的词,让模型来"填空"。比如"我 今天 吃了 [MASK],很好吃"——模型要猜 [MASK] 是"苹果"、"面条"还是"火锅"。
MLM 的优势是"看得到左右两边的上下文",理解任务更强;NTP 的优势是天然适合"生成"任务,能写出流畅文本。所以:BERT 家族擅长理解、GPT 家族擅长生成——最终生成任务的经济价值更大,NTP 一派赢下了大模型时代。
但"经济价值"只是结果,NTP 胜出还有两个更硬的技术理由,值得说清楚:
| 维度 | NTP(自回归,GPT 路线) | MLM(掩码,BERT 路线) |
|---|---|---|
| 训练信号密度 | 每个 token 都是一个训练目标(100%) | 只有被遮住的 15% 提供信号 |
| 训练效率 | 相同数据能榨出约 6.7 倍的信号 | 浪费了 85% 的位置 |
| 能否直接生成 | 天然可以,逐 token 续写 | 不能,需要额外的解码头 |
| 上下文视野 | 只能看左边(因果掩码) | 能看左右两边,理解更全 |
| 训练/推理一致性 | 完全一致 | 不一致:训练时有 [MASK],推理时没有 |
| 零样本能力 | 规模上去后自然涌现 | 基本需要微调才能用 |
| 代表 | GPT-4、Llama、Claude、DeepSeek | BERT、RoBERTa、DeBERTa |
第一行是决定性的。NTP 从同一份数据里榨出的训练信号是 MLM 的六七倍——在"数据即将枯竭"的时代,这个效率差距是致命的。第五行也很关键:BERT 在训练时到处是 [MASK] 标记,但真实使用时输入里没有 [MASK],这个训练与推理的分布不一致(论文里称为 pretrain-finetune discrepancy)一直是它的隐痛,也是它必须靠微调才能用好的原因。
不过 MLM 并没有消失,它在两个地方活得很好:嵌入模型(embedding)和重排序模型(reranker)。今天所有 RAG 系统里负责"把文档转成向量"的那个模型,几乎都是 BERT 血统——因为这个任务只要理解不要生成,双向视野正是优势。所以准确的说法不是"BERT 输了",而是"BERT 退到了它真正合适的位置"。
三、数据准备:从 PB 级到干净 token
这七步说白了就是图书馆入库前的分拣活儿:先挑出看得懂的语种,再扔掉发霉烂页的,再把重本只留一册,再下架不该给孩子看的,最后按"文学多少、理科多少"配好比例上货架。跳过这一步,你等于让孩子在废品站里学认字。
预训练的第一步不是模型,而是做数据流水线。以 Llama 3 为例,团队从数十 PB 的 Common Crawl 原始网页起步,经过下面这一整套流程,才得到最终的 15T token 训练集:
- 1. 语言过滤用语言分类器保留目标语言(英文 + 少量多语)。
- 2. 质量分类训一个"高质量文本判别器",只保留优质页面。
- 3. 去重从字符级到文档级的多层去重——重复内容严重伤害模型。
- 4. 内容过滤去除色情、暴力、涉隐私、涉版权的内容。
- 5. 分词用 BPE / SentencePiece 把文本切成 token。
- 6. 混合配比按预设比例混合网页、代码、书籍、数学、多语言等。
- 7. 打包 shard切成便于分布式读取的固定大小分片。
整个流水线常常需要一支专门的数据团队,用几个月的时间跑几千张 CPU 完成——数据这一环,就已经是几百万美元的投入。
这里还有一个不在上面七步里、但同样关键的准备工作:长上下文的分阶段扩展。你不能一开始就用 128K 的序列长度训练,因为注意力的计算量随长度平方增长——128K 的开销是 8K 的 256 倍,算力会全部烧在这里。所以标准做法是分两段:
# Llama 3 的两阶段上下文策略
阶段一(占 99% 算力):
序列长度 8192,训练约 15 万亿 token
→ 学到绝大部分知识和语言能力
阶段二(占 1% 算力,最后阶段):
分 6 个小步逐渐把长度从 8K 提到 128K
每一步只用约 8000 亿 token
同时把 RoPE 的 theta 从 10000 调到 500000
→ 让位置编码能覆盖更长的距离
# 判断"扩成功了"的标准(Meta 用的两个指标)
1. 短上下文任务的评测分数没有退化
2. "针在草堆里"(needle-in-a-haystack)测试满分
—— 把一句关键信息藏在 128K 文本的任意位置,看它能否找到
这个"先短后长"的顺序,本质上是一种算力套利:用便宜的短序列学知识,用昂贵的长序列只学"怎么处理长距离"。如果反过来全程用长序列,同样的效果要多花几倍的钱。这类工程判断,往往比模型架构上的巧思更能决定项目的成败。
如果说 SFT 是"给学生额外补 3 个月课",那么预训练就是"从零把一个婴儿养到高考完"。前者一次几万到几十万美元;后者一次几千万到几亿美元。为什么这么贵?——因为要租下上万张顶级 GPU 卡(H100 一张 3-4 万美元),连续跑几个月,电费本身就是天文数字。GPT-4 训练成本据估计 1 亿美元级;Gemini Ultra 传闻 1.9 亿美元;Llama 3.1 405B 花了 16000 张 H100 跑了 54 天——粗略折算电费加卡钱 2-4 亿美元。
想象一下一所学校。它不会一入学就把学生按科室分开培养——先花十二年把语文、数学、历史、物理全过一遍,谁都不知道这些将来哪一门用得上,但没有这十二年,后面任何专业培训都没地方扎根。这就是预训练:它不教任何具体的活儿,只负责把底子铺满。
更贴切的说法是"把图书馆所有的书读一遍"。说白了,预训练的全部内容就一件事——翻开一页,遮住下一个字,猜;猜错了就改一点,再翻下一页。重复几十万亿次。这个动作简单到近乎愚蠢,但因为要猜对"爱因斯坦提出的著名理论叫_"你就必须知道爱因斯坦是谁,所以知识是被"逼"出来的副产品。
顺着这个场景,本节几个抽象数字全都能落地:
15 万亿 token——按一本 20 万字的书算,相当于读了差不多五千万本书。一个人一天读一本、一年不休,得读十三万年;
数据清洗——好比图书馆入库前的分拣:发霉的扔了、盗版重本只留一册、少儿不宜的下架。没这一步,你等于让孩子在废品站里学认字。;
去重——相当于同一本书进了八百册,你只留一本。留八百册的后果是他把这一本背得滚瓜烂熟,其他书全都没时间看;
先短后长——先读短文章打基础,最后才练读长篇。读长文的成本随长度平方往上涨,好比一次搬一个包裹和一次搬空一整座仓库,力气差得不是一点;
每三小时崩一次——相当于这所学校的教室每三小时塌一次天花板,得随时能从上一个存档接着上课;
涌现——练琴的人都懂:前几百小时看着没什么长进,某一天突然就通了。攒到某个量,忽然会了以前完全不会的事。
而"读完书还是不会办事"这一点,恰恰是下一篇的主题:基座模型好比一个书读了一柜子、却从没进过办公室的应届生——什么都懂,就是不会说话、不会办事。把他调教成能用的助理,是对齐要干的活儿。
四、算力成本:现代 AI 军备竞赛的门票
| 模型 | 训练算力 | 估计成本 | 训练时间 |
|---|---|---|---|
| GPT-3 (2020) | 3.14 × 10²³ FLOPs | ~ 400 万美元 | 数月 |
| PaLM (2022) | 2.5 × 10²⁴ FLOPs | ~ 1000+ 万美元 | 数月 |
| GPT-4 (2023) | ~ 2 × 10²⁵ FLOPs | ~ 1 亿美元 | ~ 3 月 |
| Gemini Ultra (2023) | ~ 5 × 10²⁵ FLOPs | ~ 1.9 亿美元 | 数月 |
| Llama 3.1 405B (2024) | 3.8 × 10²⁵ FLOPs | ~ 数亿美元 | 54 天 × 16000 H100 |
为什么算力这么贵?因为一次预训练要跑几百万亿次浮点运算——每算完一个 batch,还要在几万张卡之间做梯度同步、参数更新。加上电费、水冷、场地、工程师工资,一个前沿大模型团队一年的开销轻松突破 10 亿美元。这就是为什么真正能"从零训基座模型"的公司全球不超过 20 家——它是科技公司里最贵的一张门票。
但"一亿美元"这个数字是怎么算出来的?把它拆开看会很有启发,因为其中一大半的钱花在了你想不到的地方。
# 算力估算的核心公式(上一篇讲过)
FLOPs ≈ 6 × 参数量 × token 数
# 以 Llama 3 405B 为例
FLOPs = 6 × 4.05e11 × 1.5e13 ≈ 3.6e25
# H100 的 BF16 峰值算力约 990 TFLOPs = 9.9e14 FLOPs/秒
# 但实际 MFU 只有约 40%,有效算力 ≈ 4.0e14
理论卡时 = 3.6e25 / 4.0e14 / 3600 ≈ 2500 万 GPU 小时
Meta 公开的实际数字 ≈ 3080 万 H100 小时(含所有规模与实验)
# 折算成钱(按云上 H100 每小时 2-4 美元)
3080万 × 3 美元 ≈ 9200 万美元 ← 这就是"约 1 亿美元"的来源
# 折算成时间
16384 张 H100 并行 → 3080万 / 16384 ≈ 1880 小时 ≈ 78 天
Meta 报告的主训练时长约 54 天(405B 主体部分)
但真实的账单远不止这一项。OpenAI 公布 GPT-4 的训练成本"超过 1 亿美元",而外部研究机构(如 Epoch AI)的拆解指出:纯算力租金只占总成本的 50%-60%,剩下的是研发试错、数据采购、人力和基础设施。下面这张表是一个更接近现实的成本结构:
| 成本项 | 占比估算 | 说明 |
|---|---|---|
| 最终那次训练的算力 | 30%-50% | 就是上面算的那个数——但它只是"跑通的那一次" |
| 失败与消融实验 | 20%-40% | 跑崩的、配置不对的、缩放实验、超参搜索。这部分几乎从不被公开报道 |
| 数据获取与清洗 | 5%-15% | CPU 集群、授权语料采购、标注 |
| 研究人员薪酬 | 10%-20% | 前沿实验室的资深研究员年包常见百万美元级 |
| 基础设施摊销 | 5%-10% | 网络、存储、机房、电力改造 |
还有一笔容易被忽略的账:电。一张 H100 的功耗是 700 瓦,加上散热和辅助设备的 PUE 系数(约 1.2-1.5),实际约 1 千瓦。16384 张卡连续跑 54 天:16384 × 1 kW × 54 × 24 小时 ≈ 2100 万千瓦时——相当于中国约 7000 户家庭一年的用电量。Meta 报告 Llama 3 训练产生的碳排放约 2290 吨 CO₂ 当量(不含可再生能源抵扣),大致等于 500 辆汽车开一年。
"2100 万千瓦时"这个数再落地一点:按民用电价一度五毛多算,光电费就是一千多万元;好比把一整个中等小区(7000 户)全年的空调、冰箱、热水器的用电,全砸在一次训练上。说白了,训一次大模型的电,够一个小区用一年。
这也是为什么现在训练集群的选址越来越像重工业:靠近水电站、核电站或天然气田。微软和 OpenAI 传闻中的"星际之门"项目规划功率达到吉瓦级——那是一座中型核电站的全部输出,用来给一个数据中心供电。AI 竞赛在物理层面上,已经变成了一场能源竞赛。
五、集群与故障:万卡集群的日常崩溃
为什么一万多张卡这么脆?打个比方:这不是一万条各干各的流水线,而是一条串起来的长线——任何一个工位停了,整条线全停。好比一整座车间只有一条传送带,一颗轴承坏了,剩下九千九百个工人全在排队干等。所以每三小时崩一次不是运维水平差,是纯粹的算术结果。
下面这件事,是所有"AI 训练很酷"的叙事里最不酷、但最真实的一部分。Meta 在 Llama 3 的技术报告里公开了一组数据:在 54 天的预训练期间,他们记录了 466 次任务中断,其中 419 次是意外故障。平均下来每天崩 8 次左右,也就是每三小时崩一次。
| 故障原因 | 次数 | 占比 | 说明 |
|---|---|---|---|
| GPU 相关故障 | 148 | 30.1% | 包括 NVLink 失效、显存 ECC 错误、卡直接掉线 |
| HBM3 显存故障 | 72 | 17.2% | 高带宽显存本身的可靠性问题 |
| 软件 bug | 54 | 12.9% | 框架、通信库、驱动 |
| 网络交换机 / 线缆 | 35 | 8.4% | InfiniBand 链路抖动 |
| 主机维护 / 其他 | 其余 | — | CPU、电源、散热、文件系统 |
为什么这么脆弱?一个纯数学的原因:分布式训练是"串联电路"——任何一张卡出问题,整个任务就停。假设单张 H100 一年的故障率是 1%,那么 16384 张卡在 54 天里至少出一次故障的概率接近 100%。规模越大,可靠性越差,这是不可回避的算术。
所以工程上必须有一整套容错机制,它的核心是检查点:
# 检查点要存什么(缺一样都续不上)
model_weights : 405B × 2 字节 = 810 GB
optimizer_states : 405B × 8 字节 = 3.2 TB ← 最大的一块
lr_scheduler_state : 几十字节(当前 step)
dataloader_state : 数据读到哪了(否则会重复训同一批)
rng_states : 随机数生成器状态(保证可复现)
─────────────
总计约 4-6 TB per checkpoint
# 存一次要多久?
写 5 TB 到分布式存储,即使 100 GB/s 也要 50 秒
→ 每 30 分钟存一次,光存盘就吃掉约 3% 的训练时间
→ 所以业界用"异步存盘":先复制到 CPU 内存,再后台慢慢写
# 崩溃恢复流程(Meta 报告称大部分自动完成)
1. 监控发现某节点心跳丢失
2. 自动把该节点从集群摘除,调入热备节点
3. 全体从最近检查点重新加载(约 5-15 分钟)
4. 继续训练——平均损失 15-30 分钟的进度
Meta 报告的最终结果是:尽管崩了 466 次,整体有效训练时间占比仍达到约 90%。这个数字背后是大量自动化——自动诊断、自动摘除坏卡、自动重启、自动跳过可疑数据批次。训练大模型这件事,一半是机器学习,一半是分布式系统运维。这也是为什么"有钱买卡"和"能把卡用起来"是两个完全不同的能力,也是几家大厂真正的护城河所在。
再补一个通信瓶颈的具体数字,帮你理解为什么 MFU 上不去。405B 模型每一步要同步 810 GB 的梯度(BF16)。即使用 InfiniBand 的 400 Gb/s(= 50 GB/s),一次全量同步就要 16 秒以上;而一次前向加反向计算可能只需几秒。所以必须靠梯度分桶、通信与计算重叠、层级化 all-reduce 等技巧把通信藏进计算的间隙里——这些优化做不好,你的几万张卡就有一半时间在等网络。
六、涌现能力(Emergent Abilities):量变到质变
"涌现"两个字翻译成人话:攒到某个量,突然就会了以前完全不会的事。就像练琴——前三百小时听着都一样难听,某一天忽然手就顺了;也好比学骑车,摔了二十次都不会,第二十一次莫名其妙就会了,而且再也不会忘。不是一点点变好,是从"完全不会"跳到"会了"。
预训练最神奇的现象叫涌现(emergence)——某些能力在小模型上完全没有,但当模型规模跨过某个阈值,能力"突然"出现了。这不是渐进上升,而是几乎从 0 跳到 1。已经观察到的涌现能力包括:
- Few-shot 学习给几个例子,模型就能仿写——小模型完全做不到,175B 突然会了。
- 链式推理(CoT)让模型"一步步想",答对率暴涨——小模型没这个能力。
- 指令遵循"用韩语回复"、"写成 markdown"——大模型能听懂,小模型不理你。
- 代码生成写完整函数、修 bug——需要跨过某个参数量阈值才涌现。
- 数学推理解应用题、做证明——只有足够大的模型才能稳定做到。
为什么会涌现?至今没有完全定论。一种理解是:某种能力需要模型内部形成足够复杂的"电路"(circuit),而这些电路只有当参数量、数据量、算力都跨过某条线时才会稳定成型。这也是为什么 AI 公司愿意持续砸钱做更大的模型——你不知道下一个涌现能力会在什么时候出现,但一旦出现,就是产品级的护城河。
给几个有具体阈值的例子,会比抽象描述更有说服力。Google 2022 年那篇涌现论文里统计了多个任务的"起效点":
| 能力 | 涌现阈值(训练算力 / 参数量) | 阈值之下的表现 |
|---|---|---|
| 三位数加减法 | 约 13B 参数 | 接近 0,纯随机 |
| 大学水平物理选择题 | 约 70B 参数 | 接近瞎猜的 25% |
| 思维链提示带来增益 | 约 60B 以上 | 小模型上反而更差 |
| 识别话语中的讽刺 | 约 175B 参数 | 完全无法区分 |
| 多语言零样本迁移 | 约 10²² FLOPs | 只会训练语言 |
但这个概念有一场重要的学术争论,不讲不完整。2023 年斯坦福有研究者提出:涌现可能是"评价指标造成的幻象"(论文标题就叫《大语言模型的涌现能力是幻象吗?》)。他们的论证很犀利:如果你用"整道题全对才给分"这种非连续指标去衡量,那么模型能力的平滑提升在图上就会显示为突然跳变。
举个例子就懂了:假设一道五位数加法题,模型对每一位的正确率从 90% 平滑提升到 99%。用"全对才算分"衡量,准确率从 0.9⁵ = 59% 跳到 0.99⁵ = 95%——图上看是陡升;但如果用"每位算部分分"衡量,曲线就是平滑上升的。这不否认大模型更强,但它提醒我们:涌现可能不是能力的相变,而是我们的尺子刻度太粗。
这场争论至今没有定论,但它有一个非常实用的推论:如果你在做模型评测,用连续指标(部分得分、对数概率)比用二元指标能更早看到能力的萌芽。这对"要不要继续放大规模"的决策非常关键——用粗指标你会觉得"毫无进展",用细指标你可能看到曲线已经在缓慢上升了。
七、Scaling Law 与它的两次修正
整个预训练时代的信仰基础,是 2020 年 OpenAI 的 Kaplan 等人发现的缩放定律(Scaling Law):模型损失与参数量、数据量、算力之间存在稳定的幂律关系,在双对数坐标上是一条直线,跨越七个数量级都不弯。
这条直线的实际意义是把赌博变成了工程:你可以用几百万美元的小规模实验,外推预测十亿美元规模的效果。这是 OpenAI 敢在 GPT-4 上下重注的技术依据——他们在训练前就用小模型拟合出了曲线,预测了最终损失,实际结果落在预测范围内。
| 时期 | 核心论文 | 结论 | 被推翻/修正的部分 |
|---|---|---|---|
| 2020 | Kaplan et al.(OpenAI) | 损失与算力呈幂律;建议参数优先(算力翻 10 倍,参数增 5.5 倍、数据仅增 1.8 倍) | 后被证明学习率调度设置有偏差 |
| 2022 | Hoffmann et al.(Chinchilla) | 参数与数据应同比例增长,最优 20:1 | GPT-3 被判定为严重欠训 |
| 2023 后 | 工业实践 | 要把推理成本算进来,故意"过训"小模型 | Chinchilla 只优化训练算力,不是总成本 |
| 2024 后 | o1 / R1 路线 | 推理时算力也服从缩放定律 | "缩放"从训练扩展到推理 |
为什么 Kaplan 和 Chinchilla 会得出相反的结论?后来的分析指出关键在学习率调度:Kaplan 的实验里,不同规模的模型用了同一套学习率衰减计划,导致小模型(步数少)被过早衰减、成绩被系统性低估,于是"参数更重要"的结论被人为放大了。一个超参设置的疏忽,让整个行业多花了两年、多烧了几十亿美元去堆参数。这是一个关于"实验设计比结论更重要"的经典教训。
2024 年之后,缩放定律进入了一个新阶段:推理时缩放(inference-time scaling)。OpenAI 的 o1 展示了一条新曲线——让模型在回答前生成更长的思维链,准确率随"思考 token 数"呈对数线性上升。这意味着预训练不再是唯一的算力投入口。用一个比喻:过去只能靠"上更多年学"变聪明,现在还可以靠"考试时多想一会儿"。
那么预训练的缩放会撞墙吗?2024 年底开始有明显的行业讨论:多家实验室传出"新一代模型的提升不如预期"。可能的原因有三:高质量数据接近耗尽、损失下降到接近文本熵下限、以及损失的边际下降不再对应能力的明显提升。目前看来共识是——预训练缩放没有停止,但性价比在下降,所以资源正在往"后训练"和"推理时计算"转移。
八、预训练完成后:你得到了什么
一句话先垫底:预训练结束你拿到的,是一个书读了几千万本、却从没进过办公室的应届生。知识全在脑子里,但不会办事——你问他一句话,他不答,反而接着往下续写。说白了他还没搞明白"被人问了就该回答"这条最基本的规矩。
预训练跑完,你会得到一个Base Model(基座模型)——它已经"读过全人类的书",知识渊博,但性格古怪:你问它问题,它可能不回答,而是给你续写;你让它讲笑话,它可能给你一段严肃论文;它不会礼貌、不会拒绝、不懂"对话"的规则。Base 模型是一个"没被驯化的天才怪物"。
要让它变成能对话、有用、安全的助手,还需要下一篇要讲的 SFT → RLHF/DPO 三段式对齐。但基座已经准备好——所有能力都在参数里,只是需要被"唤醒"和"驯化"。
基座模型有多"不听话"?举一个真实的对比就明白了:
# 同一个提示,喂给 Base 模型和 Chat 模型
提示: "如何煮一个完美的鸡蛋?"
【Base 模型的输出】(它在续写,不是在回答)
"如何煮一个完美的鸡蛋?如何煎一块完美的牛排?
如何做一份完美的沙拉?点击下方链接订阅我们的美食周刊,
每周三更新,还有惊喜优惠等着你!关注我们的微博@..."
↑ 它精准地模仿了这段文字在互联网上的典型上下文——
这是一篇美食公众号文章的小标题,后面就该跟这些
【SFT 之后的输出】
"煮鸡蛋的关键是时间控制:
1. 水开后放入冷藏鸡蛋
2. 溏心蛋 6-7 分钟,全熟 9-10 分钟
3. 立刻放入冰水停止余热..."
↑ 它现在知道"这是一个提问,我该回答"
这个例子说明了一件重要的事:SFT 并没有教会它煮鸡蛋的知识——那些知识早就在预训练里了。SFT 只是教会它"当有人这样说话时,应该切换到助手模式"。这就是"预训练给知识、对齐给行为"这句话的实际含义。
九、为什么大多数公司只能微调,不能预训练
前面所有的数字加起来,指向一个非常实际的结论:全球能从零预训练前沿基座模型的组织,不超过 20 家。这不是能力问题,是门票问题。四道门槛缺一不可:
| 门槛 | 具体要求 | 为什么难以绕过 |
|---|---|---|
| 算力 | 上万张 H100 级 GPU,或稳定的云配额 | 不只是钱——2023-2024 年 H100 一度断货,有钱也买不到;出口管制还限制了地区获取 |
| 数据 | 十万亿 token 级的清洗后语料 | 需要 PB 级存储、数千 CPU 核的清洗流水线、专职数据团队,还要处理版权风险 |
| 人才 | 有过大规模训练经验的团队 | 全球有实操经验的人可能只有几千个,且高度集中在几家公司 |
| 容错工程 | 能应对每天崩 8 次的自动化运维 | 这类经验只能从真实的万卡训练中积累,无法从论文里学到 |
所以绝大多数团队的正确路径是站在开放权重模型的肩膀上。下面这张表把不同层级的选择、成本、能改变什么列清楚——它比任何战略分析都实用:
| 做法 | 典型成本 | 需要数据 | 能改变什么 | 适合谁 |
|---|---|---|---|---|
| 提示工程 | 近乎零 | 几个示例 | 只改变"这一次怎么答" | 所有人,第一选择 |
| RAG 检索增强 | 几千到几万美元 | 你的文档库 | 改变"知道什么" | 需要私域知识的场景 |
| LoRA 微调 | 几十到几千美元 | 几百到几万条 | 改变"怎么说"(风格、格式、领域术语) | 有明确任务范式的团队 |
| 全参数微调 | 几千到几十万美元 | 几万到几十万条 | 较深地改变行为 | 有算力和数据的中型团队 |
| 继续预训练 | 几十万到几百万美元 | 几十亿到几千亿 token | 注入新语言 / 新领域的底层能力 | 做垂域或小语种基座的公司 |
| 从零预训练 | 几千万到几亿美元 | 十万亿 token 级 | 一切 | 不到 20 家 |
最后一条实用判断:如果你的问题是"模型不知道我们公司的信息",答案是 RAG,不是微调;如果是"模型的回答格式不对、语气不对、术语不对",答案是微调,不是 RAG。这两件事经常被搞混,而搞混的代价是几十万美元花在错的地方。能用提示解决的别做 RAG,能用 RAG 解决的别做微调,能用微调解决的别做预训练——这条阶梯从下往上,成本每一级涨十倍。
预训练 = 让模型玩几万亿次"猜下一个字"的游戏。数据要海量、算力要顶级、耐心要充足——单次几千万到几亿美元的成本,换来一个通晓万物的基座模型。涌现能力是这场军备竞赛最诱人的奖赏——你不知道更大的模型会突然学会什么,但只要它学会了,那就是护城河。预训练完,基座是怪物;接下来的对齐,才让它变成"人"。
九条要点收束这一节:(1) NTP 的技术形态就是"标签 = 输入右移一位",这个自监督设计把数据瓶颈从"人类能标多少"放大到"互联网有多少字";(2) 预训练本质是压缩——用 810 GB 参数压 60 TB 文本,压缩比 74:1,所以它必须放弃背原文、转而提取规律,这既是理解的来源也是幻觉的来源;(3) NTP 打败 MLM 的硬理由是训练信号密度高 6.7 倍,而 BERT 血统今天活在 RAG 的嵌入模型里;(4) 成本公式是 FLOPs ≈ 6ND,Llama 3 405B 约 3080 万 H100 小时、约 1 亿美元,但纯算力只占总账 30%-50%,失败实验吃掉 20%-40%;(5) 一次训练耗电约 2100 万千瓦时、碳排约 2290 吨——AI 竞赛已经是能源竞赛;(6) Meta 公开的真实数字:54 天里崩了 466 次,平均每三小时一次,其中 GPU 故障占 30%,靠自动检查点回滚才保住 90% 有效时间;(7) 涌现有具体阈值(思维链约 60B 才生效),但斯坦福那篇论文提醒它可能部分是"尺子刻度太粗"造成的幻象;(8) Kaplan 与 Chinchilla 的矛盾源于学习率调度的疏忽——一个超参错误让行业多烧了几十亿美元,而 2024 年后缩放战场已转向推理时算力;(9) 四道门槛(算力、数据、人才、容错工程)让全球只有不到 20 家能预训练,其余团队的正确阶梯是提示 → RAG → 微调 → 继续预训练,每上一级成本涨十倍,能在下一级解决的就别往上爬。