Sebastian Raschka 发布从零构建推理模型视频课程
Build Your Own Reasoning Model: A Full Video Course
Sebastian Raschka 发布 8 集从零构建推理模型视频课程,共 11 小时,配套其《Build a Reasoning Model (From Scratch)》一书。
作者把推理模型的评测、推理时扩展、RLVR 与蒸馏拆成 8 段可跟做的 PyTorch 实现,适合想从代码层面理解推理模型的人。
过去两年,我在 Ahead of AI 上写了很多关于推理模型的内容,包括最近一篇关于控制当代 LLM 中推理努力程度机制的文章。推理模型依然和以往一样重要。事实上,如今几乎所有当代 LLM 都是推理模型,或者提供推理模式。
对于那些对推理模型工作原理感兴趣的人,包括推理扩展、强化学习和蒸馏,我最近写了《从零构建推理模型》,它在 PyTorch 中从头实现了这些内容。根据我的经验,这仍然是理解和学习事物真正运作方式的最佳途径。
现在,在过去几个月里,我也坐下来录制了配套讲座,想与大家分享。因此,下面你会找到八个从零构建推理模型的编程视频(共 11 小时内容)。
我们从预训练的 LLM 开始,用 Python 和 PyTorch 实现评估和改进它的方法。所以,如果你喜欢我去年开设的《从零开始编程 LLM》课程,这基本上就是续集(但你也可以在没有先修课程的情况下观看)。
我目前正在短暂休息,下个月会带着更多激动人心的 LLM 研究综述回来。在此期间,希望你喜欢跟着一起编程!
LLM、推理模型和智能体如何关联与配合
作为一个小注,由于我经常被问到推理模型与当今 AI 智能体的关系,这里在开始视频之前先简短说明一下。
推理模型本质上是传统 LLM 的升级版,即通过带可验证奖励的强化学习增加更多后训练(以及可选的推理扩展技术),使其更有能力解决更具挑战性的问题。传统上,推理模型是为数学和代码开发的,但这些能力也可以泛化到其他问题领域。
推理模型随后作为智能体框架内部的引擎发挥作用,而智能体框架是围绕 LLM/推理模型的软件或工具框架,用于解决更具挑战性的问题(更大的编程任务、旅行预订以及各种其他个人助理任务)。框架的任务是复杂的上下文管理,并让 LLM 能够访问工具。
图 1:传统 LLM、推理模型和智能体框架的引擎类比。图来自我的《编程智能体的组成部分》文章。
在上图描绘的类比中,模型是引擎,而智能体框架增加了让我们将其用于各种用途的机制(作为简单聊天机器人界面的升级)。智能体可以使用传统 LLM 或推理模型,但推理模型是更典型的选择,因为它们能力更强。(如上所述,大多数当代 LLM 都是带有可变推理努力设置的推理模型。)
所以,底线是,推理模型作为“引擎”,仍然是理解现代 LLM 智能体的重要部分。
上述主题配套的资源包括:
下面的视频重点介绍开发能够为这样的系统提供动力的推理模型。
范围与前提条件
从零实现推理系列视频聚焦于一个小型预训练 Qwen3 模型,我们在其中用 Python 和 PyTorch 自行实现推理方法。从预训练模型入手,可以让我们专注于有趣的部分:评估、推理时扩展、强化学习和蒸馏。
关于前提条件,我建议你能够熟练使用 Python 和 PyTorch。我将推理材料设计为独立内容,因此之前《Build A Large Language Model (From Scratch)》的内容是推荐但并非严格要求。
在计算资源方面,你可以在 CPU 上完成早期的文本生成和评估示例。对于后续实验,尤其是训练,使用 GPU 会让工作实用得多。第一个视频涵盖了环境设置以及更多建议;代码仓库中还包含硬件和环境建议。
图 2:所涵盖主题的概览。
配套书籍
这些视频伴随我的书《Build a Reasoning Model (From Scratch)》。如果你想更详细、按自己的节奏阅读讲解、做练习等,我推荐将这本书作为配套材料。
为了获得最深入的学习体验,我的建议是阅读一章,结合对应视频完成其代码,然后尝试练习。
本书可从 Manning 和 Amazon 购买,印刷版为彩色!
图 3:《Build a Reasoning Model (From Scratch)》印刷版中的随机摘录。
感谢每一位购买本书或将其推荐给朋友的人。你们的支持帮助我持续创作这些材料。
视频
在进入下方主要视频之前,最后再快速补充一点:如需更简短、更偏概念性的概览,我还推荐我的 LinkedIn Learning 上的 AI Reasoning Models 课程(通过那里的链接访问时,24 小时内应可免费观看,且无需 LinkedIn Premium 订阅)。
该课程约 90 分钟,讲解推理模型的工作原理,涵盖推理时扩展、强化学习和蒸馏背后的主要思想。如果你只想了解主要思想而不想完成下面的完整实现,这是一个不错的可选预览。
进入本文的主要部分,以下是八个主要讲座视频。
1. 动机与代码设置
第一个视频首先解释传统 LLM、推理模型和智能体之间的关系。接着,视频的主要主题是设置编程环境。这包括安装 Python 和 PyTorch 依赖(使用 uv)等。我还讨论了硬件选择和常见设置问题。
涵盖主题
传统 LLM、推理模型和智能体框架之间的关系
通过代码实现进行学习的好处
本视频系列的范围
安装 Python 依赖
选择硬件并检查 CUDA 或 Apple Silicon 支持
使用 VS Code 连接远程 GPU 并排查环境问题
2. 加载基础模型、文本生成和 KV 缓存
在后续视频中加入推理方法之前,我们需要一个可用的基础模型。与其从头训练它——那将是另一本书的内容(参见Build A Large Language Model (From Scratch))——我们从预训练模型开始。
这里,我们加载 Qwen3 0.6B 模型的预训练权重。然后,我们通过流式文本生成器实现文本生成过程,并加入 KV 缓存和模型编译,使文本生成更加高效。
这些实现为我们提供了基线以及基础组件,我们将在后续视频中对其进行评估和改进。
涵盖主题
将文本编码为 token 并解码回文本
下载 Qwen3 权重并在选定的计算设备上加载模型
讲解张量形状、logits 和下一 token 预测
实现贪心解码和流式文本生成
处理序列结束 token 并测量生成速度
加入 KV 缓存以复用注意力键和值
将 KV 缓存与
torch.compile结合,并比较硬件性能
3. 构建用于评估和强化学习的验证器
在本讲中,我们逐步构建一个数学答案验证器,从答案提取到归一化以及检查数学等价性。然后我们用它来在 MATH-500 上评估模型。
我们使用这个验证器来评估基础模型在 MATH-500 评估数据集上的表现。
然而,该验证器在本系列后续还有第二项任务:为带可验证奖励的强化学习(RLVR)提供奖励信号。
涵盖主题
验证器简介及其如何融入 LLM 评估方法(其他方法见本书附录)
将答案验证复用为 RLVR 的奖励信号(第 6 章将详细讨论)
验证器流程,包括提取最终答案、归一化答案以及检查数学等价性
构建答案评分器和 MATH-500 的评估循环
在 MATH-500 上比较基础模型和推理模型
4. 推理时扩展:采样与自一致性
现在我们探索在保持模型权重不变的情况下改进答案的方法。但在实现具体的推理扩展技术之前,我们首先实现从同一提示生成多样化答案的方法(这是专有 LLM 聊天机器人如 ChatGPT 的标准做法)。
具体来说,我们实现温度缩放、多项式采样和 top-p 过滤以生成多样化回复。然后我们通过自一致性将多个回复结合起来,对其最终答案使用多数投票。
我们还考察答案准确性与生成更多候选所需的额外计算之间的权衡。
涵盖主题
比较额外计算在训练期间和推理期间对模型性能的益处
通过思维链提示对推理扩展进行简要介绍
实现温度缩放和多项式采样以生成多样化答案
加入 top-p 过滤以控制多样化答案的质量
通过自一致性结合候选答案,这是最流行的推理扩展技术之一
评估 MATH-500 准确性与额外推理计算成本之间的关系
5. 推理时扩展:评分与自我改进
在上一段视频的基础上,我们实现评分函数,用于比较由同一提示生成的多个答案。我们也可以使用这些评分方法在自一致性(上一讲已介绍)中打破平局。
这里涵盖的评分方法包括计算 token 和序列对数概率(这在后续的强化学习章节中也会用到)。然后我们实现一个自我改进循环,模型在其中对答案进行批判并尝试修订。
评估让我们能够检查这些额外步骤对模型有多大帮助。
涵盖的主题
使用评分函数比较多个答案并打破平局
实现一个简单的启发式评分器
计算 token 概率和序列似然(也与后续讲座相关)
使用对数概率以提高数值稳定性
构建用于生成批判和修订答案的自我改进循环
在 MATH-500 上评估自我改进
6. 强化学习:为 RLVR 实现 GRPO
在本讲中,我们转向实现一种称为带可验证奖励的强化学习(RLVR)的训练技术。我们首先实现一个简化版的组相对策略优化(GRPO),生成成组的响应,用我们的验证器对它们评分,并在训练期间使用它们的相对奖励来更新模型权重。
涵盖的主题
生成推理轨迹并理解答案长度与问题解决能力之间的关系
讨论和比较两种重要的 LLM 后训练方法:基于人类反馈的强化学习(RLHF)和带可验证奖励的强化学习(RLVR)
将验证器分数转化为奖励和相对优势
计算序列对数概率和简化的 GRPO 损失
组装带有日志记录和检查点保存的训练循环
评估检查点并检查训练稳定性和内存需求
7. 强化学习:跟踪、裁剪策略比率和 KL 项
既然我们在上一讲中实现了训练循环,我们可以重新审视它并更详细地分析训练运行。
具体来说,本视频添加了更多用于检查和分析的训练指标,包括熵和优势统计、裁剪策略比率、KL 损失项值和格式化奖励。
然后我们回顾训练日志和评估结果,以了解这些新增内容的作用,以及裁剪策略比率和 KL 损失项等新增内容是否有帮助。
涵盖的主题
运行更长的训练实验并解读其日志
跟踪优势和熵以理解训练行为
在策略损失中实现裁剪并分析其效果
添加 KL 损失项并讨论奖励黑客
理解简化 KL 公式的局限性
实现格式奖励并使其以答案正确性为条件
在 MATH-500 上比较检查点并探索进一步的 GRPO 研究
8. 蒸馏一个推理模型
最后,我们探索另一种训练小型推理模型的方法,即从更强大(且更大)的教师模型生成的答案中学习。我们讨论不同形式的蒸馏,准备推理数据,并实现监督训练循环。
我们通过评估蒸馏模型在 MATH-500 上的表现并比较结果来结束本讲和本课程。这为整个系列画上句号,并提供了通过强化学习培养推理能力之外的另一种选择。
涵盖主题
比较蒸馏的不同组合与方法,包括软蒸馏与硬蒸馏,以及同策略蒸馏与异策略蒸馏
为 MATH 数据集创建并收集教师生成的答案(使用 DeepSeek R1)
准备蒸馏数据集,包括分词以及训练/验证/测试划分
计算答案 token 的对数概率并理解交叉熵损失
实现监督训练并跟踪训练与验证损失
在 MATH-500 上评估检查点并比较蒸馏结果
结语
在观看这些讲座时,我鼓励你偶尔暂停一下,如果想到什么有趣的点子,就自己尝试一个小实验。
例如,你可以随意更改采样设置、检查几个失败的答案,或者尝试与练习中建议类似的不同想法的变体。
如果你想要完整的书面讲解、图表和练习与视频配套使用,可以在 Manning 和 Amazon 找到《Build a Reasoning Model (From Scratch)》。
感谢阅读和支持 Ahead of AI。我将短暂休息以恢复精力,期待下个月带着下一轮 LLM 研究文章回归。
在此期间,祝你观看愉快、动手愉快!
来源:Ahead of AI · magazine.sebastianraschka.com