一、接龙大师的知识是哪来的

前几篇一直在用"接龙大师"这个类比,但有个背景从没交代:它的知识是哪来的?它没上过网(推理时),没查过资料,凭什么知道 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(基于人类反馈的强化学习)拆开是两步:

  1. 训练奖励模型:请真人来当裁判。做法是把同一个问题的几个回答摆在一起,让标注员(专门按规则判断样本好坏的岗位,多是外包团队,按条计费)排个序——哪个更有用?哪个更安全(不会教人做危险的事)?哪个更诚实(不知道就说不知道)?把这些排序结果收集起来,训练一个“打分器”:给它任意一个回答,它输出“人类会有多满意”的分数。这个分数就是奖励(reward)——分越高,说明回答越接近人类的偏好;下一步模型就冲着这个分数往高调,所以这个打分器正式名称叫奖励模型(Reward Model)。
  2. 强化学习优化:让模型生成回答、奖励模型打分,分高就强化、分低就抑制,模型逐渐学会人类偏好的回答。

同一套流程,换掉其中一个环节,就得到它的变体 RLAIF(Reinforcement Learning from AI Feedback):把“让标注员排序”换成“让另一个 AI 来排序”,其余不变——成本更低、规模更大。2026 年主流模型普遍采用这类范式或其改进版(如用规则自动判分处理数学、代码等可验证任务)。

对齐还顺手改了一件事,而且常被忽视:它教会了模型宁可拒答,也不硬编;宁可保守,也不冒险作答。你遇到的"这个问题我无法回答"、一大段免责声明、分点作答的工整格式——这些"性格"很大程度是对齐阶段塑造的,不是模型"天生如此"。

三阶段一张图:

海量互联网文本
(万亿级 token)

预训练
下一个 token 预测
知识有损压缩进参数

基座模型
会接龙,不会对话

SFT 微调
人工示范问答对
学会指令跟随与对话格式

对齐 RLHF / RLAIF
偏好排序 → 奖励模型 → 强化学习
学会人类偏好与拒答

可发布的对话模型

知识:压进去的

表达:教出来的

性格:调出来的

五、压缩包不是数据库:幻觉的真正根源

三阶段讲完,可以正面回答那个最要紧的问题了:模型为什么会一本正经地编造?

回到压缩包类比。数据库查询是确定性的:SELECT * FROM fact WHERE id = 'xxx',有就返回,没有就空——数据库"知道自己不知道"。而模型回答问题时,做的事是:基于全部上下文(含问题本身),逐 token 续写"统计上最像答案的文本"。

它不是在查询知识库,它是在续写:

  • 问高频事实:训练数据里反复出现,压缩包里这个模式压得扎实,续写出来就是对的
  • 问冷门事实:压缩包里只有模糊、残缺、互相打架的碎片——但续写照样流畅地接下去,用最"像答案"的词填充空白
  • 模型没有"这题我不会"的内置保险丝:续写永远不会返回空结果,只会返回一段文本。编造和答对,在生成机制上是同一个动作

这就是幻觉(hallucination)的本质:不是模型"说谎",是"有损压缩 + 无条件续写"的必然产物。由此可直接推出幻觉高发区——压缩比高(语料稀疏)的地方:

  1. 冷门事实:小众人物、地方性知识、长尾领域——训练数据里出现太少,压缩得最狠
  2. 精确数字与引用:具体年份、统计数字、论文标题、文献页码——模型学的是数字的"分布风格"而非精确值,续写出来的数字"看着对"但往往不准;编造文献引用是重灾区
  3. 需要一字不差的细节:API 参数名、版本号、配置项拼写——压缩包里存的是"意思",不是"原话"

六、knowledge cutoff:压缩包的封装日期

第二个由三阶段直接推出的结论:知识的截止日期(knowledge cutoff)——预训练语料有收集截止点,之后发生的世界大事压缩包里根本没有,模型自然一无所知。

它不是"忘了",是从未装进去过。哪怕问"昨天"的新闻,它也只能在压缩包里翻找最接近的内容来续写——这正是 cutoff 之后的事件上"自信胡说"的机理。

补齐只有两类:重新训练/继续预训练(重新打压缩包,贵,不常做)或把新信息放进上下文窗口(联网搜索、RAG——不重新压缩,把"新文件"直接摊上白板,见第 02 篇)。后者是工程主流,也是第 08 篇的主角。

七、缓解幻觉:工程师能做的三件事

幻觉无法根除(机理决定了),但可以系统性缓解:

  1. 允许说不知道。在 prompt 里明确给出"不确定就直说"的出口,配合对齐后的拒答倾向,能显著减少硬编。反模式是逼模型"必须回答"——那等于强迫续写。
  2. 让它照着资料答(RAG)。让模型基于检索到的文档作答,把"靠压缩包里的印象作答"改成"照着白板上的材料归纳"——地基是第 05 篇的向量检索,架构在第 08 篇拆。
  3. 把"生成"和"校验"分离。精确数字、代码、引用,用工具算、用编译器验、用检索核——这是第 07 篇 Function Calling 的动机之一。冷门事实类问答再加低 temperature。

一句话收束本篇:模型的"知道"是统计意义上的高频复现,不是事实意义上的查证无误——把它当数据库用,就会收获数据库永远不会给你的惊喜。


小结

  • 三阶段各司其职:预训练把万亿 token 有损压缩进参数(知识);SFT 用示范问答教会指令跟随与对话格式(表达);RLHF/RLAIF 用人类偏好调教出安全与风格(性格)
  • 预训练是有损压缩:高频跨源互证的模式压得扎实,低频孤立细节被压丢或压变形
  • 幻觉的根源:模型在"续写"而非"查询"——编造和答对是同一个生成动作,压缩包没有"我不知道"的返回值
  • 幻觉高发区可直接推导:冷门事实、精确数字、文献引用、API 级细节——都是压缩最狠的地方
  • knowledge cutoff 是压缩包的封装日期,cutoff 之后的不是"忘了"而是"从未装进去";补齐靠把新信息放进上下文(联网 / RAG)
  • 缓解三板斧:允许说不知道、让它照着资料答(RAG,挂第 05 / 08 篇)、生成与校验分离(挂第 07 篇)

思考题

  1. 让模型"列出证明某定理的三篇论文",它给出的论文标题、作者、期刊名全都格式完美,但查无此文。为什么格式完美和内容编造能同时发生?(提示:格式和内容在训练文本里分别是哪种"模式"?哪种被压缩得更扎实?)
  2. 对齐让模型更安全、更礼貌,但工业界流传一个词叫"对齐税"(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:流程四步:

  1. 采样同一 prompt 的多个回答
  2. 人类标注员对这些回答排序
  3. 用排序数据训练奖励模型(学习人类偏好函数)
  4. 用 PPO 等强化学习算法,以奖励模型分数为信号优化策略模型,通常加 KL 约束防止偏离过远

与 SFT 的本质区别:

  • SFT:模仿给定标准答案的监督学习,学"什么样是好答案的样子"。
  • RLHF:优化的是偏好排序这种更稀疏、也更本质的信号,学"在无数种可能回答里,哪种更被偏好",能覆盖 SFT 数据枚举不完的场景。

补充:RLAIF 用 AI 反馈替代人类标注,原理同构、成本更低。

系列导航:上一篇 03《注意力的一句话版本》 → 下一篇 05《Embedding 与向量检索》:语义怎么变成能检索的坐标

Logo

更多推荐