什么是”蒸馏”?小模型怎么从大模型学到本事
打开任何一个模型榜单,都能看到一件反常识的事:一个参数量只有十分之一的小模型,跑分居然能咬住大模型。评论区的解释通常只有两个字——蒸馏。听起来像是把大模型”压缩”了一下,但压缩这个词会让人产生误解:文件压缩是无损还原,蒸馏不是。
第一步:它学的不是答案,是”犹豫的样子”
假设一张图给大模型判断,正确答案是”猫”。普通训练只告诉小模型一个信号:这是猫,其他都不是。而大模型输出的是一个概率分布:猫
0.7、狗 0.2、狐狸 0.08、其余 0.02。
这个分布本身就是知识。它在说:”这确实是猫,但它有点像狗,也有一点像狐狸。”这种”像”的关系,是模型从海量数据里学来的视觉相似度,藏在被one-hot标签丢掉的部分里。业内管这叫暗知识(dark
knowledge)。
蒸馏的做法就是让小模型去拟合这个完整分布,而不是只拟合最终答案。为了把这个分布拉平、让相似关系看得更清楚,会引入一个温度参数
T,把 logits 除以 T 再做 softmax——T
越高分布越平滑,暗知识暴露得越充分;T 通常取 2 到 20
之间,训练后期再逐步降回 1。
结论:学生模型学到的不是”答案表”,而是”老师面对问题时脑子里那张相似度地图”。
所以它在新问题上泛化更好,而不只是背下了见过的题。
第二步:三种蒸馏路线,取决于你能拿到什么
不是所有场景都能拿到教师的概率分布,于是分化出三条路:
logit
蒸馏(白盒):能读教师的输出分布甚至中间层特征,效果最好。缺点是必须能拿到模型权重,商用闭源模型做不到。
序列蒸馏(黑盒):只能拿到教师的文字输出,那就用教师批量生成高质量回答,拿去微调小模型。这条路门槛最低,也是市面上大多数”小模型”的真实做法。缺点是学生只学到正确答案,学不到相似关系。
特征蒸馏:让小模型的中间层去对齐大模型的中间层,相当于不光抄答案,还抄解题步骤。多用于视觉模型和需要保留内部表征的场景。
第三步:代价在哪——掉得最快的是长尾和推理
参数量缩小十倍,能力不是等比例缩小,而是不均匀地掉。掉得最明显的两类:
一是长尾知识。常见问题的答案,小模型背得很熟;但”某个型号的接口协议标准是哪一年定的”这类低频事实,掉得厉害。要补,就得靠外挂知识库检索,而不是指望模型本身。
二是多步推理。单步判断可以模仿,五步以上的链条容易在中途走偏。参数量的作用更像是”同时在脑子里握住多少个变量”,这个容量不够,链条就断。
还有一个容易被忽略的副作用:蒸馏出来的模型往往过度自信。因为它学的是教师的平滑分布,而它自己的容量撑不住这种细腻度,最后会把”0.6
对 0.3″压成”0.95 对
0.05″。所以用蒸馏模型做需要置信度判断的场景(比如内容审核、医疗辅助),要额外做校准。
第四步:什么时候该用小模型
判断标准不是”哪个更强”,而是”这个任务需要多少容量”。
明确分类、格式转换、固定模板改写、短文本摘要——这类任务用小模型又快又便宜,成本可能只有大模型的几十分之一,延迟低到可以实时调用。
开放创意、多约束同时满足、长文档全局理解、需要推理链的任务——这些别省。省下来的钱会在返工上还回去。
实际生产里最划算的架构通常是混合路由:先用小模型判断任务难度,简单任务就地解决,难的转给大模型。这套做法在
AIGC广告
的批量文案与标签生成里很常用——八成请求是小模型处理的,剩下的才升级。
结语
蒸馏的本质是”能力迁移”,不是”体积压缩”。理解了这一点,你就不会问”小模型能不能替代大模型”,而会问”我这个任务需要多少容量”。后一个问题有答案,前一个没有。
如果你在评估 AIGC制作公司
的技术底子,可以问一句:你们的模型是怎么选型的,哪些环节用小的、哪些必须用大的?能分清这个边界的团队,通常成本控制和交付稳定性都做得更扎实。