2026 年 10 月 24 日,Sebastian Raschka 在 Ahead of AI 上挂了一门课,标题是 Building Reasoning Models from the Ground Up,八讲,纯 Python 加 PyTorch,前后大约十一个小时的对着屏幕敲代码。
这类课我本来是打算划过去的。“从零构建”这四个字这几年被用得跟促销标语一样,多数是把你已经会的东西换层皮再讲一遍。
让我停下来的是第二讲开头的一个动作:它不预训练。
它直接下载一个 Qwen3 0.6B 的现成权重,从那儿起步。就这一下,“从零”被重新定义到了预训练之后——分词、解码、KV 缓存、评测、推理时扩展、强化学习、蒸馏,一层一层往上搭。这个选择本身把话说得很明白:到了 2026 年,预训练已经被彻底外包出去了,一个 0.6B 的权重躺在仓库里谁都能拉,拉权重这件事不构成“构建”。真正要教的,是一个已经会说话的语言模型,怎么被改成一个会推理的模型。
而这门课给出的答案,恰好就是我这两年越来越确信的那个判断——
推理模型不是一种新模型,它是一条流水线。
说是流水线,意思是它的每一段都能单独拆下来、单独换、单独定价、单独失败。这比“推理模型到底是什么”那个问题有用得多。
先看这条流水线是怎么排的,因为课程表的顺序本身就是一份化石记录。
第一讲不写代码,先讲概念:普通 LLM、推理模型、agent harness 三者什么关系。Raschka 用了个引擎的比喻,说推理模型是经过 RLVR 升级、再加可选推理时扩展的引擎,这个引擎去驱动一个 harness,后者负责管上下文、接工具。这个比喻不算精确,但我挺吃这一套,因为它把“推理模型”从神坛上拽了下来——它是个引擎,不是个物种。
第二讲才动手。加载 Qwen3 权重,实现分词和贪心解码,加流式输出,再上 KV 缓存和 torch.compile。有人可能觉得花一整讲讲解码和缓存是凑数,但这里有个先来后到:你得先有一个跑得够快、不胡说八道的基线生成器,后面所有“推理增益”才谈得上测。这不是教学上的啰嗦,是考古上的必须先有地层。
真正的脊柱在第三讲。
这一讲不训模型,它造一把尺子:一个数学答案校验器,把模型答案里最后那个数抠出来,抹掉格式差异,判两个表达式是不是等价,然后拿它去给基础模型在 MATH-500 上打分。这个分数是整门课的零点。后面第四讲的自洽投票、第五讲的答案打分、第六讲的强化学习奖励、第八讲的蒸馏学生评测,全拿这同一把尺子量。
Raschka 在第六讲里明说,第三讲那个校验器原封不动拿来当 RLVR 的奖励信号。
我看到这条线的时候心里咯噔一下。这一下就把整门课的秘密漏了:所谓“推理模型的训练”,很多时候不是模型变了,是尺子先立住了,然后你拿尺子去逼模型。尺子先立住,后面所有的“提升”才有意义——不然你拿什么说它变强了。
代价也全在这儿。
RLVR 的“verifiable reward”,落脚点在 verifiable——你得有一个能机械判对错的域。数学是最便宜的那个,抽个答案、判个等价就完事;代码次之,跑一遍测试。一到没法廉价验证的域,这套流水线立刻哑火。这门课从头到尾锁在 MATH-500 上,不是因为出题人只会数学,是因为换个域尺子就造不出来。所以这门课教得越漂亮,越是在提醒你它的边界:整条流水线的天花板,是那把尺子,不是模型本身。
中段两讲是另一条支线。
第四讲做推理时扩展——温度缩放、多项式采样、top-p 过滤,然后把一堆候选答案按多数投票合并,也就是 self-consistency,最后画一张“准确率对算力”的曲线。第五讲再往上叠,用 token 概率和序列对数概率给答案打分,还做了一个自精炼的环:模型批判自己、改自己的答案,再拿去评测。这条支线的共同点是权重一个不动,全靠推理时多花算力换准确率。
它被排在强化学习前面,我觉得不只是因为便宜,还因为它是“不训练也能改结果”的入口——你先花采样算力榨一遍,剩下的才交给训练。这个顺序有讲究:先让你看见不用改权重也能涨点,你才会对后面“改权重”那一段到底值不值,心里有杆秤。
但这条支线里我得泼一点冷水。
自洽投票是实打实的,多采几条取多数,代价明摆着、收益也明摆着,属于那种你早知道该这么干但懒得干的招。自精炼就不一样。一个模型在没有任何外部信号纠正它、只能看自己错答案的情况下,多数时候只是换个说法再采样一遍,收敛到什么全看运气。这话可能有点刻薄。它确实在 MATH-500 上能测出数——但我对这招的信任度比对多数投票低得多,因为它缺一个“外面有人告诉它错了”的环节。而那个环节,恰好就是第三讲那把尺子。
第六、第七两讲进强化学习。
第六讲实现了一个简化版的 GRPO:对一个题采一组回答,用校验器打分,把分数换算成组内的相对优势,然后跑训练循环、打日志、存检查点。GRPO 的好处在这儿体现得很清楚——它不需要额外的价值模型,优势就在同一组样本内部比出来,这让 RL 的门槛降了一大截。
第七讲把循环加厚:熵和优势的统计、裁剪的比率、KL 损失项,还有“答案正确才给格式奖励”的条件格式奖励,最后专门讨论了 reward hacking 和简化版 KL 的局限。
我得说,第七讲是整门课最诚实的一讲。它没有假装 RLVR 是一路顺风——奖励一设计不好,模型就会去钻格式的空子,把“看起来对”演给你看。这不是模型学坏了,是你在用尺子教它怎么绕开尺子。条件格式奖励本身就是把双刃剑,你在教它排版,也在给它一条不碰真答案的捷径。
然后第八讲,蒸馏。这一讲处理软标签对硬标签、同策略对异策略这几组对照,拿 DeepSeek R1 给 MATH 数据集生成教师答案,再监督训练一个学生,最后还是在 MATH-500 上评测。
讲到这里我想把话说重一点:如果这门课你只打算真刀真枪用一次,用在第八讲,别用在第六讲。
我知道这话有点得罪人。第六、七两讲是整门课技术上最性感的段落,八讲里最像“前沿研究”的就是那两讲。但你冷静想一下:一个 0.6B 的模型,用一个数学校验器当奖励,从零跑 GRPO,它能挤出来的点数是很有限的——这不是 GRPO 不行,是模型太小、奖励太窄、训练太短。而蒸馏是从一个已经会推理的大模型那儿,把行为整锅端过来。小模型真正的能力跃迁,发生在蒸馏这一讲,不在强化学习那两讲。
RL 那两讲的价值在于让你看懂机制、看懂 reward hacking 长什么样、看懂 KL 和裁剪各自在管什么——是教学道具,不是能力来源。
我承认这话说得满了。机制当然重要,你连机制都不懂,给你个 R1 你也蒸馏不明白;但“懂了机制”和“靠这个 0.6B 自己练出推理”是两回事,别混。
评论区那位 Bachu Adharsh Kumar 问的问题其实问到了点子上——普通笔记本上,小模型能不能练出有意义的推理增益。Raschka 回了。按课程自己的设定,前面生成和评测的部分 CPU 就能跑,后面训练实验没 GPU 会很难受。
所以真答案大概是分层的:评测和推理时扩展这一层,笔记本完全扛得住,增益也是实的;RL 那一层,笔记本上基本是看它跑起来,不是看它变强;蒸馏那一层,你其实是在借大模型的脑子,笔记本只是个下游加工厂。这三层的“增益”含金量完全不同,把它们混成一句“小模型也能推理”,是把算力约束抽掉之后再下的评判。
顺带说一句,同一套东西 Raschka 其实铺了三个高度。Substack 上这十一小时的动手课是最低那一层;Manning 出了本配套书《Build a Reasoning Model (From Scratch)》,他建议读一章、跟着对应视频敲一遍、再做练习;还有一个九十分钟的 LinkedIn Learning 课叫 AI Reasoning Models,只讲推理时扩展、强化学习、蒸馏的概念,不落地实现。三个高度对应三种人,产品分层倒是很清醒。
回头看,这门课最值得记下来的,不是它教了 GRPO 或者蒸馏——这些前两年还是几家前沿实验室捂在手里的东西,现在成了一门带习题的课,这个落差本身就说明前沿已经往前挪了。值得记下来的是它无意间画出的那张结构图:一个商品化的基座模型,套一把校验器当尺子,前面是推理时扩展在榨算力,后面是蒸馏在借大模型的脑子,中间夹着 RLVR 把行为压进权重。四件事,围着同一把尺子转。
所以真正的问题从来不是“推理模型能不能教”,是“你那把尺子能验证什么”。数学和代码能验证,这套流水线在那儿跑得通;到了没法廉价判对错的域,这套流水线就得把它的第三讲重新发明一遍。这门八讲的课把能教的部分教到了头,也把不能教的那部分原样留在原地——而那半个问题,才是接下来几年真正的岔路口。
