拆大模型 04|知识是从哪来的:预训练、微调与对齐三阶段
一、接龙大师的知识是哪来的
前几篇一直在用"接龙大师"这个类比,但有个背景从没交代:它的知识是哪来的?它没上过网(推理时),没查过资料,凭什么知道 Spring 的 Bean 默认是单例、知道"卷王"是夸人还是损人?
答案:它的一切知识都在训练时压进了参数。本篇用三个阶段拆开这个过程,并贯穿一个类比:
训练 = 把整个互联网打成一个大压缩包;但压缩包不是数据库——它存的是统计规律,不保证按原样解压任何一个文件。
这组对照解释了三种病——幻觉、过时知识、记错数字,病根全在这里。
二、第一阶段:预训练——把互联网压进参数
预训练(pre-training)的目标朴素到离谱:给一段文本,猜下一个 token。就是第 01 篇讲的那场接龙,规模是天文数字:海量网页、书籍、代码、论文——这些训练时喂给模型的文本,统称训练语料;每个位置都遮住下一个 token 让模型猜,猜错就调参,重复亿万次。
为什么这么个游戏能练出"知识"?因为想猜准下一个 token,就必须理解前文:
- 要接上 “public static void”,得见过海量 Java 代码
- 要接上 “水的化学式是 H₂”,得在无数文本里见过这个事实
- 要给一段推理续写结论,得隐式掌握推理的模式
于是"语法、事实、逻辑、风格"这些能力,就在一遍遍猜下一个 token 的过程中顺手练了出来,被一点点固化进参数。这就是那句重要论断的含义:
预训练是对训练语料的有损压缩。 万亿 token 的原始文本,压进几百亿到上万亿个参数里。压缩比意味着必然有损:高频、反复出现、跨文档互证的模式被压得很扎实;低频、孤立、只出现过几次的细节,要么被压丢,要么被压变形。
另外注意:此时模型还不会对话——问它"介绍一下自己",它更可能续写出一堆"介绍自己的方法有……",因为它唯一的技能是接龙,不是回答问题。
三、第二阶段:SFT——学会好好说话
第二步:监督微调(Supervised Fine-Tuning,SFT)。做法是换一套训练材料:几十万到上百万条人工写好的问答,每条是一句提问加一个标准回答。训练方式还是上一步那套——猜下一个 token。区别只在给它的文本:上一步是网上任意一段话,接着往下写就行;这一步是"提问 + 好答案",要往下写,就得照着好答案的样子写。
这一步学到的东西,本质是格式与角色:
- 遇到问题该用"回答"来接,而不是续写一句无关的话
- 指令要跟:让列要点就列要点,让写代码就写代码
- 对话轮次的结构:谁说的、何时该停、system 与 user 的区别
一个误解要澄清:SFT 的目的不是往模型里灌新知识。几十万条问答对里的知识量,相比预训练语料九牛一毛。SFT 教的是"把你已经会的,用人类期待的方式表达出来"——像给满腹经纶但没上过班的博士做入职培训:内容没变多,学会了听需求、说人话、有问有答。
四、第三阶段:对齐——学会人类的偏好
SFT 之后模型会答题了,但还有毛病:可能答出不该答的东西(教人做危险的事、泄露别人的隐私),可能编造,可能啰嗦。第三阶段对齐(alignment)要解决的是:在"会答"和"答得好、答得安全"之间对齐。
主流路线 RLHF(基于人类反馈的强化学习)拆开是两步:
- 训练奖励模型:请真人来当裁判。做法是把同一个问题的几个回答摆在一起,让标注员(专门按规则判断样本好坏的岗位,多是外包团队,按条计费)排个序——哪个更有用?哪个更安全(不会教人做危险的事)?哪个更诚实(不知道就说不知道)?把这些排序结果收集起来,训练一个“打分器”:给它任意一个回答,它输出“人类会有多满意”的分数。这个分数就是奖励(reward)——分越高,说明回答越接近人类的偏好;下一步模型就冲着这个分数往高调,所以这个打分器正式名称叫奖励模型(Reward Model)。
- 强化学习优化:让模型生成回答、奖励模型打分,分高就强化、分低就抑制,模型逐渐学会人类偏好的回答。
同一套流程,换掉其中一个环节,就得到它的变体 RLAIF(Reinforcement Learning from AI Feedback):把“让标注员排序”换成“让另一个 AI 来排序”,其余不变——成本更低、规模更大。2026 年主流模型普遍采用这类范式或其改进版(如用规则自动判分处理数学、代码等可验证任务)。
对齐还顺手改了一件事,而且常被忽视:它教会了模型宁可拒答,也不硬编;宁可保守,也不冒险作答。你遇到的"这个问题我无法回答"、一大段免责声明、分点作答的工整格式——这些"性格"很大程度是对齐阶段塑造的,不是模型"天生如此"。
三阶段一张图:
五、压缩包不是数据库:幻觉的真正根源
三阶段讲完,可以正面回答那个最要紧的问题了:模型为什么会一本正经地编造?
回到压缩包类比。数据库查询是确定性的:SELECT * FROM fact WHERE id = 'xxx',有就返回,没有就空——数据库"知道自己不知道"。而模型回答问题时,做的事是:基于全部上下文(含问题本身),逐 token 续写"统计上最像答案的文本"。
它不是在查询知识库,它是在续写:
- 问高频事实:训练数据里反复出现,压缩包里这个模式压得扎实,续写出来就是对的
- 问冷门事实:压缩包里只有模糊、残缺、互相打架的碎片——但续写照样流畅地接下去,用最"像答案"的词填充空白
- 模型没有"这题我不会"的内置保险丝:续写永远不会返回空结果,只会返回一段文本。编造和答对,在生成机制上是同一个动作
这就是幻觉(hallucination)的本质:不是模型"说谎",是"有损压缩 + 无条件续写"的必然产物。由此可直接推出幻觉高发区——压缩比高(语料稀疏)的地方:
- 冷门事实:小众人物、地方性知识、长尾领域——训练数据里出现太少,压缩得最狠
- 精确数字与引用:具体年份、统计数字、论文标题、文献页码——模型学的是数字的"分布风格"而非精确值,续写出来的数字"看着对"但往往不准;编造文献引用是重灾区
- 需要一字不差的细节:API 参数名、版本号、配置项拼写——压缩包里存的是"意思",不是"原话"
六、knowledge cutoff:压缩包的封装日期
第二个由三阶段直接推出的结论:知识的截止日期(knowledge cutoff)——预训练语料有收集截止点,之后发生的世界大事压缩包里根本没有,模型自然一无所知。
它不是"忘了",是从未装进去过。哪怕问"昨天"的新闻,它也只能在压缩包里翻找最接近的内容来续写——这正是 cutoff 之后的事件上"自信胡说"的机理。
补齐只有两类:重新训练/继续预训练(重新打压缩包,贵,不常做)或把新信息放进上下文窗口(联网搜索、RAG——不重新压缩,把"新文件"直接摊上白板,见第 02 篇)。后者是工程主流,也是第 08 篇的主角。
七、缓解幻觉:工程师能做的三件事
幻觉无法根除(机理决定了),但可以系统性缓解:
- 允许说不知道。在 prompt 里明确给出"不确定就直说"的出口,配合对齐后的拒答倾向,能显著减少硬编。反模式是逼模型"必须回答"——那等于强迫续写。
- 让它照着资料答(RAG)。让模型基于检索到的文档作答,把"靠压缩包里的印象作答"改成"照着白板上的材料归纳"——地基是第 05 篇的向量检索,架构在第 08 篇拆。
- 把"生成"和"校验"分离。精确数字、代码、引用,用工具算、用编译器验、用检索核——这是第 07 篇 Function Calling 的动机之一。冷门事实类问答再加低 temperature。
一句话收束本篇:模型的"知道"是统计意义上的高频复现,不是事实意义上的查证无误——把它当数据库用,就会收获数据库永远不会给你的惊喜。
小结
- 三阶段各司其职:预训练把万亿 token 有损压缩进参数(知识);SFT 用示范问答教会指令跟随与对话格式(表达);RLHF/RLAIF 用人类偏好调教出安全与风格(性格)
- 预训练是有损压缩:高频跨源互证的模式压得扎实,低频孤立细节被压丢或压变形
- 幻觉的根源:模型在"续写"而非"查询"——编造和答对是同一个生成动作,压缩包没有"我不知道"的返回值
- 幻觉高发区可直接推导:冷门事实、精确数字、文献引用、API 级细节——都是压缩最狠的地方
- knowledge cutoff 是压缩包的封装日期,cutoff 之后的不是"忘了"而是"从未装进去";补齐靠把新信息放进上下文(联网 / RAG)
- 缓解三板斧:允许说不知道、让它照着资料答(RAG,挂第 05 / 08 篇)、生成与校验分离(挂第 07 篇)
思考题
- 让模型"列出证明某定理的三篇论文",它给出的论文标题、作者、期刊名全都格式完美,但查无此文。为什么格式完美和内容编造能同时发生?(提示:格式和内容在训练文本里分别是哪种"模式"?哪种被压缩得更扎实?)
- 对齐让模型更安全、更礼貌,但工业界流传一个词叫"对齐税"(alignment tax)——模型在某些基准上的能力经对齐后反而下降。你认为税可能"征"在哪?(提示:想想奖励模型偏好"看起来好的回答"和"真正对的回答"之间的差异,再想想拒答倾向会不会误伤。)
高频面试题
Q1:预训练、SFT、RLHF 三个阶段分别做什么?数据和目标有什么区别?
A:三个阶段,数据规模递减,监督信号从"文本本身"逐步过渡到"人类判断"。
- 预训练:用万亿级无标注文本做下一个 token 预测,目标是最小化预测损失。产出会"接龙"的基座模型,知识在这一阶段被有损压缩进参数。
- SFT:用几十万级人工撰写的高质量"指令-回答"对,继续做同样的预测训练,目标是学会指令跟随与对话格式。它不显著注入新知识。
- RLHF:先用人类偏好排序数据训练奖励模型,再用强化学习优化策略模型,目标是输出更符合人类偏好(有帮助、安全、诚实)的回答。
Q2:大模型幻觉的根本原因是什么?为什么不能靠调参根除?
A:根本原因是生成机制。
- 原因:模型回答问题时执行的是基于上下文的逐 token 续写,知识来自预训练的有损压缩,而非可查证的存储。对低频、稀疏的模式,压缩本就残缺,但续写机制照样会流畅填充——编造与正常作答是同一个动作,生成过程也不存在"不知道"这一输出分支。
- 为什么调参根除不了:它是架构与训练范式的固有属性,不是某个参数没调好。
- 缓解只能靠系统层:检索增强(RAG)、工具校验、允许拒答、降低任务开放度。
Q3:什么是 knowledge cutoff?让模型"知道"新信息有哪几条路?
A:knowledge cutoff 指预训练语料的收集截止时间。之后的信息不在参数内,模型面对相关提问只能按既有模式补写,于是出错。补齐只有三条路:
- 继续预训练 / 微调:往参数里灌新知识。成本高,还可能伤到既有能力,不适合频繁更新。
- 放进上下文窗口(联网检索、RAG):不改参数、实时生效,是工程主流。
- 工具调用:让模型实时查询外部系统。
核心区别:第一条改压缩包,后两条往白板上摊文件(见第 02 篇)。
Q4:RLHF 的完整流程是什么?它和 SFT 的本质区别在哪里?
A:流程四步:
- 采样同一 prompt 的多个回答
- 人类标注员对这些回答排序
- 用排序数据训练奖励模型(学习人类偏好函数)
- 用 PPO 等强化学习算法,以奖励模型分数为信号优化策略模型,通常加 KL 约束防止偏离过远
与 SFT 的本质区别:
- SFT:模仿给定标准答案的监督学习,学"什么样是好答案的样子"。
- RLHF:优化的是偏好排序这种更稀疏、也更本质的信号,学"在无数种可能回答里,哪种更被偏好",能覆盖 SFT 数据枚举不完的场景。
补充:RLAIF 用 AI 反馈替代人类标注,原理同构、成本更低。
系列导航:上一篇 03《注意力的一句话版本》 → 下一篇 05《Embedding 与向量检索》:语义怎么变成能检索的坐标
更多推荐


所有评论(0)