你大概见过这样的说法:某个小模型是「从大模型蒸馏来的」,参数少一大截,效果却接近。听着像变魔术。这篇不讲公式,先把「老师教学生」这套流程拆开讲清楚:蒸馏到底在传什么、传到什么程度、哪些活它能接、哪些活它接不住。看完你至少能判断,看到「蒸馏版」三个字该不该当回事。
你可能在群里、在模型介绍页上见过这种说法:某个小模型是「从大模型蒸馏来的」,参数少一大截,效果却接近。听起来像变魔术,其实流程挺朴素,就是让一个已经练好的大家伙去带一个体格更小的徒弟。这篇文章不讲公式,先把这套「老师教学生」的流程拆开,讲清楚蒸馏在传什么、能传到什么程度、哪些活它接得住、哪些接不住。
看完你至少能有个判断力:再看到「蒸馏版」三个字,知道该问什么、该拿什么去试、什么时候干脆别指望它。核心结论先放这儿——蒸馏是省算力、省延迟、固化行为的手段,不是凭空提升智力的捷径。
一句话说清:蒸馏是让一个已训好的大模型当老师
把顺序理清最重要:蒸馏不是从零开始造模型,而是先有一个已经能打的教师模型,再用它去带一个学生模型。学生通常是参数更少、结构更小的那一类。所以蒸馏的前提是老师已经练好了,这跟从头训练完全是两回事,别把两者当成同一条流水线上的工序。
- 教师模型是现成的:已经训练完、表现稳定,才谈得上拿出来带徒弟
- 学生模型是目标:参数更少、推理更便宜,这才是蒸馏的动机所在
- 传递的是行为而不是权重:学生不复制老师的内部结构,只学老师面对问题时的倾向
- 训练目标变了:学生不再只对着标准答案学,而是尽量模仿老师的输出习惯
老师到底教了什么:软标签比标准答案信息量大
平时训练模型,给的是标准答案:这道题选 A,对就是 1,错就是 0。老师能提供的东西比这多一层。它会对每个可能的答案都给一个概率,比如正确答案排第一,但某个相近的错答案排第二、概率也不低。这个「错得有多像」的信息,就是所谓的软标签,信息量比单纯的对错大得多。
对学生来说,这相当于老师把「哪些方向比较接近正确答案」也一并教了。小模型本来容量就紧张,有这种带方向的指导,能少走不少弯路,收敛更快。附带的一个好处是,当你的真实数据不够时,可以拿老师的输出去造训练样本,扩充学生能见到的题量。
| 学习信号 | 标准答案长什么样 | 对学生的作用 |
|---|---|---|
| 硬标签 | 只标对错,非零即一 | 能学会判断,但不知道边界在哪 |
| 软标签 | 每个候选给一个概率 | 学到类别之间的相似关系,泛化更稳 |
| 无标注数据 | 只有输入,没有答案 | 靠老师现场判断生成答案,用来扩样本 |
用带徒弟的比喻走一遍流程
把它想成老师傅带徒弟。老师傅不是把几十年的手感直接拷贝到徒弟手里,而是让徒弟看他处理大量真实案例:这个情况怎么判断,那个边角料怎么处理。看多了,徒弟慢慢就有样学样。整个过程里,徒弟学的是「处理方式」,不是「肌肉记忆」的物理复制。
- 第一步,选师傅挑一个在你目标任务上已经表现稳定的教师模型。判断标准是它在你的真实例子上错得少、错得有规律,而不是看宣传语。
- 第二步,准备练习题用一批输入让老师跑一遍,把它的输出连概率一起存下来,作为学生的训练材料。这批输入的覆盖面决定了徒弟见过多少世面。
- 第三步,徒弟练手学生模型拿这些材料训练,目标是让自己的输出分布尽量贴近老师。训练步数和数据量要跟上,练得不够,天分再好也白搭。
- 第四步,验收拿一批老师没见过、学生也没见过的题同时考两边,重点看学生错得离谱的比例,而不是只看平均分。
这个比喻里有个关键点:徒弟手艺上限受自己的手和工具限制。学生模型的结构决定了它的天花板,蒸馏能让它更快接近自己的天花板,但没法把天花板抬高到老师那个高度,尤其是需要长链条思考的任务。
和微调、量化差在哪,别混为一谈
这三个词经常被混着用,但改的东西完全不同。微调是在一个已有模型身上加你的领域知识,改的是「它会什么」;蒸馏是换一个更小的身体,改的是「它多大个头」;量化是同一个模型把数值精度压低省显存,参数数量没变。三者不冲突,实际项目里常见的是先蒸馏换小体量,再用微调补领域知识,最后量化上线。
| 手段 | 改的是什么 | 模型大小变吗 | 典型动机 |
|---|---|---|---|
| 微调 | 行为和领域知识 | 基本不变 | 让它懂你的业务 |
| 蒸馏 | 由哪个模型来干活 | 变小 | 省算力、省延迟 |
| 量化 | 数值表示精度 | 参数数量不变 | 省显存、省内存带宽 |
什么情况下值得上蒸馏
- 要压成本或压延迟:本地跑、端侧跑、单卡高并发,小模型的优势立刻显现,这是最常见的动机
- 要固定输出风格:把一个表现稳定的老师的行为固化到小模型,省下每次调提示词、反复对齐的心思
- 有多余的教师调用预算:老师可以走接口,学生自己养在本地,长期账更划算
- 受硬件或合规限制:数据不能出内网、模型必须跑在指定设备上时,小巧的学生模型更容易落地
反过来说,如果你只是偶尔跑几次、对延迟没要求、预算也宽裕,那直接调老师可能更省事,蒸馏的搭建成本未必收得回来。要不要做,先算清楚调用量和硬件这两笔账,具体单价和规格可以到站内价格页面核对当时的数字。
这些情况别指望蒸馏
蒸馏不是万能药,有几类场景基本别抱期望。判断标准很简单:如果任务本身需要很深的推理链条,而学生的容量又装不下这个过程,那蒸馏只能让它学会模仿表面措辞,深层推理还是会断。硬要用,结果往往是「说得很像,做起来不对」。
- 需要极强推理深度、长链条思考的任务,小体量本身就装不下,蒸馏改善有限
- 老师自己就不行,学生只会更差,别拿一个凑合的老师去带
- 训练数据分布外的怪问题,学生比老师更容易崩,因为它的容错空间更小
- 对事实准确性要求极高、容错率极低的场景,学生的小误差会被放大,要谨慎评估
蒸馏能让学生更快接近自己的天花板,但抬不高天花板本身。
看到「蒸馏版」三个字,怎么判断值不值得用
最后给一套可执行的排查顺序。别急着看宣传语,先按下面几步走,基本能筛掉大部分名不副实的说法。
- 问来源先问它蒸馏自谁、用的是什么数据、覆盖哪些任务。来源说不清的先降低预期,这不是苛刻,是基本的尽调。
- 跑真实任务拿你自己的真实输入跑一批,重点看错得离谱的比例,而不是只看平均分。平均值好看但偶尔胡说的模型,线上最危险。
- 做对照找同规格的非蒸馏小模型比一比,确认收益真的来自蒸馏,而不是单纯因为数据量堆得多。没有对照,就分不清功劳归谁。
- 算总账把效果差距折成成本和延迟。差一点点但便宜很多、快很多,往往是划算的;差一点点却省不了钱,那就不值得换。
如果你还在选教师模型或者挑服务商,可以先把候选的规格和报价列出来对比,站内的资料库和价格追踪页面有整理好的入口,照着核对当时的数字比自己一家家翻文档省事得多。
下一步想动手试试的话,先到站内工具目录挑一个能快速对比模型输出的小工具,跑几轮你自己的题;再做决定之前,去价格追踪页核对当时的报价,把成本算进去。→常见问题
蒸馏出来的小模型能商用吗?
能不能商用看的是学生模型本身的权重许可证,不是看老师。但要注意:如果老师的使用条款禁止拿它的输出去训练别的模型,那用它的输出造训练数据就有风险。这条边界建议单独查一遍,站内也有讲开源权重许可范围的文章可以对照。
蒸馏和「小模型」是一回事吗?
不是。小模型只是说参数量少,它可以是从头训出来的,也可以是蒸馏来的。蒸馏说的是训练方式,小模型说的是结果体型。市面上很多小模型既做了蒸馏也做了别的压缩手段,宣传时只挑一个点讲。
蒸馏之后效果会掉多少?
没有统一答案,取决于任务类型、学生体量和老师质量。信息量大、需要长推理的任务掉得明显,分类、抽取、风格化改写这类任务往往掉得很少。别信任何笼统的百分比,拿你自己的数据测才有意义。
普通人做蒸馏要花多少钱?
要看你打算让学生多大、数据多少。自己搭一套的成本和直接用云上按量跑的差别很大,建议先按显存和时长估一遍再决定。算力这块的实时行情和估算页面站内都有,别按记忆里的旧价去算。
蒸馏能替代微调吗?
不能,两者目的不同。蒸馏是把大模型的能力搬进小模型,微调是往模型里塞你的领域知识。常见组合是先蒸馏拿到一个便宜好用的底座,再在这个底座上微调。先想清楚你要解决的是成本问题还是知识问题。