你有没有想过一个问题:ChatGPT 回答得头头是道,这些知识从哪来的?是你提问之后它现查的吗?不是。在见到你之前,它已经把能找到的书全读完了。这一步叫预训练。读完之后还有一步,教它怎么跟人好好说话,叫后训练。今天把这两步拆开讲讲。
预训练:把图书馆读完
预训练干的活,说白了只有一件:接话。给模型看一句话的前半段,让它猜下一个字。猜错了调参数,猜对了就强化。整个互联网的网页、书籍、代码,都被拿去当了猜字题库。
规模有多大?Qwen3 的技术报告写了:36 万亿个 token,覆盖 119 种语言和方言。上一代 Qwen2.5 是 29 种语言,这一代翻了四倍多。36 万亿 token 不好想象,光按汉字粗算(一个汉字约 0.6 个 token,之前算过这笔账),相当于近两千万套四大名著。而且它读书分三步:先用 30 万亿以上的通用语料打底,再喂科学、代码这类知识密集的数据,最后专门练长文本。读书都讲究由浅入深。
为什么要专门练长文本?因为预训练时模型一次只读一小段,遇到很长的代码仓库、几百页的合同,它没整本读过。最后一阶段就是把训练窗口拉长,让模型学会处理几十万 token 连在一起的内容。你在聊天框里贴一篇长文档它也能接得住,功夫是这一阶段练的。
中文还多一层麻烦。高质量中文语料的公开量比英文少,模型家族里中文能力一代代往上爬,靠的是数据清洗和多语言标注系统,把 30 万亿以上的 token 按教育价值、领域、安全性一个个打标,再决定哪些数据多喂、哪些少喂。这份笨功夫没有捷径。
读这么多书到底值不值?2022 年 DeepMind 的 Chinchilla 论文训练了 400 多个模型做实验,结论很直接:模型大小和训练数据要一起涨,只堆参数不堆数据,模型练不满。他们用和 Gopher 一样的算力,把 70B 的模型喂了 4 倍的数据,结果全面压过 280B 的 Gopher。数据不够,参数来凑,凑不动。
不过,刚读完书的模型只是台续写机器。你问它「法国首都是哪」,它可能反手接一句「法国首都是哪,这道题困扰了无数地理老师」。它见过太多类似的句子,所以顺着写。它不知道你在提问,它只知道接话。
后训练:从会接话到会回答
把续写机器变成助手,靠的是后训练。最基础的一步是监督微调,行话叫 SFT:请人写出高质量的问答示范,一条条喂给模型,让它模仿。OpenAI 的 InstructGPT 就是这么起步的,标注员先写示范答案,模型照着学。
光模仿还不够。再往上是人类反馈强化学习,也就是 RLHF:让模型一次生成几个答案,人打分排序,再把这套偏好教给模型,让它朝高分方向调。这套流程我之前单独写过一篇,这里不展开(见RLHF 那篇)。
后训练的效果有多夸张?还是 InstructGPT:走完这套流程的 1.3B 小模型,在人工评估里被优先于 175B 的原版 GPT-3,参数差了 100 倍。大家宁可选小的、听话的,不要大的、胡说的。
模型一开始并不服这套管教,执行指令时容易跑偏。后来社区发明了 DPO:不绕强化学习那一圈,直接拿成对的好坏答案对比着训,工程上省事很多,慢慢成了 RLHF 之外的主流选项。要提醒的是,两边都吃偏好数据,想要一个听人话的模型,这步省不掉。
同一批参数,性能也能靠后训练再拔一截。Qwen3 的做法是把思考模式(见思考模式那篇)直接揉进模型里:一道题进来,先在内部一步步推理再作答,复杂问题调高思考预算,简单问题直接回。同一个模型,遇难题是学者,遇闲聊是朋友,开关藏在后训练里。
一千条数据,够教一个模型吗
2023 年有个更狠的实验,叫 LIMA。研究者拿 65B 的 Llama,只用 1000 条精心挑选的问答做监督微调,没有 RLHF,没有偏好建模。就这 1000 条,模型在人工评估里 43% 的情况被认为和 GPT-4 打平甚至更好,对 Bard 这个数字是 58%,对用了人类反馈的 DaVinci003 是 65%。
论文给的解释值得记下来:大模型的知识,几乎都是在预训练阶段读进去的。后训练只需要少量数据,教它把话说好。读书十年,上岗培训一个月,活儿照样干得漂亮。
这也解释了为什么后训练治不好幻觉。模型的错误知识是读书时记下的,后训练调的是表达方式,知识本身记错了,它没法凭空改对。所以幻觉要压,更多得靠检索外挂或者等下一代重新读书(见幻觉那篇)。
顺着这个思路,还能看清模型性能三级跳的分工。预训练定下限:读书越多,底子越厚,懂的东西越多。后训练定下限之上的表现:会不会听指令,会不会一步步想。部署时的采样参数(见temperature 那篇)管临时发挥:同一个模型,温度调高就发散,调低就保守。三层叠起来才是你手里那个模型的完整样子。
这对你选模型有什么用
两个实际判断。
第一,看版本。同一个底座经常出两个版本,一个 base,一个 instruct 或 chat。base 版刚读完书,续写强,聊天弱;instruct 版上过岗,会听指令。我在本地跑模型时下错过一次,拉了 base 版回来,一对话全是在续写段落,还以为是模型坏了。
第二,看天花板。模型懂不懂行、推理强不强,基本由预训练决定,后训练调的是态度和格式。别指望一个 7B 的小模型靠后训练逆袭 70B,上限在读书那一步就定下来了。想自己改模型行为,路径也不是重做预训练,而是微调,成本差着几个数量级(见我自己跑微调那篇)。
把地图拼完整:Transformer 是地基(见Transformer 那篇),预训练负责读书,SFT 和 RLHF 负责上岗培训,微调做小修小补。下次看到新模型发布会写「预训练消耗了多少万亿 token」,你就知道,那是它在报自己读了多少本书。