第 4 课 · 动手学大模型(上海交大)
Mathematical Reasoning
数学推理:蒸馏一个迷你 R1
推理模型会反思、会验算,这些行为能不能教给一个小模型?这一章的答案是:能,用监督微调让小模型学 DeepSeek-R1 生成的回复,把复杂推理技能蒸馏过来。教程带着走完数学任务上数据蒸馏的全流程。
学习目标
- 了解数学相关数据集的清理和预处理。
- 了解微调大模型的基本方法。
- 了解使用大模型进行推理的基本方法。
- 了解评测模型数学能力的基本方法。
核心概念
蒸馏在这里的含义很具体:教师模型(DeepSeek-R1)先生成带完整推理过程的回复,学生模型(Qwen2.5-Math-1.5B)通过监督微调去拟合这些回复。学到的不只是答案,还有推理的形状——先拆解、再计算、中途反思、末尾验算。
数据来自 DeepMath-103K。数据清理和预处理不是可跳过的步骤:题目的格式、推理过程的截断位置、答案的抽取规则,直接决定微调后模型输出的稳定程度。
推理阶段用 vllm 做批量生成,评测则要有一套能自动判定数学答案是否等价的规则,否则同一个答案换个写法就被判错,指标毫无意义。
实践步骤
- 备好环境:Python 3.8 以上,PyTorch、Transformers、Datasets、vllm。
- 确认硬件够用:至少一张 40GB 显存的 GPU;磁盘为原始模型、数据和 checkpoint 预留至少 50GB。
- 打开 notebook,按三段依次执行:数据集下载与预处理、模型加载与训练、模型生成与评测。
- 训练过程会产生 checkpoint,生成完成后保存生成结果,两者都要留档以便复现。
- 拿基座模型和微调后模型在同一批题上各跑一遍,比较准确率。
常见误区
- 忽略下载渠道。 模型和数据从 Hugging Face 加载,国内可以走 hf-mirror 镜像,先把这一步理顺,否则整晚都耗在下载上。
- 显存和磁盘估得太乐观。 40GB 显存和 50GB 磁盘是教程给出的硬门槛,不是建议值。
- 只报告微调后的分数。 没有基座模型的同口径基线,就说不清提升是蒸馏带来的还是评测规则带来的。
动手练习
跑完默认流程后,做一个消融:把训练数据里教师模型的推理过程整段去掉,只保留题目和最终答案,重新微调同样的步数,再用同一套评测跑一遍。对比两次准确率,写下你对「推理过程本身是否是有效监督信号」的结论。如果显存不够,就把训练样本数砍到十分之一,保证两次实验条件一致即可。
要点回顾
蒸馏推理能力的关键在于监督信号里包含过程,而不只是结果。整条流水线上最容易被低估的是数据预处理和答案等价判定这两端,模型训练反而是最标准化的一段。做任何结论前先把基线跑出来。
参考来源
- 上海交通大学《动手学大模型》系列编程实践教程,第四章「数学推理」:documents/chapter4,核验日期:2026-09-06。