Sebastian Raschka 把《Build a Reasoning Model (From Scratch)》配套的讲课录完了,一共 8 集、超过 11 小时,全部是 Python + PyTorch 的编码过程。它不是又一篇"推理模型综述",而是从一份已经预训练好的权重出发,把推理能力是怎么被加上去的,逐行写出来。
先把三层关系说清楚
课程开头花了一节讲 LLM、推理模型、Agent 三者的位置,用一个发动机的类比:模型是发动机,Agent harness 是套在发动机外面的传动和操控系统。
推理模型的本质是"在普通 LLM 之上多做了一段后训练"——用可验证奖励的强化学习(RLVR)继续训练,可选再加推理期扩展(inference-time scaling),让它在难题上更稳。传统上这类能力主要针对数学和代码,但方法本身可以迁移到别的领域。而 harness 负责的是另一件事:上下文管理和工具调用,它决定发动机能带动多大的负载。这个划分很实用,因为它把"模型变强"和"系统变强"两条改进路径分开了,排查问题时不会互相背锅。
为什么从预训练权重起步
课程用的是 Qwen3 0.6B 的预训练权重,不从零训语言模型。理由很直接:预训练本身是另一本书的内容,而这里真正想讲的是预训练之后那几段——评测、推理期扩展、强化学习、蒸馏。把算力和时间花在后半段,学习密度最高。
前置要求是熟悉 Python 和 PyTorch,作者强调这套材料是独立设计的,没看过前作也能跟。算力上,早期的文本生成和评测示例 CPU 就能跑,后面的训练实验有 GPU 才现实;第一集专门讲了环境安装(用 uv 管依赖)、CUDA / Apple Silicon 的检查方式,以及用 VS Code 连远程 GPU 时常见的坑。
八集的推进顺序
第一集讲动机和代码环境。第二集开始搭基线:把文本编码成 token 再解码回来,下载 Qwen3 权重并按设备加载,过一遍张量形状、logits 和下一个 token 的预测,然后实现贪心解码和流式生成,处理 EOS、测生成速度;再叠加 KV cache 复用注意力的 key/value,配合 `torch.compile`,最后对比不同硬件上的表现。这一段看着基础,但它是后面所有实验的标尺——没有稳定可测的基线,谈"推理变强了"没有意义。
第三集是整门课的地基:写一个数学答案的校验器(verifier)。这一个组件同时服务两个用途——评测时判定对错,强化学习时给出奖励信号。代码课程里最容易被跳过、又最容易出错的就是它:判分逻辑写松了,模型学会的是钻格式空子;写紧了,正确但格式不同的答案会被判错,奖励信号直接噪声化。作者把它单独拿出来讲,说明他也认为这是成败关键。
后面几集按推理期扩展、强化学习、蒸馏展开,配套仓库还给了硬件与环境建议。想深读的话,可以按"读一章书 → 跟着对应视频写代码 → 做章末练习"的顺序走;只想要概念、不想动手的,作者另有一门 90 分钟的 LinkedIn Learning 课程,覆盖推理期扩展、强化学习、蒸馏的主干思路,可以当作预告片。
小结
这套课的价值不在"教你调 API",而在把推理模型拆成四个可分别验证的部件:基线生成、判分器、推理期扩展、训练信号。对做工程的人来说,最该先抄的不是模型结构,而是那个 verifier 和那套"先有基线再谈提升"的实验节奏——这两样东西换到任何自建评测体系里都能直接用。11 小时听着长,但按集拆开,每一集都是一个能独立跑通的实验,适合一天啃一集。
内容与图片版权归原作者所有 · 原文: https://magazine.sebastianraschka.com/p/building-reasoning-models