对应 Maps to:Stanford CS324 Winter 2023 Advances in Foundation Models,3/6 客座报告 Yejin Choi(日历上没有题目);3/13–3/15 期末展示(课程项目)。 依据说明:课程网站没有 Choi 报告的题目、slides 或录像。本讲依据她的研究组在报告前后公开发表的三篇论文全文:Symbolic Knowledge Distillation(West et al.,NAACL 2022)、Faith and Fate: Limits of Transformers on Compositionality(Dziri et al.,NeurIPS 2023)、The Generative AI Paradox(West et al.,ICLR 2024),以及她 2023 年 TED 演讲 Why AI is incredibly smart — and shockingly stupid 的官方简介(我没能读到演讲的文字稿,所以不引用其中的具体例子)。她在报告里具体讲了什么,我无法确认。课程项目页面(Project)在课程网站上只有标题,没有具体要求,§6 是我写的一般性建议。§4 的全课回顾和 §5、§7 的”2023 年之后”是我补充的。 配套代码 Code:
code/lecture20/(PyTorch;2 个脚本。代码 01 约 35 秒,02 约 75 秒) 预计阅读时间:2.5 小时(含运行代码)
0. 本讲导航 · How to read this lecture
0.1 学习目标 Learning goals
学完这一讲,你应该能够:
- 复述”生成式 AI 悖论”:模型的生成能力可以超过它对同类内容的理解能力,而人类通常是先理解、后会生成;说出它对”用人类的标准解读模型”意味着什么。
- 解释 Faith and Fate 的三个发现:训练分布之内接近完美、之外急剧下降;“部分正确”来自信息增益高的表面规律;准确率随计算步数指数下降——并在小模型上复现它们。
- 描述符号知识蒸馏(老师生成 → 评审过滤 → 学生学习),解释学生为什么能超过老师,以及要怎样检查这种”超过”是不是来自覆盖面的缩小。
- 用五个反复出现的想法回顾整门课,说出每一讲的核心结论和代码里看到的现象。
- 说出 2023–2026 年最重要的变化(推理模型、后训练、合成数据、开放权重、智能体、监管),哪些原有的结论仍然成立、哪些被修正了。
- 为一个基础模型项目写出清楚的问题、基线、评测和风险分析。
0.2 先修与本讲范围 Prerequisites & scope
| 默认你已经会 Assumed | 说明 |
|---|---|
| 第 1–19 讲 | 本讲是总结,频繁引用前面的讲次 |
| 第 5 讲 §2.1:;§5:草稿与思维链 | 用于 §2 |
| 第 7 讲:指令微调与对齐;第 16 讲:记忆 | 用于 §3、§5 |
0.3 本讲地图 Map
§1 会生成 ≠ 会理解?Yejin Choi 的问题
§2 组合推理的边界(Faith and Fate) ← 代码 01
§3 从大模型蒸馏出小而强的模型(Symbolic Knowledge Distillation)← 代码 02
§4 全课回顾:五个想法、二十讲、迷你世界里看到了什么
§5 2023–2026:什么变了,什么没变
§6 怎样做一个基础模型项目
§7 2023 年之后(本讲主题)
§8–12 小结、常见误区、练习、延伸阅读、课程之后
0.4 记号 Notation(只列本讲新增的)
| 术语 | 含义 |
|---|---|
| 计算图 computation graph | 把一个任务的解法写成有向无环图:节点是中间结果,边是依赖 |
| 分布内 / 分布外(ID / OOD) | 训练时见过的问题规模 / 没见过的规模 |
| 相对信息增益 RelativeIG | :看到输入的一部分 后,输出的一部分 的不确定性减少的比例 |
| 符号知识蒸馏 | 用老师生成的文本(而不是 logits)训练学生 |
| 评审 critic | 判断一条生成是否可接受的分类器 |
0.5 关于数字 · About the numbers
论文里的数字都标明了出处。代码的数字来自真实的训练(PyTorch 单线程,固定种子,重复运行逐字相同;本讲的模型不缓存,每次重新训练,都在一两分钟内)。几处结果和我写代码前的预想不一样:在 CPU 上训练的小模型连”2 位数 × 2 位数”都学不会,我只好把分布内的范围缩小到”2 位数 × 1 位数”;从零训练的小学生在老师的生成上学不好,学生改成了”老师的一份拷贝”;评审过滤后的学生”超过老师”,主要来自体裁组合的变化。完整清单在代码 README 的”关于实验结果”里。
1. 会生成 ≠ 会理解? · Generation vs understanding
Yejin Choi 长期研究常识:人人都知道、但几乎从不写下来的知识(“水是湿的”、“把东西放进冰箱它会变冷”)。她的研究组建立了常识知识图谱 ATOMIC、常识模型 COMET,以及很多常识推理的评测。到 2023 年,大语言模型在很多考试上超过了大多数人,却仍然会在一些小孩都不会犯错的问题上出错。她在 2023 年的 TED 演讲(Why AI is incredibly smart — and shockingly stupid)里讨论的正是这种反差:演讲简介说,她指出了大语言模型的三个关键问题,展示了它们在基本的常识推理上犯的可笑错误,并主张构建更小的、以人类规范和价值观训练的 AI 系统。她把 AI 比作”几乎是一个新的智能物种”。
West et al.(The Generative AI Paradox: “What It Can Create, It May Not Understand”,ICLR 2024,Choi 是作者之一)把这种反差表述成一个可以检验的假说:
生成式 AI 悖论:生成模型被直接训练去复现专家水平的输出,因此获得的生成能力并不以理解同类输出的能力为前提,甚至可以超过后者。人类则不同:基本的理解几乎总是先于专家水平的生成。
他们在语言和图像上做了两类实验:选择式评测(给几个候选,让模型挑出正确的那个——人类在这类”理解”任务上通常比生成更容易)和提问式评测(就模型自己生成的内容向它提问)。结果:模型在生成上可以超过人类,但在理解上一贯不如人类;生成和理解表现之间的相关性比人类弱;对对抗性的输入更脆弱。结论是:不要用类比人类智能的方式来解读模型——一个能写出专家水平文章的模型,不一定”懂”它写的东西。
这一讲的两个代码实验从两个方向看这个问题:§2 看模型在”需要真正组合多步推理”的任务上怎样失败;§3 看怎样用”生成 + 判断”把模型的输出变成更可靠的知识。
2. 组合推理的边界 · Limits of compositionality (Faith and Fate)
2.1 把任务写成计算图
Dziri et al. 2023 选了三个需要把问题拆成子步骤、再组合起来的任务:多位数乘法、逻辑网格谜题(爱因斯坦谜题)、一个经典的动态规划问题。每个问题的解法都可以写成一个计算图:多位数乘法里,节点是一位数乘法的结果、部分积、进位、逐位相加的结果。图的深度(最长依赖链)和宽度量化了任务的组合复杂度。
动机:GPT-4 在很多复杂任务上表现惊人,但现成的 ChatGPT 和 GPT-4 在 3 位数 × 3 位数的乘法上只有 55% 和 59% 的准确率——而人类学会规则之后就能做对。这些错误是偶然的,还是说明了更根本的局限?
2.2 三个发现
- 分布内接近完美,分布外急剧下降。他们在约 180 万道”1 位 × 1 位到 4 位 × 2 位”的乘法上穷尽地微调 GPT-3:训练过的规模接近完美,没训练过的规模急剧下降。用草稿(把计算图线性化写出来)微调也一样;把训练延长到远超过拟合点(想看到第 12 讲的”顿悟”)也没有改善分布外的表现;从零训练一个逐位分词的 GPT-2 XL 也一样。
- 部分正确来自表面规律。模型的答案常常”接近”:首位、末位对,中间错。用相对信息增益可以预测这一点:乘积的首位和两个数的首位高度相关,末位完全由两个数的末位决定。模型先学会了这些捷径,而中间的数位需要真正组合很多部分积和进位。错误分析显示,计算图的前几层节点几乎都对,越往后对的比例越接近 0;错误主要是”前面的错误传下来”。
- 准确率随复杂度指数下降。理论部分证明:如果每一步都以一定的概率出错、并且错误会传播,整体正确的概率随步数(图的深度)指数衰减。
他们的解释:Transformer 把多步的组合推理”线性化”成了子图匹配——如果测试问题的计算图和训练时见过的子图相似,就能做对;否则失败。它们没有必然地学到系统性的解题方法。
2.3 在小模型上复现
代码 01 用第 1 讲的 TinyGPT(2 层、64 维,换成 13 个字符的字母表)从零训练做乘法,每一步都是新出的题,答案按正常顺序(最高位在前)写。
演示 1:只在”最多 2 位数 × 1 位数”上训练(3000 步):
| 规模 | 训练过? | 全对 | 首位对 | 末位对 | 位数对 |
|---|---|---|---|---|---|
| 1 × 1 | 是 | 1.000 | 1.000 | 1.000 | 1.000 |
| 2 × 1 | 是 | 0.990 | 0.990 | 1.000 | 1.000 |
| 1 × 2 | 是 | 0.997 | 0.997 | 1.000 | 1.000 |
| 2 × 2 | 否 | 0.000 | 0.330 | 0.273 | 0.000 |
| 3 × 1 | 否 | 0.000 | 0.197 | 0.150 | 0.043 |
| 1 × 3 | 否 | 0.030 | 0.490 | 0.227 | 0.070 |
| 3 × 3 | 否 | 0.000 | 0.000 | 0.000 | 0.000 |
训练过的规模几乎全对,只多一位就几乎全错——如果模型学会了乘法的算法,多一位不会有任何区别。它连”答案有几位”都没有学成通用的规则(位数对的比例在没见过的规模上只有 0–7%)。这就是 Faith and Fate 的第一个发现的微缩版。
演示 2:在更大的范围(最多 3 位 × 2 位)上训练同样的模型(2000 步):
| 规模 | 训练过? | 全对 | 首位对 | 末位对 |
|---|---|---|---|---|
| 1 × 1 | 是 | 1.000 | 1.000 | 1.000 |
| 2 × 1 | 是 | 0.547 | 0.970 | 0.943 |
| 3 × 1 | 是 | 0.283 | 0.967 | 0.947 |
| 2 × 2 | 是 | 0.080 | 0.863 | 0.923 |
| 3 × 2 | 是 | 0.007 | 0.807 | 0.947 |
| 3 × 3 | 否 | 0.000 | 0.353 | 0.197 |
范围一大,这个小模型在分布内也学不会了(2 × 2 只有 8%);但首位和末位大多是对的。在全部 8100 道 2 位 × 2 位的题上精确计算相对信息增益:乘积的末位被两个数的末位完全决定(1.000),首位很大程度上由两个数的首位决定(0.673),而第二位几乎不能从首位或末位猜出来(0.045 和 0.034)。模型学到的正是信息增益高的那些捷径——这是 Faith and Fate 的第二个发现。“部分正确”的答案看起来很接近,其实说明模型并没有在执行乘法。
演示 3:指数下降。把”组合的步数”记作 = 位数1 × 位数2 − 1(1 × 1 只是查乘法口诀表),拟合 准确率 ≈ :
| 规模 | 实际全对 | () | |
|---|---|---|---|
| 1 × 1 | 0 | 1.000 | 1.000 |
| 2 × 1 | 1 | 0.547 | 0.400 |
| 3 × 1 | 2 | 0.283 | 0.160 |
| 2 × 2 | 3 | 0.080 | 0.064 |
| 3 × 2 | 5 | 0.007 | 0.010 |
一个参数的指数模型大致描述了下降的形状(中间的规模实际更好一些)。这和第 5 讲 §2.1 的 是同一个公式:那里它解释了”涌现”为什么可能是度量造成的错觉,这里它解释了为什么组合任务的难度会随规模急剧上升。
2.4 这说明什么、不说明什么
- 它说明:在任务数据上训练,模型倾向于学捷径和见过的子图,而不是可以外推的算法;在训练分布之内的高分,不代表学会了”规则”。
- 它不说明 Transformer 原则上学不会乘法。换一种输入格式(例如把数位倒序写,让模型可以从最低位开始逐位计算)、把中间步骤写出来、用更大的模型和更多样的数据,都能把可以学会的规模往上推;我们的小模型规模太小,结论也只适用于这个规模。
- 第 5 讲的草稿实验(同样算力下草稿模型 1.000,直接写答案 0.828 / 0.000)说明:中间 token 让每个答案可以使用的串行计算更多。Faith and Fate 发现草稿也没有让 GPT-3 泛化到更大的规模——“能用更多计算”和”学到了正确的算法”是两回事。
3. 从大模型蒸馏出小而强的模型 · Symbolic knowledge distillation
3.1 从”人 → 语料 → 机器”到”机器 → 语料 → 机器”
训练常识模型的传统做法是:人写一个常识知识图谱(例如 ATOMIC-2020,约 60 万条,由众包工人撰写),再用它训练模型(COMET)。West et al. 2022 提出反过来:让通用的大语言模型写知识图谱。
- 宽松的老师:用精心设计的少样本提示,让 GPT-3 生成大量的常识推理(“X 做了某事,因此 X 想要……”),得到 650 万条的 ATOMIC-10x。
- 评审:请众包工人判断一小部分生成是否可接受,在这些判断上训练一个 RoBERTa 分类器,用它过滤低质量的生成——“宽松的老师 × 评审 = 严格的老师”。
- 学生:在过滤后的语料上训练一个小 100 倍的模型(GPT-2 XL,15 亿参数)——COMET-distil。
结果(人工评测的”可接受”比例):
| 语料 | 可接受 | 规模 |
|---|---|---|
| 人写的 ATOMIC-2020 | 86.8% | 60 万 |
| GPT-3 生成的 ATOMIC-10x(不过滤) | 78.5% | 650 万 |
| 评审过滤(宽松) | 88.4% | 510 万 |
| 评审过滤(严格) | 96.4% | 250 万 |
| 模型 | 可接受 |
|---|---|
| GPT-3(老师,少样本提示) | 73.3% |
| COMET(在人写的 ATOMIC-2020 上训练) | 81.5% |
| COMET-distil(不过滤) | 78.4% |
| COMET-distil(严格评审) | 87.5% |
两个令人意外的结论:机器生成、经过评审的知识图谱在数量、质量、多样性上都第一次超过了人写的版本;而学生超过了老师——甚至在加评审之前(78.4% vs 73.3%)。原因之一:老师是一个通用模型,靠少样本提示”临时”做这个任务;学生是专门在这个任务的高质量数据上训练出来的专家。
“符号”的意思是:蒸馏的媒介是文本(一个可以阅读、审查、过滤、复用的知识库),而不是传统知识蒸馏(Hinton et al. 2015)里老师的概率分布。它也只蒸馏老师能力的一个方面(常识),学生可以是另一种模型。
3.2 在迷你世界里做一次
代码 02:老师是第 1 讲的 base model;它生成的每一行都可以用 fm_world.check_line 判断真假(相当于”人工判断”);评审是一个逻辑回归,只用 300 条判断训练,特征是老师自己对这一行的平均损失、最大单字符损失和表面体裁(评审不知道世界的真相)。
演示 1:老师写的东西有多可靠(温度 1,1995 行;括号里是行数):
| 体裁 | 人物 | 问答 | 加法 | 评论 | 故事 | 不合格式 | 总体 |
|---|---|---|---|---|---|---|---|
| 真实率 | 0.55(251) | 0.76(25) | 0.04(521) | 0.98(608) | 0.99(446) | 0.00(144) | 0.612 |
评论和故事几乎都对;人物介绍只有一半多是真的(名字、城市、职业张冠李戴——幻觉);加法几乎全错。这是一个”宽松的老师”。
演示 2:评审。在评审没见过标签的 1695 行上(不过滤时真实率 0.620):
| 阈值 | 保留的行数 | 保留下来的真实率 | 真实的行被保留的比例 |
|---|---|---|---|
| 0.5 | 1053 | 0.944 | 0.946 |
| 0.7 | 942 | 0.982 | 0.880 |
| 0.9 | 894 | 0.999 | 0.850 |
只用 300 条标注,真实率就从六成提到了九成以上。但看阈值 0.7 时它保留了什么:加法 437 行全部删掉;问答 22 行也全部删掉(尽管老师的问答八成是对的——300 条标注里问答太少,评审没学会信任它);人物介绍 208 行只保留了 31 行(真实率 0.56 → 0.90);评论和故事几乎全部保留。评审提高质量的主要方式,是把整类内容去掉。
演示 3:学生。我们没有”更小的预训练模型”,所以学生是老师的一份拷贝,在不同的语料上继续训练 300 步,然后自己采样 1000 行:
| 模型 | 总体 | 人物 | 加法 | 评论 | 不合格式 |
|---|---|---|---|---|---|
| 老师 | 0.610 | 0.55(133) | 0.04(259) | 0.98(305) | 72 行 |
| 学生:未过滤的老师输出 | 0.541 | 0.30(101) | 0.03(190) | 0.97(327) | 191 行 |
| 学生:评审过滤 | 0.881 | 0.56(39) | 1.00(1) | 0.99(539) | 94 行 |
| 学生:完美过滤(只留真的) | 0.884 | 0.74(85) | 0.17(12) | 0.99(446) | 78 行 |
| 学生:同样多的人写数据 | 0.649 | 0.66(140) | 0.07(271) | 0.99(337) | 45 行 |
- 在未过滤的老师输出上训练,学生比老师更差(0.541):它把老师的错误学得更牢了。用模型自己的输出训练模型,错误会累积——2023 年之后被称为”模型崩溃”的现象和它有关(§7)。
- 在评审过滤的语料上训练,学生的总体真实率大幅超过老师(0.881 vs 0.610)——West et al. 的核心发现在这里重现了。
- 但要看清楚超过的来源:学生几乎不再写加法和问答,更多地写评论和故事这些容易的体裁;不合格式的行并没有比老师少;在人物介绍这个”知识”体裁上,真实率和老师差不多(0.56 vs 0.55),写得也少得多。“超过老师”主要来自不再尝试自己做不好的事,而不是学到了更多的知识。对照:用完美过滤的语料,学生在人物介绍上确实更准了(0.74)——评审不够好时,这部分收益就没了。
所以评测蒸馏时,质量要和覆盖面、多样性一起看。West et al. 也专门检查了评审是否只保留了”安全”、单调的例子(他们的结论是过滤后仍然保持了多样性);我们的玩具里,评审确实丢掉了整类内容。
4. 全课回顾 · The course in review
4.1 五个反复出现的想法
第 1 讲开头列出了整门课反复出现的五个想法。现在可以用二十讲的内容回看它们:
- 配方很简单:自监督预训练 + 适配(第 1、3、6、7 讲)。预测下一个 token 这个目标,在迷你世界里先后”长出”了评论打分、人物事实、跨格式问答;适配就是在某个参数族里找参数——提示、探针、LoRA、全量微调只差”允许改什么”。指令微调和 RLHF 让模型从”续写文档”变成”完成任务”。
- 数据决定能力(第 2、14、15、16、17、18 讲)。质量过滤按体裁、按群体误伤;重复数据让模型从学规律转向背样本;CLIP 的鲁棒性来自训练分布;模型原样复现数据里的偏斜;记忆随重复次数增长;几十条毒数据就能植入后门,而且看的是条数而不是占比。
- 规模带来新东西,也带来新问题(第 4、5、8、9、10 讲)。损失随算力按幂律下降,Chinchilla 说参数和数据应该等比例增长;“涌现”可能部分是 的度量错觉;FlashAttention、3D 并行、混合精度和故障恢复是把规模做上去的工程;规模也让记忆、碳排放和训练的不稳定性更严重。
- 我们还不太理解它们(第 5、11、12、20 讲)。ICL 可以看成隐式贝叶斯推断;预测就是压缩;induction head、模加法的傅里叶电路、叠加和稀疏自编码器是”读出算法”的几个成功例子;但模型也会学捷径而不是算法(Faith and Fate),会生成不等于会理解(生成式 AI 悖论)。
- 同质化:一个模型,所有应用(第 1、13、16–19 讲)。一次改进处处受益(任务向量、模型合并、开源协作),一个缺陷处处继承(隐私、后门、偏见);结果同质化让同一批人处处被拒绝;监管在”管模型还是管应用”之间摇摆。
4.2 二十讲,一张表
| 讲次 | 主题 | 一句话 | 迷你世界里看到的一个现象 |
|---|---|---|---|
| 1 | 导论 | 基础模型 = 广泛数据上的自监督 + 适配;涌现与同质化 | 一个预测下一个字符的模型”长出”了多种能力 |
| 2 | 数据 | 过滤、去重、污染、配比都是设计选择 | 质量过滤让加法练习 0% 留下;泄漏的题 0.27 → 0.73 |
| 3 | 架构与目标 | decoder-only 成为默认 | 比较架构时评测协议必须相同(T5 的 0.00 是协议错误) |
| 4 | 规模定律 | 幂律、、Chinchilla | 拟合和外推很脆弱,少一个点结论就变 |
| 5 | 涌现与 ICL | ;ICL ≈ 贝叶斯推断;草稿提供串行计算 | 小模型的 ICL 和贝叶斯最优几乎重合 |
| 6 | 适配 | 提示、探针、PEFT、领域适配、模型编辑 | 在一句话上微调把 87% 的其他人也改了 |
| 7 | 指令与对齐 | SFT、RLHF、奖励过度优化 | SFT 学会格式但没有”解锁”知识 |
| 8 | FlashAttention | 受限于带宽;精确的 IO 感知算法 | 读写差一个常数倍,变成线性的是显存 |
| 9 | 分布式训练 | 数据 / 张量 / 流水线并行、ZeRO | 不同的切法算同一个函数,但浮点舍入让轨迹分开 |
| 10 | 训练实录 | 混合精度、尖峰、检查点、goodput | QK 归一化在三个种子上都最稳定 |
| 11 | 压缩 | 预测 = 压缩;在线编码;MDL | base model 把验证集压到 0.356 bit/字符 |
| 12 | 机制可解释性 | 残差流、induction head、顿悟、叠加 | induction head 在第 700–1000 步相变出现 |
| 13 | 开源协作 | 任务向量、合并、补丁 | 任务算术最好(0.814),TIES、Fisher 没有赢 |
| 14 | 多模态 | CLIP、扩散、Flamingo、VPT | 词袋文本编码器在交换测试上恰好 0.500 |
| 15 | 领域模型 | 共进化、pass@k、几何先验 | 82% 的正确程序和参考答案写法不同 |
| 16 | 隐私 | 记忆、提取、成员推断、DP | 重复 64 次的秘密被直接说出;DP 下区号仍学得会 |
| 17 | 安全 | 网络规模投毒、后门 | 后门看条数不看占比 |
| 18 | 伦理 | 偏见、过滤器误伤、同质化 | 更公平的模型在有偏的测试集上显得更差 |
| 19 | 环境与法律 | 碳账本、版权、差别影响 | 同一次训练换个电网差 10.8 倍 |
| 20 | 总结与前沿 | 组合推理的边界;符号蒸馏 | 多一位数就全错;学生”超过”老师的来源 |
4.3 迷你世界教会了我们什么
整门课的代码都在一台笔记本的 CPU 上运行,模型只有约十万个参数。它们显然不是 GPT-3;但它们有一个大模型没有的优点:我们知道真相。迷你互联网里每个人住在哪里、每个代词的比例、每条秘密是什么、每个后门的触发词,都是我们设定的。这让很多在大模型上只能间接推断的问题,可以被直接测量。
同样重要的是那些和预想不一样的结果:ELECTRA 没有赢 BERT、自洽性不如贪心、TIES 没有赢任务算术、参考模型校准没有帮上成员推断、后门能被干净数据洗掉、CDA 让整行损失变低……每一讲的代码 README 都记录了这些”关于实验结果”。它们提醒我们:小规模的实验能把机制讲清楚,但结论能否推广到大模型,需要谨慎;而诚实地报告不符合预期的结果,本身就是研究的一部分。
5. 2023–2026:什么变了,什么没变 · What changed since 2023
CS324 Winter 2023 开课时,ChatGPT 刚发布 6 周。每一讲的”2023 年之后”已经讨论了各自主题的发展;这里把最重要的变化放在一起看。
| 变化 | 内容 | 和课程的关系 |
|---|---|---|
| 推理模型与推理时计算 | 2024 年起,用强化学习训练模型写长思维链(OpenAI o1、DeepSeek-R1 等),在数学、代码上大幅进步;算力从”训练更大的模型”部分转向”推理时想得更久” | 第 5 讲的草稿与串行计算;第 4 讲的规模定律多了一个维度 |
| 后训练成为主战场 | DPO 等直接偏好优化、可验证奖励的强化学习(RLVR)、大规模合成数据 | 第 7 讲的 RLHF;第 20 讲的符号蒸馏 |
| 开放权重模型 | Llama、Mistral、Qwen、DeepSeek 等开放权重模型接近闭源前沿;模型合并、LoRA 生态繁荣 | 第 13 讲;第 18 讲的发布规范 |
| 数据 | 数据质量和配比被认为是关键;合成数据大量使用;版权诉讼和授权协议改变了数据的获取方式 | 第 2、19 讲 |
| 长上下文与多模态原生模型 | 上下文从几千个 token 到上百万;图像、音频、视频在一个模型里统一 | 第 8 讲(注意力的效率)、第 14 讲 |
| 智能体 | 模型调用工具、浏览网页、写代码并执行,完成多步任务 | 第 17 讲的提示注入成为头号安全风险 |
| 推理基础设施 | 推理成本超过训练成为主要开销;分页 KV cache、推测解码、量化 | 第 8–10 讲;第 19 讲的能耗 |
| 可解释性 | 稀疏自编码器扩展到前沿模型,读出数百万个可解释的特征 | 第 12 讲 |
| 监管 | 欧盟《人工智能法》、前沿模型的安全框架、透明度报告 | 第 18、19 讲 |
没有改变的:配方(自监督预训练 + 适配)仍然是核心;数据决定能力比以往任何时候都更被强调;规模定律仍然是规划训练的工具(并扩展到了推理时计算);我们仍然不太理解它们——更强的模型让理解变得更紧迫;同质化更严重了:越来越多的产品建立在少数几个模型上。
被修正的:
- “涌现能力不可预测”——部分被”度量选择造成的错觉”解释(第 5 讲),但推理模型等新能力仍然让人难以提前预测。
- “更大就更好”——Chinchilla 之后,“在更多数据上训练更小的模型”和”推理时花更多算力”成为同样重要的选项。
- “模型不会推理,只会模式匹配”——推理模型在很多多步任务上取得了显著进步;但 Faith and Fate 式的研究仍然发现,它们的准确率随问题规模下降,分布外的泛化仍不可靠。
6. 怎样做一个基础模型项目 · Doing a foundation model project
CS324 的成绩里,课程项目占 75%(网站上的描述:做一个基础模型驱动的应用 / demo,或者一个研究项目),最后两周是期末展示。课程网站的项目页面没有给出具体要求,下面是根据这门课的内容总结的一般建议。
两类项目:
- 应用型:用基础模型解决一个具体的问题。关键问题:为什么需要基础模型(而不是规则或小模型)?用提示、检索、微调还是智能体?怎样评测”它真的有用”?失败时会伤害谁?
- 研究型:回答一个关于基础模型的问题(某种现象为什么出现、某种方法是否有效)。关键问题:能不能在一个知道真相的受控环境里研究它(这门课的迷你世界就是这个思路)?结论能推广到多大的规模?
一个可以复用的清单(每一条都对应前面的某一讲):
- 先定评测,再定方法。评测协议要对所有比较的方法一致(第 3 讲 T5 的教训);检查测试集污染(第 2 讲 §7)。
- 最简单的基线:提示、检索、小模型、规则。很多时候它们已经足够好(第 6 讲)。
- 算力预算:用 和利用率估算训练成本(第 4、19 讲);在小规模上把实验做对,再放大(第 4、10 讲)。
- 多个种子:阈值附近的结果可能非常随机(第 10、17 讲);先量出噪声,再解读小的差别。
- 写数据文档:数据从哪里来、覆盖了谁、漏掉了谁、有没有隐私和版权问题(第 2、16、19 讲)。
- 风险分析:偏见与误伤、隐私、滥用、谁承担成本(第 16–19 讲);对生成内容做事实核查(幻觉)。
- 诚实地报告:包括不符合预期的结果和局限;说清楚哪些结论来自小规模实验、能否推广。
- 可复现:固定种子、记录配置、发布代码(这门课的每一讲代码都做到了”同一台机器上重复运行逐字相同”)。
7. 2023 年之后(本讲主题) · Since 2023
- 推理模型与组合任务:用强化学习训练的长思维链模型在多位数乘法这类任务上比 GPT-4 好得多,但后续的测试仍然发现准确率随位数增长而下降;模型在”见过的推理模式”之外的泛化仍是活跃的研究问题。Faith and Fate 提出的”计算图复杂度”成为分析这类模型的常用框架。
- 蒸馏推理过程:DeepSeek-R1 把大模型生成的长推理过程蒸馏给更小的开放模型,小模型的推理能力大幅提升——这是”符号知识蒸馏”在推理上的直接延伸:老师生成文本(推理过程),经过过滤(答案正确的才保留),学生学习。
- 合成数据与模型崩溃:Shumailov et al. 2024(Nature)发现,反复用模型自己生成的数据训练下一代模型,分布的尾部会逐渐消失、模型质量退化(“模型崩溃”);后续研究表明,保留真实数据、混合使用、做好过滤可以避免崩溃。代码 02 里”在未过滤的老师输出上训练,学生变差”是它的一个小例子。合成数据仍然被大量使用——关键在于评审和过滤。
- 从常识到价值:Choi 在 TED 演讲里主张构建”以人类规范和价值观训练的”更小的系统;她的研究组后来也研究了用模型生成、人类审核的方式构建规范和价值观的知识库。“让 AI 理解人类的常识和价值”仍然是一个开放的问题。
- 生成 vs 理解:生成式 AI 悖论之后,研究者更注意区分”模型能生成”和”模型能判断 / 解释”,例如让模型评审自己的输出(LLM-as-a-judge)时的偏差和局限。
8. 小结 · Summary
- 生成式 AI 悖论:模型的生成能力可以超过它对同类内容的理解;不要用类比人类的方式解读模型。
- 组合推理的边界(Faith and Fate):穷尽地微调后,分布内接近完美、分布外急剧下降;部分正确来自信息增益高的表面规律;准确率随步数指数下降。我们的小模型:只训练到 2 位 × 1 位,训练过的规模 0.990–1.000,多一位就 0.000–0.040;末位由末位完全决定(相对信息增益 1.000)、首位 0.673、第二位 0.045,模型学到的正是这些捷径;准确率 ≈ 。
- 符号知识蒸馏:老师生成 → 评审过滤 → 学生学习。West et al.:过滤后的机器生成知识库在数量、质量、多样性上超过人写的版本,学生超过老师(87.5% vs 73.3%)。我们的玩具里:300 条标注的评审把语料真实率从 0.62 提到 0.98;未过滤的学生变差(0.541),过滤后的学生超过老师(0.881 vs 0.610)——但主要靠不再写自己写不对的体裁,知识类体裁没有进步。质量要和覆盖面一起看。
- 全课的五个想法:配方简单、数据决定能力、规模带来新东西和新问题、我们还不太理解它们、同质化——二十讲的结论都可以归到这五条之下。
- 2023–2026:推理模型、后训练、开放权重、合成数据、长上下文与多模态、智能体、推理基础设施、监管。配方和”数据决定能力”没有变;“更大就更好""模型只会模式匹配”被部分修正。
- 做项目:先定评测、要有简单的基线、估算算力、多跑种子、写数据文档、做风险分析、诚实报告、可复现。
9. 常见误区 · Common pitfalls
- “模型能写出专家水平的文章,说明它理解了。” 生成和理解可以分离(生成式 AI 悖论)。
- “分布内的准确率很高,说明模型学会了规则。” 多一位数就可能全错(代码 01 演示 1)。
- “部分正确说明模型’差一点’就会了。” 首位、末位对可能只是信息增益高的捷径,中间的组合根本没在做(演示 2)。
- “给模型加思维链,它就会泛化到更难的问题。” 草稿提供了更多计算,但 Faith and Fate 发现它没有让模型泛化到没见过的规模。
- “学生超过了老师,说明蒸馏创造了新知识。” 先看覆盖面:可能只是丢掉了老师做不好的那部分(代码 02 演示 3)。
- “模型生成的数据越多越好。” 不过滤的自我训练会让模型变差(代码 02、模型崩溃)。
- “小模型上的结论可以直接推广到大模型。” 本课程的玩具实验能讲清楚机制,但规模会改变很多结论(例如后门的顽固性、记忆的程度)。
10. 练习 · Exercises
练习 1(指数下降的算术) 假设一个 步的计算里,每一步独立地以 0.95 的概率做对。(a) 10 步、50 步、100 步全对的概率分别是多少?(b) 如果想让 100 步全对的概率达到 0.9,每一步的准确率至少要多少?
参考答案
(a) ,,。(b) ,即每一步的错误率要低于约 0.1%。这说明为什么长链条的任务需要纠错(检查中间结果、回溯)而不只是更高的单步准确率——推理模型的长思维链里大量的”检查”和”重来”正是在做这件事。
练习 2(相对信息增益) 在所有两位数加法 ()上:(a) 和的个位由 、 的个位完全决定吗?相对信息增益是多少?(b) 和的十位只看 、 的十位,能完全确定吗?为什么?
参考答案
(a) 是:个位 = ,相对信息增益为 1。(b) 不能:十位 = ,其中进位 取决于个位之和是否 ≥ 10,只看十位不知道有没有进位,所以相对信息增益小于 1(但很高,因为进位只会让结果差 1)。这和乘法里”末位由末位决定、中间的数位需要组合”是同样的道理;加法的组合比乘法简单得多(只有一条进位链),所以小模型学加法比学乘法容易。
练习 3(改代码,预测结果) 在代码 01 里把演示 1 的训练范围 NARROW 加上 (2, 2)(变成最多 2 位 × 2 位),其余不变。你预测 2 × 1 和 2 × 2 的全对率会怎样?
参考答案
根据演示 2 的结果(训练范围更大时,同样大小的模型在分布内的准确率大幅下降:2 × 1 从 0.990 降到 0.547),2 × 1 的全对率很可能也会下降,2 × 2 的全对率会很低(演示 2 里是 0.080)——具体数字以你运行的结果为准。原因是同样的模型容量和训练步数要覆盖的输入—输出对应多得多(2 位 × 2 位有 8100 种组合,而且每一种都需要组合多个部分积)。如果模型学的是”算法”,加入更大的规模不应该损害小规模的表现;它确实损害了,说明模型在”记”对应关系,容量是瓶颈。
练习 4(评审为什么删掉了问答) 代码 02 的评审把问答整类删掉了,尽管老师的问答八成是对的。(a) 用评审的训练方式解释为什么。(b) 提出两种改进。
参考答案
(a) 评审只用 300 条标注训练;老师生成的问答很少(1995 行里只有 25 行),300 条标注里大约只有 4 条问答,评审几乎没有关于这个体裁的信息,它的”体裁”特征和交叉项无法学到”问答通常可信”,于是按其他特征(例如损失偏高)把它们判为不可信。(b) 按体裁分层抽样标注(保证每个体裁都有足够的标注);或者用主动学习,优先标注评审最不确定的样本;也可以在报告中对每个体裁单独设阈值,并检查过滤后的体裁分布是否和过滤前差太多(覆盖面检查)。
练习 5(概念:学生为什么能超过老师) West et al. 的学生在加评审之前就超过了老师 GPT-3(78.4% vs 73.3%)。用两个原因解释,并说明为什么在我们的玩具里”未过滤的学生”反而比老师差。
参考答案
原因:(1)专精:老师是通用模型,靠少样本提示临时完成任务,输出的格式和质量参差不齐;学生在 650 万条同一任务的数据上训练,成为这个任务的专家,输出更一致。(2)平均掉噪声:学生学习的是大量生成的分布,单条生成里的随机错误在训练中被”平均”掉了一部分,学生学到的是老师最常见的(往往是对的)模式。我们的玩具里未过滤的学生变差,是因为老师在加法、人物介绍上的错误是系统性的(不是随机噪声),而且学生只是老师的拷贝、再训练 300 步,它把这些错误的模式学得更牢(并且不合格式的行增多了),没有”专精”可言。
练习 6(概念:五个想法) 从第 1–19 讲里各选一个你认为最能说明下面两个想法的结论:(a) “数据决定能力”;(b) “同质化”。说明你的理由。
参考答案
(开放题,举例)(a) 第 18 讲:模型原样复现了语料里随手设定的职业—代词比例(平均绝对差 0.041)——模型没有任何”理由”,它的偏见完全来自数据;或第 17 讲:几十条毒数据就能植入后门。(b) 第 18 讲的结果同质化:每家公司的准确率不变,共享组件让被所有公司拒绝的人从 0.4% 涨到 19%;或第 16 讲:一个模型记住的隐私,任何下游应用都可能把它说出来。理由要说明:这个结论为什么不能只从单个系统的角度理解。
练习 7(项目设计) 你想做一个”用开放权重模型帮助社区诊所整理病历摘要”的应用型项目。按 §6 的清单,写出你的评测方法、两个基线、一个算力估算和三项风险。
参考答案
(开放题,举例)评测:请临床人员按一份清单(关键诊断、用药、过敏是否遗漏或错误)给摘要打分,计算遗漏率和错误率,并记录幻觉;测试集用和训练 / 示例完全分开的病历。基线:(1)只抽取结构化字段(诊断代码、用药表)的规则方法;(2)不微调、只用提示的同一个模型。算力:7B 模型的 LoRA 微调,几千条病历、每条约 2000 token, 约 FLOPs,单张 GPU 几个小时;推理成本按诊所每天的病历数估算。风险:(1)隐私——病历不能离开诊所,模型和推理必须在本地(第 16 讲 §7),注意模型对训练病历的记忆;(2)幻觉——摘要里编造的用药可能造成伤害,需要人工复核和原文引用;(3)性能差异——对方言、少数语言的病历表现更差(第 18 讲),需要分组评测。
11. 延伸阅读 · Further reading
原课(3/6 Yejin Choi)
- Dziri et al. Faith and Fate: Limits of Transformers on Compositionality. NeurIPS 2023. arXiv:2305.18654
- West et al. Symbolic Knowledge Distillation: from General Language Models to Commonsense Models. NAACL 2022. arXiv:2110.07178
- West et al. The Generative AI Paradox: “What It Can Create, It May Not Understand”. ICLR 2024. arXiv:2311.00059
- Choi. Why AI is incredibly smart — and shockingly stupid. TED 2023. ted.com
补充
- Hwang et al. COMET-ATOMIC 2020: On Symbolic and Neural Commonsense Knowledge Graphs. AAAI 2021. arXiv:2010.05953
- Hinton, Vinyals & Dean. Distilling the Knowledge in a Neural Network. 2015. arXiv:1503.02531
- Shumailov et al. AI models collapse when trained on recursively generated data. Nature 2024. doi:10.1038/s41586-024-07566-y
- DeepSeek-AI. DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. 2025. arXiv:2501.12948
- Bommasani et al. On the Opportunities and Risks of Foundation Models. 2021(整门课的出发点,值得在学完之后重读). arXiv:2108.07258
12. 课程之后 · After the course
这是 CS324 中文讲义的最后一讲。如果你想继续深入:
- 从零构建:本目录下的 CS336(从零构建语言模型)把第 3、4、8、9 讲的技术内容讲得更深、更偏实现。
- 推理与智能体:CS329A(自我改进的 AI 智能体)讨论了 2024 年之后的推理时计算和智能体。
- 推理基础设施:CS349D 讨论了把模型服务给大量用户时的系统问题。
- 可信与社会:CS329T(可信机器学习)、CS329H(从人类反馈中学习)展开了第 16–18 讲的话题。
最重要的建议和这门课的代码一样:找一个知道真相的小问题,亲手做实验,诚实地记录结果——包括那些和你预想不一样的。