蒸馏是怎么做的:从老师到学生
五步流程、软标签与温度系数;用 DeepSeek-R1 同批开源的六个蒸馏模型做样本
本页解决的问题
先给结论「蒸馏是怎么做的:从老师到学生」要解决的关键问题是什么?
五步流程、软标签与温度系数;用 DeepSeek-R1 同批开源的六个蒸馏模型做样本
让这个结论先证明自己值得留下。 把这一页当成决策工具,而不是需要背下来的定义。把概念连到一个真实任务、一个可观察结果,以及一个能改变你判断的失败上。
写下一个问题:试完这个方法后,你能用什么证据回答它?
结论听起来很完整,却没有检查最关键的假设。
准备问题集
收集覆盖目标领域的问题。问题可以人工整理,也可以让模型自己生成。这一步决定了学生模型能力的上限:没被问到的领域,学生就学不到。
教师模型作答,保留完整推理过程
关键在「完整」两个字。只保留最终答案,学生学到的是背结论;保留中间的推理链条,学生才有机会学到怎么想。这也是推理类模型特别适合当老师的原因,它们本来就会把思考过程写出来。
取出概率分布,而不只是最终答案
模型每输出一个词,内部其实是一整张候选词的概率表。只取排第一的那个会丢掉大量信息,把整张表留下来,传递的信息量完全不同。下一段展开讲。
用这批材料训练学生模型
训练数据由三部分组成:原始问题、教师的完整回答、以及每一步的概率分布。学生模型的目标是让自己的输出分布尽量贴近老师的。
评估并迭代
在测试集上看学生跟老师差多远,再回头调整问题集的覆盖面和训练配置。通常要来回好几轮。
假设有一道图片分类题,正确答案是猫。传统训练的做法是告诉模型:猫对,其他全错。蒸馏的做法是把老师的判断原样交给学生。
实际操作时还有一个小技巧。老师如果太自信,概率分布会非常尖锐,比如 98% / 1% / 1%,这跟硬标签就没多大区别了,软标签的优势体现不出来。
做法是在计算概率时除以一个数 T,也就是温度系数。T 越大分布越平缓,词与词之间的相对关系就越明显。这跟Harness 核心篇讲过的 Temperature 是同一个机制,只是用途不同:那里是为了让输出多样,这里是为了让信息更充分地传给学生。
这一段是本节最难凭空想象的地方,直接拖给你看。下面是老师看一张猫的图片时给出的判断,你来调 T。
光讲流程比较抽象。看一个公开的例子:DeepSeek 在 2025 年 1 月发布 R1 时,同时开源了六个蒸馏版模型,都是用 R1 生成的推理数据训练出来的。
这个清单里有一处值得留意的细节:学生模型的底座不是自家的,是从别人开源的模型里挑的。六个里四个选了 Qwen2.5,两个选了 Llama3。
为什么这么挑,官方没有解释。但可以反推出几个条件:底座必须权重开放且许可允许再训练,否则做出来不能发布;尺寸谱系要足够全,才能一次覆盖从 1.5B 到 70B 的多个档位;社区工具链要成熟,训练和部署才不用重造轮子。这三条同时满足的选项当时并不多。
DeepSeek 公布的评测里,32B 的蒸馏版在数学和代码几项基准上超过了 OpenAI o1-mini,官方称其在同期稠密模型中达到新的最好成绩。
到这里,蒸馏的好处讲得差不多了:便宜、快、能本地跑。下一节讲代价。学生学的是老师的全部,包括老师的毛病。
「五步走完」要放回选型约束
「收集覆盖目标领域的问题。问题可以人工整理,也可以让模型自己生成。这一步决定了学生模型能力的上限:没被问到的领域,学生就学不到」说明,模型、许可证、接入方式和榜单都只是信息,不是脱离场景的答案。真正的选择取决于任务、数据边界、延迟、质量下限和运行成本。
先写淘汰条件,再看最高分
「关键在「完整」两个字。只保留最终答案,学生学到的是背结论;保留中间的推理链条,学生才有机会学到怎么想。这也是推理类模型特别适合当老师的原因,它们本来就会把思考过程写出来」涉及的比较,至少要使用同一组真实输入,并同时观察正确性、失败方式、响应时间和费用。一个在公开榜单上领先的模型,可能因为许可证、隐私要求或峰值延迟不适合你的任务。
没有测试集,就没有可靠的赢家
以「到这里,蒸馏的好处讲得差不多了:便宜、快、能本地跑。下一节讲代价。学生学的是老师的全部,包括老师的毛病」为起点,选几条真正会影响决策的输入,写下一个会改变选择的反例;这比记住一次排名更能支持下一次判断。
从「五步走完」走到「第三步为什么重要」
「五步走完」先把问题落在「收集覆盖目标领域的问题。问题可以人工整理,也可以让模型自己生成。这一步决定了学生模型能力的上限:没被问到的领域,学生就学不到」上;到了「第三步为什么重要」,讨论继续推进到「假设有一道图片分类题,正确答案是猫。传统训练的做法是告诉模型:猫对,其他全错。蒸馏的做法是把老师的判断原样交给学生」。两段连起来,重点就不只是记住一个结论,而是看清它成立所依赖的条件。
把这条判断带到下一个场景
做模型选择时,先用真实任务写出不能妥协的条件,再用同一组输入比较质量、失败方式、延迟、许可和成本;榜单只适合作为起点。
- 「五步走完」:收集覆盖目标领域的问题。问题可以人工整理,也可以让模型自己生成。这一步决定了学生模型能力的上限:没被问到的领域,学生就学不到
- 「第三步为什么重要」:假设有一道图片分类题,正确答案是猫。传统训练的做法是告诉模型:猫对,其他全错。蒸馏的做法是把老师的判断原样交给学生
- 「最后的要点」:做法是在计算概率时除以一个数 T ,也就是温度系数。 T 越大分布越平缓,词与词之间的相对关系就越明显。这跟Harness 核心篇讲过的 Temperature 是同一个机制,只是用途不同:那里是为了让输出多样,这里是为了让信息更充分地传给学生
最后的「最后的要点」把讨论落到「做法是在计算概率时除以一个数 T ,也就是温度系数。 T 越大分布越平缓,词与词之间的相对关系就越明显。这跟Harness 核心篇讲过的 Temperature 是同一个机制,只是用途不同:那里是为了让输出多样,这里是为了让信息更充分地传给学生」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。
我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。
读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。
如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。
还没有这篇文章的讨论。