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