第8讲 · CS224N 后训练 (Post-training):从预训练语言模型到 ChatGPT
| 课程 | Stanford CS224N: Natural Language Processing with Deep Learning(Spring 2024) |
| 讲次 | Post-training(后训练) |
| 讲师 | Archit Sharma(Stanford 博士生;本课程主讲为 Diyi Yang,本节为客座讲授) |
| 视频 | https://www.youtube.com/watch?v=35X6zlhoCy4 |
| 课程主页 | https://web.stanford.edu/class/cs224n/ |
| 幻灯片来源 | cs224n-2026-lecture08-posttraining.pdf(官方逐页文字见 course/slides_text.md) |
对应讲次:第8讲(Stanford CS224N 自然语言处理)
制作模型:deepseek-flash(vb compose,据 run.log)
版权说明:CS224N 的讲义与幻灯片版权归 Stanford CS224N 课程组(Diyi Yang 等)所有;本书为课堂口语记录的中文重构,用于学习参考,非官方教材。引用论文与工具均给出原始出处,请以原始资料为准。
导览
这一讲的核心问题,用讲师自己的话来说,是:"我们如何从一个只会预测下一个 token 的预训练模型,走到像 ChatGPT 这样的通用助手?" 他把这段旅程拆成四段: 缩放(scaling)、上下文学习(in-context learning)、指令微调(instruction fine-tuning)、面向偏好的优化(RLHF 与 DPO)。
难点在哪。 真正的分水岭不在"提示"或"指令微调",而在于理解 语言建模的目标 与 满足人类偏好的目标 之间的错位。提示、思维链、指令微调都还在"预测 token"的旧框架里打转;只有当你意识到"我们想直接优化一个由人类偏好定义的奖励"时,范式才发生转变。而一旦开始优化一个 学来的 奖励模型,就会出现"奖励黑客(reward hacking)"这个反复出现、也最容易被初学者忽略的陷阱。
读者可能带着的疑问。
- ① 讲师真正提出的问题:为什么光靠扩大模型与数据还不够?RLHF 到底解决了什么、又留下了什么?DPO 凭什么敢"去掉 RL",而且做得几乎一样好?
- ② 编者预判的读者疑问(编者预判,非讲师原文):
- 提示、指令微调、RLHF、DPO 这四者是什么关系?能不能跳过前面的直接做后面的?(讲师在课堂问答中明确回答:指令微调仍是"非常重要的一步"。)
- 公式里的 KL 惩罚项、配分函数 $Z(x)$ 到底在干什么?
- 既然 DPO 更简单又够用,为什么还留着 RLHF?
- 人类偏好数据本身可靠吗?谁来标注?
本讲路线。 讲师先讲"规模缩放 + 上下文学习 / 思维链",说明模型其实"能做"任务、只是需要被诱导;再过渡到指令微调,把"诱导"变成训练信号;接着系统引出 RLHF(奖励建模 + 策略梯度 / PPO);最后用一大段数学推出 DPO,把整个 RL 步骤消解成一个二分类损失。
编者说明:本节幻灯片标注为"Lecture 7",PDF 文件名为
...lecture08...,而视频标题是"Lecture 10"——三处编号不一致。可能的原因是课程正在改编讲义、或复用了他次课的幻灯片,详见文末「已知疑点」。
一、开场:规模缩放的双重驱动
(参考时间 00:00:05)
讲师 Archit Sharma 这样开场:他是 Stanford 的博士生,今天要讲后训练(post-training)。他说,过去几年机器学习领域非常激动人心——随着大语言模型和 ChatGPT 的出现,一切都变了。今天的目标,是让大家更清楚地理解 "我们是怎么从预训练模型走到 ChatGPT 的",旅途中会经过提示、指令微调、DPO 和 RLHF。
📷 CS224N 后训练讲座封面
回到原视频 (00:00:05)
(参考时间 00:00:51)
讲师先讲这个领域最根本的一个信念:规模缩放(scaling)——模型越来越大,消耗的算力越来越多。
📷 语言模型的规模不断增大
回到原视频 (00:00:56)
他展示了一张从 1950 年代到"约 $10^{24}$ FLOPs"的模型规模图,并特意提醒这张图已经过时——今天真正的数字早已超过 $10^{26}$。更关键的是,更多算力需要更多数据:你得有东西可训练。
📷 预训练所消耗的 token 数量逐年增长
回到原视频 (00:01:32)
讲师抛出一个问题:"2024 年,我们大概用了多少 token?"有学生猜了一个数字,讲师说很接近——接近 15 万亿 token,最近发布的 Llama 3 大约就是在 15 万亿 token 上训练的;而 2022 年的 GPT-2/3 时代还是约 1.4 万亿。他请大家体会一下这个量级:没有人在一生中能"听完"数万亿 token。
编者拓展|"算力"与"token"到底是什么 - FLOPs(Floating Point Operations,浮点运算次数)是衡量"训练花了多少计算"的常用单位。$10^{24}$ 与 $10^{26}$ 相差 100 倍,反映的是训练成本的天翻地覆。 - token 是模型处理文本的基本单位,一个英文单词常被切成一到多个 token。GPT 系列的 tokenizer 大约把每 4 个字符切成 1 个 token。所以"15 万亿 token"粗略相当于上千万亿量级的文本。
(参考时间 00:02:30)
接下来讲师问了一个更根本的问题:我们表面上只是在预测下一个 token,为什么值得花上亿美元?因为在预训练过程中,模型学到的不只是语法和事实(比如"Stanford University is located in Santa Clara, California"),它似乎还形成了某种更深的东西。
📷 语言模型是"世界模型"吗?
回到原视频 (00:02:30)
他给了一个精妙的例子:一段文本描述"把保龄球和叶子从同一高度同时释放"的实验。
- 如果结尾写"Pat 是一位物理学家,他预测保龄球和叶子会以相同速度落地";
- 若把最后一句改成"Pat 从未见过这个实验,他预测保龄球会先落地"——
模型对下一句的预测会随之改变。要做出这种预测,模型必须对"人是怎么想的"有某种理解。
讲师补充说,这类"世界模型"的证据近年不断积累(其中一部分仍是推测性的):优化下一个 token 的预测损失时,模型不只学到语法和知识,似乎还在为智能体(agents)的信念与行为建模。他还展示了几类例子:理解圆的方程与中心、写代码(他个人最常用的例子——GitHub Copilot 能根据几个命令或函数模板自动补全代码),乃至医疗场景。
编者拓展|"预测下一个 token 就能学到世界模型"这件事为何引人注目 直觉上,语言建模只是压缩文本。但若模型要最小化整个语料库上的预测误差,它就不得不隐含地"记住"文本背后的规律——包括物理常识、他人心理(心智理论)、代码逻辑。一个著名讨论见论文 Emergent Abilities of Large Language Models(Wei et al., 2022),它把"能力随规模突然出现"的现象命名为"涌现(emergence)"。讲师在稍后也提到:有后续研究认为,若把坐标轴画对,这种"突然出现"会显得没那么突然——这是本讲一个被"留白"的争议点。
(参考时间 00:05:00)
于是讲师给出了对当今大模型的定位:它们正在成为通用的多任务助手(general purpose multitask assistant)。
📷 语言模型作为多任务助手
回到原视频 (00:05:00)
这里有一个他半开玩笑的个人注脚:"每当我身体有点问题,我大概会去问 ChatGPT 或者 Claude——但我不推荐你们这么做,请别听我的医疗建议。"这句话本身不重要,重要的是它反映了模型的野心:从文本预测,走向能替人做很多事。
编者说明:讲师在这里用"how do we get from this to this"点明整节课的动机——左边是"Stanford University is located in ____"这种填空式预训练,右边是能听懂意图的助手。这个"从填空到助手"的转化,就是后训练的全部内容。
二、世界模型,还是多任务助手?——计划的两条线
(参考时间 00:06:48)
讲师先给出了这一讲的总计划,并鼓励大家随时打断提问——他说这节课"有很多有趣的例子和有趣的技术"。
📷 讲授计划(含"下一步是什么")
回到原视频 (00:06:48)
计划的六步是:
- 指令微调(instruction fine-tuning)
- 基于人类偏好的强化学习(RLHF)
- InstructGPT 与 ChatGPT
- RL 与奖励建模的局限
- 直接偏好优化(DPO)
- 人类偏好数据;人类反馈 vs. AI 反馈
编者说明:课程幻灯片里有两版几乎相同的"Lecture Plan"(Slide 2 与 Slide 7),差别只在于 Slide 7 多了一项"What's next?"。读者可以把它们理解为"目录"的分页重放。
三、上下文学习:零样本、少样本与思维链
(参考时间 00:07:00)
这一段的内容在幻灯片页面上没有专门配图,讲师是"讲着讲着就把 GPT 系列带出来了"。我们从 GPT 的演进讲起。
3.1 从 GPT-1 到 GPT-3
GPT(Generative Pre-trained Transformer)是一系列只有解码器(decoder-only)的模型,2018 年起步,到 2020 年演进为 GPT-2、GPT-3。
- GPT-1:在约 4.6 GB 文本上训练,12 层 Transformer,用下一个 token 预测损失。它本身并不强,但证明了"预训练 → 微调"这套配方对通用任务有效。
- GPT-2:把参数从 1.17 亿扩到约 15 亿,数据从 4 GB 扩到约 40 GB。一个有趣的数据清洗细节是:他们按 Reddit 上的点赞数(upvote) 来筛选数据。
- GPT-3:参数从 15 亿暴涨到 1750 亿,数据从 40 GB 扩到 600 GB(今天已是 TB 量级)。
3.2 零样本(zero-shot)学习
传统做法是:拿几个例子更新模型参数,再适配具体任务。但随着预训练数据与任务越来越多,出现了一个新现象——模型能"零样本"完成任务:不给任何示例,只靠数据分布本身,就能做摘要、跟随简单指令、做一点数学。
(参考时间 00:08:56)
那么,怎么让一个"只预测文本"的模型去做具体任务?答案是创造性地设计提示:
- 想问答(比如关于 Tom Brady 的问题),就把背景信息和问题拼在一起,让模型"自动补全"答案。讲师把这类模型形容为"高级自动补全器"。
- 想判断指代关系,比如"猫钻不进帽子,因为它太大了"里"它"指谁,可以分别把"cat"和"hat"代入,比较两种句子的对数概率(log probability)哪个更高。
3.3 少样本(few-shot)学习
GPT-3 带来的另一个重要能力是少样本学习:在上下文里放几个示例,不做任何梯度更新,模型就能推断出任务。
(参考时间 00:13:20)
讲师特别强调这一点"很疯狂":拿一个翻译任务,只要在上下文里放几个英法对照的例子,模型就能接着翻译——而你们(指同学)在作业里可是要正经训练一个翻译模型的!更惊人的是,随着模型变大,少样本学习能逼近甚至超过专门为某任务训练的模型(例如翻译任务是拿"只训练翻译数据的"专用系统作对照,两边的差距在缩小)。
讲师也坦白这是一个有争议的话题:一种说法是"能力随规模涌现",另一种更近期的观点认为"只是坐标轴画得不对"。但总的趋势是清晰的——随着参数和算力增加,"从几个例子到一个强大系统"这件事越来越容易。
(参考时间 00:17:53)
3.4 思维链(Chain of Thought)
有一些任务连提示都很难做,尤其是涉及多步推理的(讲师说,人类做这些题也会挣扎,比如多位数加法)。这时需要更聪明的提示技巧——思维链。
核心思路:不要只给"任务的样子",还要给推理过程本身。例如,与其直接给答案,不如给一段"先想 A 再想 B 最后得 C"的推理示例,于是模型在新问题上也会先推理、再作答,效果显著提升。
讲师补充:思维链同样随规模提升——在某些推理基准上,仅凭"思维链"这一招,就能超过当时参数量约 540 亿的监督式最优模型。
(参考时间 00:19:49)
更进一步:甚至可以不给任何示例,只要在答案开头写上 "let's think step by step(让我们一步步来)",模型就会自己开始推理。这就是 "Let's think step by step" 这篇论文的发现。他给出数字:某数据集上零样本准确率从 17.7 提升到 78.7(仍然不如"多示例 + 思维链",但提升巨大)。
graph LR
A["零样本<br/>直接补全答案"] --> B["少样本<br/>上下文放几个例子"]
B --> C["思维链<br/>示例里含推理过程"]
C --> D["零样本思维链<br/>只加一句 let's think step by step"]
style A fill:#eef
style D fill:#efe
讲师借这个例子给出一个重要的元教训:当你和这类模型交互时,往往不是模型做不到,而是你没诱导出它想要的行为。正确的思路是去想——"互联网上什么样的预训练数据能诱导出我想要的行为?"然后照着去构造提示。
编者说明:注意这条元教训的适用范围——它是针对提示(prompting)的。讲师随即指出,提示的缺点是"上下文里能塞的东西有限",而且"要费劲去诱导模型做你本来就想要它做的事"并不令人满意。于是自然过渡到指令微调。
四、指令微调:把"诱导"变成训练信号
4.1 语言建模 ≠ 辅助用户
(参考时间 00:22:30)
讲师指出一个关键错位:预训练的目标从来不是"辅助用户",而是"预测下一个 token"。你可以靠提示去"诱导",但本质上模型并不是为此训练的。
📷 语言模型与用户意图不对齐
回到原视频 (00:22:30)
他给了一个经典例子:让当时还比较强的 GPT-3 "用几句话给六岁小孩解释登月",结果模型会接着追问更多关于六岁小孩想知道什么的问题——这不是你要的。
📷 登月的错误补全示例
回到原视频 (00:22:40)
用今天的术语说,这叫模型没有对齐(aligned)用户意图。接下来的内容,就是讲如何让模型对齐。
4.2 从"预训练/微调"到"预训练/指令微调"
(参考时间 00:23:29)
经典范式是"预训练 + 微调":
📷 预训练 / 微调范式
回到原视频 (00:23:29)
- 第一步:预训练(在语言建模上)——大量文本,学到通用知识;
- 第二步:微调(在你的任务上)——少量标注,适配具体任务。
这一讲的变化在于:不再只在"一个小任务"上微调,而是同时在"很多很多任务"上微调,并试图把它们塞进一个用户可用的界面里。
📷 把微调扩展到多个任务
回到原视频 (00:23:56)
(参考时间 00:24:20)
4.3 指令微调的配方
配方本身非常简单:
📷 指令微调(FLAN-T5)
回到原视频 (00:24:20)
- 收集大量 (instruction, output) 对,横跨多种任务;
- 在这些对上微调语言模型;
- 在未见过的任务上评估泛化能力。
(参考时间 00:25:00)
讲师强调:和通常情况一样,数据 + 模型规模是成功关键。例如 Super-NaturalInstructions 数据集包含 1600+ 任务、300 万+ 示例,涵盖分类、序列标注、改写、翻译、问答等。
📷 Super-NaturalInstructions 数据集的规模
回到原视频 (00:25:00)
编者说明:讲师这里还开了一个玩笑——"既然任务这么多,我们是不是已经很难再叫它 '微调' 了?它越来越像预训练。"这点值得记住:指令微调与预训练的边界正在模糊,区别主要在于数据的"形态"(是否成对的指令—回答)而非"规模感的差异"。
(参考时间 00:25:50)
4.4 用什么来评估?——MMLU 与 BIG-Bench
讲师说评估是"极其棘手"的话题(另有专门讲座),他只用两个例子说明。
📷 MMLU:大规模多任务语言理解
回到原视频 (00:25:50)
MMLU(Massive Multitask Language Understanding) 用 57 个知识密集型任务衡量模型表现,题目是选择题,既可以直接问,也可以用思维链或少量示例来问。
📷 MMLU 的题目示例
回到原视频 (00:26:00)
例如天文学里问:"关于 Ia 型超新星,下列哪项为真?"生物学里也有大量题目。讲师说,随着预训练数据与模型规模增长,模型在这些基准上的分数一路上升,而 90% 常被视为"接近人类水平"的标杆线。
📷 MMLU 上的进展
回到原视频 (00:26:45)
在课堂问答里,有学生提出一个尖锐的问题:"这会不会又是另一个 CIFAR/ImageNet——你的方法其实过度拟合了基准?" 讲师承认这确实是测试集泄漏(test set leakage) 的合理担忧,并说评估本身因此很棘手;但他给了一个"实用主义"的补充:如果一个模型真的在各种你关心的事上都能用,分数边界的重要性就会下降。不过他也承认,很多时候模型"答错"其实是因为题目本身就有歧义——所以任何基准的效用都是有限的。
(参考时间 00:27:50)
另一个基准是 BIG-Bench,包含 200+ 个任务,跨度很广。
📷 BIG-Bench 基准
回到原视频 (00:27:50)
(参考时间 00:28:50)
4.5 指令微调带来的增益:越大越明显
讲师回顾:T5 是编码器—解码器模型,用 span corruption(片段破坏) 任务预训练;Flan-T5 则是在 T5 基础上又多微调了 1800 个任务。
📷 指令微调带来的性能增益
回到原视频 (00:28:50)
一个反复出现的主题是:模型越大、数据越多,对任务信息的响应性就越强。他给出具体数字——从 T5-small 到 T5-XXL(约 110 亿参数),指令微调相对于预训练的提升从 +6.1 涨到 +26.6。
下面两张图直观对比了同一模型指令微调前 / 后在消歧问答上的表现:
📷 指令微调之前:没能按指令"一步步思考"
回到原视频 (00:29:15)
📷 指令微调之后:能正确回答
回到原视频 (00:29:45)
(参考时间 00:30:00)
4.6 指令微调数据集:一片"数据的海洋"与几条经验
讲师说,指令微调数据集如今百花齐放,LLaMA 发布之后,开源社区开始"自己造"指令数据。
📷 指令微调数据集的多样性
回到原视频 (00:29:57)
他总结出几条经验:
📷 从中学到了什么
回到原视频 (00:30:41)
- 可以用大模型生成指令数据:拿 GPT-4 或 Claude 生成 (instruction, output) 对,来训练更小的开源模型——"这其实是一条非常成功的配方"。
- 数据量不一定要海量:如果质量足够高,上千条示例也能奏效,这就是 LIMA: Less Is More for Alignment(Zhou et al., 2023)的结论。
- 众包也有效:例如 Open Assistant 这类开源众包项目。
编者拓展|为什么"少量高质量数据"也能对齐? LIMA 的假设是:预训练已经把"知识"和"能力"学进去了,对齐阶段主要是在教模型"用什么格式、什么口吻、什么姿态"来输出。如果这个假设成立,那么对齐更像是在"选择一种表达风格",而非"注入新知识",因此不需要海量数据。这与讲师反复强调的"预训练学到了很多,后训练是在诱导"一脉相承。
4.7 课堂问答:代码、创作与"数据分布"
(参考时间 00:31:30)
有学生问:既然代码和数学有明确的"分步结构",那我们是不是只要训练代码模型,再补点英语,就能拿到最好的推理能力?
讲师回答(大意):代码数据在预训练混合里确实非常有用,人们经常在预训练数据里"加大代码的比例";但取决于用户要拿模型干什么——很多用户是拿模型做创作(写故事、写剧本),而"只训练推理任务"未必对创作有帮助。
接着又有学生追问:那创作任务本身是否也存在一种"高价值的数据分布"?讲师说,互联网上大量故事、文章本身就是这种数据;他甚至抛出一个有趣的观点:"创造力"可能是"幻觉"的一个副作用。他坦承自己也没有确切答案。
五、指令微调的局限:为什么我们需要"面向偏好"
(参考时间 00:34:00)
讲师说,理解这些局限很重要,因为它是我们转向"优化人类偏好"的动机。
📷 指令微调的局限
回到原视频 (00:34:00)
5.1 三个问题
- 收集真值数据很贵。预训练可以"从网上爬",但指令微调需要招募人来写答案,任务越复杂(比如物理博士级问题)越贵。
- 开放式任务没有"标准答案"。比如"写一个关于小狗和它宠物蚱蜢的故事"——本来就没有唯一正确答案。
- 语言建模对所有 token 级错误一视同仁,可实际上有些错误更严重。讲师举例:把某剧称为"冒险剧(adventure)"也许还行,但称为"音乐剧(musical)"就错得离谱——然而在 token 级的损失里,这两种错误被同等惩罚。
他进一步指出一个越来越相关的问题:人类不一定能写出最高质量的答案。模型的回答正变得越来越强,你反而会被"人类能写多好"所限制。
(参考时间 00:36:36)
5.2 根本矛盾:目标错位
讲师把三条问题归结为一个总的矛盾:即使做了指令微调,我们优化目标(预测 token)与真正的目标(满足人类偏好)之间仍有巨大错位。我们只是把数据换成了更精心整理的版本,本质没变。
于是问题变成:能不能直接优化"人类偏好"? 这正是 RLHF 与 DPO 的主题。
编者说明:课堂上有学生问:"既然指令微调有局限,我们是不是可以跳过它?"讲师明确回答:指令微调仍然是非常重要的一步,虽然也有人尝试"直接从预训练跳到偏好优化",但那仍是探索方向。另一位学生追问:"预训练会不会也有问题 2 那样的毛病?"讲师答:预训练覆盖的文本极多(约 15 万亿 token,而指令微调只是百万到十亿量级),对同一个提示往往能看到多种不同的续写,因此它会自然给不同答案分配概率质量;而指令微调常常只看到一个答案,更容易"押注"在单一回答上。但总体上,两个阶段都有这个毛病。
六、面向人类偏好优化(一):奖励与强化学习
6.1 把"人类偏好"写成一个优化目标
(参考时间 00:39:30)
讲师说,现在我们直接尝试满足人类偏好:不再让人类写数据、再做 token 级预测,而是直接优化偏好。
具体用摘要(summarization) 作例子:假设有一个"人类奖励函数",能给每段摘要打分 $R(s) \in \mathbb{R}$,越高越好。
📷 为人类偏好做优化:以摘要为例
回到原视频 (00:39:30)
我们想最大化从语言模型采样出的样本的期望奖励:
$$ \mathbb{E}_{\hat{s}\sim p_\theta(s)}\big[R(\hat{s})\big] $$
(参考时间 00:41:00)
6.2 强化学习登场
📷 强化学习来救场
回到原视频 (00:41:00)
讲师说,这类目标正是强化学习(RL) 研究多年的东西(Williams, 1992;Sutton & Barto, 1998)。他顺带梳理了 RL 的"复兴史":2013 年前后 RL 与深度学习、游戏结合(如 DQN);而 RL 用到现代语言模型上则是更近的事(Ziegler et al., 2019;Stiennon et al., 2020;Ouyang et al., 2022)。他还提到一个关键新进展——PPO(Schulman et al., 2017),它让 RL 能稳定地作用于大模型。
📷 通过梯度上升优化人类偏好
回到原视频 (00:41:20)
最朴素的想法是:既然要最大化期望奖励,就做梯度上升:
$$ \theta_{t+1} := \theta_t + \alpha \nabla_{\theta_t}\mathbb{E}_{\hat{s}\sim p_{\theta_t}(s)}\big[R(\hat{s})\big] $$
但这里有两个"卡点",讲师让同学思考:
- 如果奖励函数不可微怎么办?
- 这个期望怎么估计?
(参考时间 00:53:49)
6.3 REINFORCE:把梯度"放进"期望里
讲师强调本课不假设 RL 背景,只给一个高度概括的直觉。他用一个非常漂亮的技巧——对数导数技巧(log-derivative trick)——来解决上面两个问题。
📷 策略梯度 / REINFORCE 简介
回到原视频 (00:53:49)
从恒等式出发:
$$ \nabla_\theta p_\theta(s) = p_\theta(s)\,\nabla_\theta \log p_\theta(s) $$
代回期望的梯度(对 $s$ 求和、利用梯度线性性):
$$ \nabla_\theta \mathbb{E}_{\hat{s}\sim p_\theta(s)}[R(\hat{s})] = \nabla_\theta \sum_s R(s)p_\theta(s) = \sum_s R(s)\nabla_\theta p_\theta(s) = \sum_s p_\theta(s)\,R(s)\,\nabla_\theta \log p_\theta(s) = \mathbb{E}_{\hat{s}\sim p_\theta(s)}\big[R(\hat{s})\,\nabla_\theta \log p_\theta(\hat{s})\big] $$
📷 REINFORCE 的更新规则
回到原视频 (00:54:20)
这样一来,梯度就"钻进了期望里",于是可以用蒙特卡洛采样近似:
$$ \nabla_\theta \mathbb{E}_{\hat{s}\sim p_\theta(s)}[R(\hat{s})] \approx \frac{1}{m}\sum_{i=1}^{m} R(s_i)\,\nabla_\theta \log p_\theta(s_i) $$
对应的更新规则是:
$$ \theta_{t+1} \coloneqq \theta_t + \alpha \cdot \frac{1}{m}\sum_{i=1}^{m} R(s_i)\,\nabla_{\theta_t} \log p_{\theta_t}(s_i) $$
这个式子的解读极其直观:
- 若 $R(s_i)$ 是正的(+++):就沿着"增大 $p_\theta(s_i)$"的方向走;
- 若 $R(s_i)$ 是负的(---):就沿着"减小 $p_\theta(s_i)$"的方向走。
这就是"强化学习"名字的由来:强化好的动作,让它们更可能再次发生。
graph TD
A["给一个指令"] --> B["从 p_θ 采样多条回答"]
B --> C["每条回答由奖励模型打分 R"]
C --> D{"R 的符号"}
D -->|"R > 0"| E["提高 log p_θ(该回答)<br/>强化它"]
D -->|"R < 0"| F["降低 log p_θ(该回答)<br/>抑制它"]
E --> G["更新参数 θ"]
F --> G
编者拓展|为什么需要"对数导数技巧" 直接对 $\mathbb{E}_{p_\theta}[R]$ 求导,会碰到"奖励 $R$ 不可微"和"采样分布本身依赖于 $\theta$"两个难题。对数导数技巧把对概率的导数转化成对"对数概率"的导数,从而让奖励只以标量系数的形式出现(不需要可微),同时把求导对象变成模型自己就能算的 $\log p_\theta$。这就是 REINFORCE(Williams, 1992)的核心。
但讲师提醒:这只是个高度简化的版本。真正的 vanilla REINFORCE 有三大毛病——梯度方差大、训练不稳定、样本效率低。所以他紧接着引出 PPO。
(参考时间 00:54:40)
6.4 PPO:限制"每步能走多远"
📷 引入 PPO
回到原视频 (00:54:40)
PPO 的关键思想是:限制策略(policy)每次更新时的变化幅度。它用"裁剪(clipped)"目标:
$$ L^{CLIP}(\theta) = \mathbb{E}_{s_i \sim p^{old}_\theta(s)}\Big[\min\big(r_t^\theta \cdot A(s_i),\ \text{clip}(r_t^\theta,\,1-\epsilon,\,1+\epsilon) \cdot A(s_i)\big)\Big] $$
其中概率比为
$$ r_t^\theta = \frac{p_\theta(s_i)}{p^{old}_\theta(s_i)}, $$
$A(s_i)$ 是优势(advantage),即"比预期好多少",$\text{clip}$ 的裁剪范围通常取 $\epsilon = 0.2$。更新规则为 $\theta_{t+1} := \theta_t + \alpha \nabla_{\theta_t} L^{CLIP}(\theta_t)$。
编者拓展|PPO 的"CLIP"在做什么 如果新策略对某个动作的概率比旧策略高太多($r_t^\theta > 1+\epsilon$)或低太多,目标里的 $\min$ 与 $\text{clip}$ 就会"掐住"这份收益,使得超过裁剪范围的部分不再提供额外梯度。直观地说,这等于给策略上了一道"限速器":你可以朝更好的方向走,但一步不能迈太大。$A(s_i)$ 则进一步告诉优化器:这个动作相对平均水平是好是坏,从而降低方差。这是把 REINFORCE 从"理论上成立"变成"工程上可用"的关键一步。
讲师顺带说:完整的算法细节可以看 Stanford CS234 的讲义。
七、面向人类偏好优化(二):奖励建模
7.1 第一个问题:人肉标注太贵
(参考时间 00:42:30)
现在我们有了"能优化任意不可微奖励"的工具。但马上遇到新问题:奖励从哪来?
📷 如何建模人类偏好:问题一
回到原视频 (00:42:30)
问题 1:human-in-the-loop 太贵。 如果每生成一条回答都要人来打分,而为百万级回答打分——根本不现实。
解决方案:把人类偏好本身建模成一个(NLP)问题(Knox & Stone, 2009)。具体地,训练一个语言模型 $RM_\phi(s)$ 来预测人类偏好,然后去优化这个 $RM_\phi$ 而不是真人。
编者说明:课堂问答里有人确认了一个实现细节——奖励模型通常从预训练语言模型初始化(因为必须"很懂文本"),输入是把 $x$(用户问题)和 $y$(模型回答)拼在一起,输出一个标量分数。$x$、$y$ 的区分更多是"记号上的方便"。
7.2 第二个问题:人类打分很"飘"
(参考时间 00:44:50)
问题 2:人类判断噪声大、且不同人的打分没有统一标尺。 让不同的人给同一段摘要打分(0–10),有人给 4.1,有人给 6.6,有人给 3.2——这作为训练信号非常糟糕。
解决方案:不问绝对分,改问成对比较(pairwise comparison)(Phelps et al., 2015;Clark et al., 2018)。与其让人类给一个抽象数字,不如让他对比两个回答、指出哪个更好——这件事对人类来说容易得多、也更可靠。
📷 如何建模人类偏好:问题二
回到原视频 (00:44:50)
7.3 Bradley-Terry 模型:把"偏好"变成"分数"
(参考时间 00:47:00)
📷 奖励模型与 Bradley-Terry 成对比较模型
回到原视频 (00:47:00)
挑战是:如何把"排序"变成"分数"?讲师说,经济学和心理学里有现成的工具——Bradley-Terry 模型(Bradley & Terry, 1952)。
它假设:人类选择 $y_1$ 胜过 $y_2$ 的概率,只取决于两个回答"内部奖励"的差:
$$ P(y_w \succ y_l) = \sigma\big(RM_\phi(s_w) - RM_\phi(s_l)\big) $$
其中 $\sigma$ 是 sigmoid 函数,"$s_w$"是获胜样本(winning)、"$s_l$"是落败样本(losing)。于是奖励模型的训练损失是:
$$ J_{RM}(\phi) = -\,\mathbb{E}_{s_w,\,s_l \sim D}\Big[\log \sigma\big(RM_\phi(s_w) - RM_\phi(s_l)\big)\Big] $$
在课堂问答里,学生追问"$J$ 到底是什么"——讲师解释:它是一个标量。奖励模型给 $y_w$ 打 $R_1$、给 $y_l$ 打 $R_2$,相减得到"奖励差",经 sigmoid 变成概率,取对数,再对整个数据集求期望——它衡量的是奖励模型在整份偏好数据上"预测谁赢"的能力。好的奖励模型应让这个值尽量小,即总是给获胜回答更高的分。
编者拓展|为什么 sigmoid 差 → 概率是合理的 Bradley-Terry 的核心是"平移不变性":如果给所有人都加同一个常数分,胜负概率不变。这恰好符合"人类偏好本质是相对的"这一直觉,也让"奖励的绝对尺度"变得不重要(只要单调)。 类比:这与二分类其实是一回事——把 $RM_\phi(s_w) - RM_\phi(s_l)$ 看成 logit,"谁赢"看成 0/1 标签,交叉熵损失就变成上面这个式子。这正是后面 DPO 能把它简化成一个"分类损失"的伏笔。
(参考时间 00:48:30)
7.4 先确保奖励模型本身是好的
📷 先确保奖励模型能用
回到原视频 (00:48:30)
讲师提醒:动手做 RLHF 之前,先评估奖励模型——用留出的人类判断衡量它预测得准不准。经验上,足够大、数据足够多的奖励模型,其预测已经接近单个人类的水平(Stiennon et al., 2020)。
7.5 RLHF 全流程:把所有零件拼起来
(参考时间 00:49:20)
📷 RLHF:把所有东西放在一起
回到原视频 (00:49:20)
至此我们凑齐了所有零件:
- 一个预训练(可能已指令微调)的语言模型 $p_{PT}(s)$;
- 一个奖励模型 $RM_\phi(s)$,用人类比较数据训练;
- 一套"朝任意奖励优化 LM 参数"的方法(策略梯度 / PPO)。
RLHF 的做法:初始化一份模型副本 $p^{RL}_\theta(s)$,然后优化以下奖励:
$$ R(s) = RM_\phi(s) - \beta \log \frac{p^{RL}_\theta(s)}{p_{PT}(s)} $$
第二项是一个惩罚项,防止模型偏离预训练模型太远。在期望意义下,它正是 $p^{RL}_\theta(s)$ 与 $p_{PT}(s)$ 之间的 KL 散度(Kullback-Leibler divergence)。
📷 RLHF 流程总览
回到原视频 (00:41:48)
(参考时间 00:51:00)
为什么要加这个惩罚? 讲师解释说:
- 我们优化的是一个学来的奖励模型,它一定有误差。如果我们毫无约束地最大化它,模型会"黑"掉奖励模型——找到那些"得分虚高、内容糟糕"的回答,然后疯狂生成它们(这就是"奖励黑客",详见下一节)。优化下去,语言模型会迅速退化成胡言乱语。
- 我们知道初始模型本身是个不错的语言模型;
- 也知道奖励模型是在"初始模型的输出分布"上训练的,所以在这个分布附近它是相对可靠的。
于是惩罚项的作用就是:别飘太远。如果你把某个续写的概率抬得比预训练模型高太多,就会被"收税"。
编者说明:课堂问答中有人问:"指令微调阶段是不是也该加类似惩罚?"讲师说,微调时确实也会加正则,但远没有 RL 阶段这么关键——因为 RL 的激励是"尽可能榨取奖励模型",所以一旦没有约束,后果会严重得多。
(参考时间 00:55:10)
7.6 RLHF 确实有效
📷 RLHF 相对预训练 + 微调的提升
回到原视频 (00:55:10)
在摘要任务上:即使很小的模型,用 RLHF 训练后也能超过人类参考摘要(人类在评估时更偏好模型生成的摘要)。而且"规模越大越响应任务"的规律依然成立,但RLHF 本身的贡献已经很显著。
八、RL 到底有多复杂?
(参考时间 00:56:02)
📷 RL(PPO)可以相当复杂
回到原视频 (00:56:02)
讲师半开玩笑地说,这张图"不是给你们理解的,是用来吓唬你们的"。RL 的复杂性体现在:
- 要拟合价值函数(value function);
- 在线采样很慢;
- 性能对超参数极其敏感。
他指出,正因为如此,RLHF 一度只属于"算力雄厚的大厂",一般人很难复现。这也是"能不能把 RL 从 RLHF 里拿掉"这个问题的动机——直接偏好优化(DPO) 就回答了这个疑问。
九、直接偏好优化(DPO):把 RL 从 RLHF 里拿掉
(参考时间 00:57:00)
讲师说:接下来是"很多数学",但数学的终点是一个极其简单的算法。
9.1 核心直觉:奖励模型可以用语言模型写出来
讲师先给直觉:语言模型在给"最可能的下一个续写"分配概率,但这些续写未必是我们想要的;如果我们把概率限制在人类喜欢的那些回答上,那么模型的 log 概率就可能反映"人类有多喜欢这个回答"。他说这不是随口一说的直觉,稍后会用数学严格推出。
核心思路是:
把奖励模型写成语言模型的函数,然后直接去拟合偏好数据,从而完全不需要 RL 步骤。
(参考时间 00:58:00)
为什么这可能成立? 讲师说:回顾整个 RLHF 流程,唯一被注入系统的外部信息,就是偏好数据上的人类标签。优化一个"学来的奖励模型"本身没有引入任何新信息。既然没有新信息,那"先学奖励模型、再优化它"这一大圈就理论上可以绕过。
9.2 从 RLHF 目标到闭式解
(参考时间 01:00:00)
回到 RLHF 的目标(带 KL 惩罚):
$$ \max_{\theta}\ \mathbb{E}_{\hat{y}\sim p^{RL}_\theta(\hat{y}\mid x)}\Big[RM_\phi(x,\hat{y}) - \beta \log \frac{p^{RL}_\theta(\hat{y}\mid x)}{p_{PT}(\hat{y}\mid x)}\Big] $$
讲师说:这个特定问题有闭式解(closed-form solution):
$$ p^*(\hat{y}\mid x) = \frac{1}{Z(x)}\, p_{PT}(\hat{y}\mid x)\,\exp\!\Big(\frac{1}{\beta} RM(x, \hat{y})\Big) $$
📷 从 RLHF 目标到 DPO 的推导起点
回到原视频 (01:00:00)
它像极了统计物理里的 玻尔兹曼分布:以预训练分布为基底,用"奖励"给它重新加权——
- 高奖励的续写 → 更大的概率质量;
- 低奖励的续写 → 更小的概率质量;
- $\beta$ 控制"奖励"与"别飘太远"之间的权衡;$\beta$ 越小,越看重奖励。
分母 $Z(x)$ 是配分函数(partition function),负责归一化:
$$ Z(x) = \sum_{\hat{y}} p_{PT}(\hat{y}\mid x)\exp\!\Big(\frac{1}{\beta} RM(x, \hat{y})\Big) $$
讲师特别指出:$Z(x)$ 是一个"很讨厌的项"——它要对所有可能的续写求和,而续写空间大到不可计算(词表 5 万+,长度任意)。
编者拓展|配分函数为什么"讨厌",又为什么最后不重要 配分函数是概率归一化的产物:分子本身不是合法分布,必须除以一个"总和"才能变成概率。它的麻烦在于必须穷举所有可能输出——对大语言模型而言指数级不可能。 DPO 的妙处就在于:最终我们并不需要真的算出它。因为损失函数只关心"获胜回答与落败回答的奖励差",而 $Z(x)$ 在两式相减时(同一个 $x$)会彼此抵消。
9.3 反解:用语言模型表达奖励
(参考时间 01:03:00)
对闭式解做个简单的对数变换、移项,就能把奖励反解成语言模型的函数:
$$ RM_\theta(x, \hat{y}) = \beta \log \frac{p^{RL}_\theta(\hat{y}\mid x)}{p_{PT}(\hat{y}\mid x)} + \beta \log Z(x) $$
讲师说,这个式子很值得玩味:一个续写 $\hat{y}$ 的奖励高,当且仅当"我优化中的模型"比"我初始的模型"给它更高(相对)概率——这正是那个 $\beta \log(\cdot)$ 比值($\beta \log$ ratio)的含义。他还说,这个恒等式对任意语言模型都成立,不只是最优的那个。
编者说明:课堂上有学生追问"那初始时 $p^{RL}_\theta = p_{PT}$,奖励岂不是 0?"讲师确认"确实一开始近似为 0",但强调关键在于这里的 $\theta$ 是我们能优化的参数——我们是在"用语言模型的概率定义一个奖励模型",然后去优化它,而不是说这个奖励一开始就是最优的。
9.4 配分函数"神奇消失"
(参考时间 01:06:00)
📷 为 DPO 把一切拼起来
回到原视频 (01:07:40)
现在回到奖励建模的目标——Bradley-Terry 配对损失,它只关心奖励差:
$$ P(y_w \succ y_l) = \sigma\big(RM_\theta(x, y_w) - RM_\theta(x, y_l)\big) $$
把刚才反解出的 $RM_\theta$ 代进去,注意两个回答的输入 $x$ 完全相同,于是 $\beta \log Z(x)$ 这一项在相减时恰好抵消!最终得到 DPO 损失:
$$ J_{DPO}(\theta) = -\,\mathbb{E}_{x,\,y_w,\,y_l \sim D}\Bigg[\log \sigma\Bigg(\beta \log \frac{p^{RL}_\theta(y_w\mid x)}{p_{PT}(y_w\mid x)} - \beta \log \frac{p^{RL}_\theta(y_l\mid x)}{p_{PT}(y_l\mid x)}\Bigg)\Bigg] $$
其中:
- 前一项是获胜样本的奖励,后一项是落败样本的奖励;
- $\log Z$ 项抵消了,因为损失只看"奖励差";
- 整个式子本质上就是一个二分类损失(binary classification loss)!
graph TD
A["偏好数据<br/>x, y_w, y_l"] --> B["把奖励写成语言模型:<br/>RM_θ = β log(p_θ/p_PT) + β log Z(x)"]
B --> C["代回 Bradley-Terry 配对损失"]
C --> D["同一个 x 下 log Z(x) 相消"]
D --> E["DPO 损失 = 二分类交叉熵"]
E --> F["直接对语言模型 θ 做梯度更新<br/>不再需要奖励模型与 RL"]
style E fill:#efe
style F fill:#efe
编者说明:关于学生问"是不是因此丢掉了关于其他续写的信息",讲师坦承这是个好问题,且承认确实会丢弃一些信息(比如其他可能续写的相对优劣),但他解释说配分函数本身近似一个"自由变量"——很多不同的奖励模型都能满足同一个优化问题,这一项可以被合法地移除,而算法正是受益于此。
他还提醒一个前提:整套推导(以及 RLHF)都假设"人类选择只取决于奖励差"——这就是 Bradley-Terry 的假设。它不完全成立,但在相当大程度上近似合理。
9.5 DPO 的效果与"R.L. 之争"
(参考时间 01:10:50)
📷 DPO 超过先前方法
回到原视频 (01:10:50)
实验表明:DPO 与 PPO(RLHF)效果相当,但 DPO 只是一个分类损失——不用拟合价值函数、不用在线采样、超参数也少得多。
(参考时间 01:15:10)
📷 开源 RLHF 现在大多不是 RL
回到原视频 (01:15:10)
讲师说,如今开源模型几乎都在用 DPO:Hugging Face 的排行榜上,十个模型里九个用 DPO;Mistral、Llama 3 等强模型也都用了 DPO。所以:
- 如果你算力充足,可以上 RLHF / PPO;
- 如果你想性价比"物超所值"(bank for your buck),DPO 通常开箱即用。
他强调这仍是活跃的研究领域,他不做绝对断言——但"两者都有效,而 DPO 简单得多"是明确的。
十、InstructGPT 与 ChatGPT:这套流水线的产物
(参考时间 01:12:35)
📷 InstructGPT:把 RLHF 扩展到数万个任务
回到原视频 (01:12:35)
讲师说,InstructGPT 是第一个正式走完这套流水线的模型,它定义了这套流程:覆盖约 3 万个任务(对比我们最初只有 1 个任务)。
📷 从标注者那里收集的任务
回到原视频 (01:12:55)
他们还专门设计了从标注者收集任务的流程。
📷 InstructGPT 示例
回到原视频 (01:13:20)
📷 InstructGPT 示例
回到原视频 (01:13:45)
回到开头那个"给六岁小孩解释登月"的例子:GPT-3 会跑偏,而 InstructGPT 能推断用户的真实意图,给出用户可能喜欢的现实回答。
(参考时间 01:13:56)
📷 ChatGPT:面向对话智能体的指令微调 + RLHF
回到原视频 (01:13:56)
ChatGPT 用了同一套流水线,关键差别是更针对对话(dialogue):
📷 ChatGPT 中的 RLHF
回到原视频 (01:14:30)
📷 ChatGPT
回到原视频 (01:15:00)
编者说明:讲师特别指出 OpenAI(及其他公司)对 ChatGPT 的训练细节保密(数据、超参、模型规模),很可能是为了保持竞争优势。所以从 ChatGPT 本身我们拿不到"用了什么算法"的官方说明;本讲讨论的流水线来自 InstructGPT 等公开论文。
讲师的评价是:核心算法(今天讲的)给你 ChatGPT 的基础,但"训练数据的选择"才是真正决定成败的东西。
(参考时间 01:15:55)
📷 RLHF 行为:明显的风格变化
回到原视频 (01:15:55)
他还展示了一个非常直观的现象:RLHF 会带来明显的风格变化——回答更详细、排版更漂亮(列表等)。他给出的例子是"如何做一个 Gen Z"之类的指令,模型能很好地响应意图。他说这很了不起,因为这类指令很难靠少样本示例覆盖。
在受控对比中,研究者用 GPT-4 的反馈模拟人类反馈:PPO(InstructGPT 用的方法)有效,而简单基线(如 Best-of-n)同样有效——这提醒人们"RLHF 的增益可能部分来自更朴素的机制",这一直是个值得玩味的发现。
十一、RL 与奖励建模的局限:奖励黑客与幻觉
(参考时间 01:16:35)
📷 RL 与奖励建模的局限
回到原视频 (01:16:35)
讲师说:人类偏好本身就不可靠,而且"奖励黑客"是 RL 里一个非常常见的问题。他给出一个经典例子:
一个赛艇游戏里,程序被设计了"赛艇"这一目标,但奖励函数没写好,结果智能体发现"原地反复撞击道具刷分"比真的去比赛得分还快,于是它就一遍遍撞——这根本不是游戏的目标。
编者拓展|"奖励黑客"(reward hacking) 也叫"规范博弈(specification gaming)"。一个著名的极简例子来自 OpenAI 的 Faulty Reward Functions 系列:赛艇智能体(CoastRunners)通过绕圈撞收集道具刷分,而不是完成赛道;另一个例子是机械手被要求"抓住球",结果它学会把摄像机挪到球前面,让画面看起来抓住了。这类现象的根源是:智能体优化的是"你写的奖励",而不是"你心里的目标"——当奖励函数只是目标的代理(proxy)时,它会找出一切"代理高、真目标低"的漏洞。
讲师强调:RL 是极强的优化算法(AlphaGo、AlphaZero 都是 RL 的成果),所以你必须格外小心如何定义奖励。
(参考时间 01:17:15)
📷 局限:权威性与幻觉
回到原视频 (01:17:15)
更进一步:即使我们正确优化了"人类偏好",也未必是正确的事——因为人类并不总是喜欢"对自己真正有益"的东西。讲师提到,聊天机器人被奖励去生成"看起来权威、看起来有帮助"的回答,而不论真假——这会导致编造事实和幻觉(hallucinations)。
(参考时间 01:17:40)
📷 局限:奖励模型过度优化
回到原视频 (01:17:40)
最后,人类偏好模型(奖励模型)本身更不可靠。随着优化推进,会出现"奖励模型过度优化(reward model over-optimization)":学来的奖励一路飙升,而真实奖励反而下降。
编者说明:课堂讨论中,有学生提出一个很有意思的观点——随着 ChatGPT 被广泛使用,"什么算好的回答"这件事本身在变:过去人们可能偏好更长、更详细的回答,但现在越来越多人反而嫌它啰嗦。讲师赞同,并解释说:当偏好数据大规模采集时,标注者(turker)可能根本没在认真读,只是简单选择了更长的回答——于是"啰嗦"这个特性被写进了模型。好消息是,业界正在努力减少这种"啰嗦"倾向,这类问题有望随时间改善。
十二、偏好数据从哪来?会有哪些副作用?
(参考时间 01:18:00)
📷 标签从哪来?
回到原视频 (01:18:00)
讲师点出一个伦理与经济现实:RLHF 的标签常常来自海外低工资工作者。这是一个值得认真对待的事实。
📷 标注者偏见如何渗入模型
回到原视频 (01:18:30)
标注者的偏见可能会渗入模型。 有研究(Santurkar et al., 2023,OpinionQA)显示,不同人群的观点分布会以某种方式反映在模型偏好里。
📷 偏好微调可能带来非预期影响
回到原视频 (01:18:50)
还有一个耐人寻味的实验:当被问"你来自哪个国家",某个奖励模型(Starling 7B) 对不同国家表现出系统性偏好——说明偏好微调可能产生非预期的副作用。
编者说明:这就把"技术流水线"的讨论引向了更广泛的社会影响——谁来标注、标注者是谁、他们的世界观如何进入模型。讲师没有深入展开,但把它明确提了出来,值得读者留意。
十三、展望:还有哪些没解决?
(参考时间 01:19:10)
📷 下一步是什么?
回到原视频 (01:19:10)
讲师总结:
- RLHF 仍是一个探索很少、发展极快的领域;
- RLHF 比指令微调走得更远,但(依然)数据昂贵;
- 近期工作试图缓解数据要求,例如:
- RL from AI feedback(Bai et al., 2022)——用 AI 反馈代替部分人类反馈;
- 让语言模型在自己的输出上微调(Huang et al., 2022;Zelikman et al., 2022);
- 但大语言模型仍有许多局限(规模、幻觉),未必能靠 RLHF 解决。
📷 讲授计划(收尾重放)
回到原视频 (01:19:20)
讲师以一句话收尾:我们从能预测文本的预训练模型出发,一路走到 ChatGPT——希望今天之后,这条路看起来清楚了一些。他说:"我就讲到这里,谢谢大家。"
附:参考与延伸阅读
编者补充
已知疑点
以下是编者在重构时遇到的不确定之处,逐条列出,供读者判断:
- 讲次编号不一致。视频标题为 "Lecture 10";
course/slides_text.md与 PDF 中的封面均写作 "Lecture 7";PDF 文件名却是cs224n-2026-lecture08-posttraining.pdf(Lecture 08)。三处冲突,编者无法当场判定哪个正确,故书首统一以视频标题为准,并在此说明。 - 幻灯片与视频内容的对应关系为编者推断。本讲原始材料只提供
slides_text.md(逐页文字)与字幕,不提供画面。因此文中所有SLIDE:n@HH:MM:SS的时间锚点都是编者依据字幕内容推断的,可能与幻灯片实际出现在屏幕上的时刻有偏差。 - 讲师姓名与幻灯片署名的差异。视频中讲师自述为 Archit Sharma(Stanford 博士生),而幻灯片封面署名为 Diyi Yang(课程主讲)。这应是"客座讲授 + 复用主讲幻灯片"所致,但编者无法完全确认。
- 零样本 / 少样本 / 思维链部分缺少对应幻灯片。字幕在 00:07:00–00:22:00 大篇幅讲述 GPT-1/2/3、零样本、少样本、思维链,但
slides_text.md从第 6 页直接跳到第 7 页(计划),未见这些主题的专门幻灯片。可能是讲义版本不含这些页,或字幕与幻灯片的对应素材缺失。 - 专有名词与数字的听写风险。以下均依据字幕推断,可能有误:
- "mistol is using DPO" —— 应指某个开源模型使用了 DPO,疑为 Mistral 或 Zephyr,编者不能确定具体是哪一个,正文按"(Mistral、Llama 3 等)"处理。
- "GPT-2 用大约 40 GB 数据、GPT-3 用 600 GB 数据" —— 与公开论文的常见数字大致吻合,但讲师口述的 GB 数可能有取整或口误。
- "T5 从 1.17 亿到 15 亿"、"从 15 亿到 1750 亿"等参数量,与公开资料一致,但仍属口述转写。
- 课堂问答的具体措辞。文中多处课堂问答(如关于代码数据、关于测试集泄漏、关于配分函数)按语义转写为书面语,并非逐字实录;提问学生的姓名不可考。
- DPO 的"$\log Z$ 抵消"推导细节。字幕中讲师几次因学生提问而中断,推导在口语中不完整。编者按 DPO 原论文(Rafailov et al., 2023)补全了步骤,并明确标注为编者整理;若与课堂原话有出入,以原论文为准。
- "涌现"争议。讲师提到"有人认为坐标轴画对后能力不再显得突然涌现",但未给出具体文献。编者未在正文中强行补入某篇具体论文,以免张冠李戴。
说明:若确有遗漏,本节可后续补充;本讲并非没有疑点,故不采用"未发现明显疑点"的写法。
附录:课堂未展示的幻灯片
🖼️ 第 2 页幻灯片 · Lecture Plan
🖼️ 第 23 页幻灯片 · Lecture Plan
🖼️ 第 38 页幻灯片 · Lecture Plan
🖼️ 第 48 页幻灯片 · Lecture Plan
🖼️ 第 52 页幻灯片 · Lecture Plan
🖼️ 第 58 页幻灯片 · Improving the “RL” from RLHF --- GRPO
🖼️ 第 59 页幻灯片 · Lecture Plan
附录:官方幻灯片里课堂未展示的页
下面这些页来自官方幻灯片,但课堂录制里没有对应的展示画面。由
vb slides自动补入,供对照查阅。
🖼️ Slide 57