模型蒸馏,别把它理解成把大模型“压缩打包”。 更准确的说法是:让一个小模型跟着大模型学习。 大模型是 Teacher,小模型是 Student。训练时,St… · @RwatitFahsa · TwKit
@RwatitFahsa
模型蒸馏,别把它理解成把大模型“压缩打包”。 更准确的说法是:让一个小模型跟着大模型学习。 大模型是 Teacher,小模型是 Student。训练时,Student 不只看“答案对不对”,还会学习 Teacher 给出的概率分布。 比如 Teacher 判断一张图:85% 是狗,10% 像猫,5% 像马。 这些模糊关系,就是所谓的“暗知识”。Student 学到的不是一句答案,而是模型判断时的倾向。 工程上通常会把两种损失结合起来: 一部分看真实标签,另一部分用 KL 散度逼近 Teacher 的输出。Temperature 控制概率分布的软硬,Alpha 调整两种损失的比例。 文章用 PyTorch 和 MNIST 演示了完整流程:先训练 Teacher,再训练普通 Student,最后让 Student 同时参考真实标签和 Teacher 的输出。 蒸馏的价值很现实: 推理更快、显存更低、成本更小,也更容易部署到手机、边缘设备和高并发服务里。 它和量化、剪枝也不一样: 量化是把 32 位数字换成 8 位;剪枝是删掉影响较小的连接;蒸馏则是改变训练方式,让小模型学会大模型的行为。 但蒸馏不是魔法。 Teacher 错了,Student 可能一起学错;任务场景变了,原来的能力也可能明显下降。上线前,还是要用真实数据重新评测。 一句话: 大模型负责把能力教出来,小模型负责把能力用得起。 https://www.freecodecamp.org/news/what-is-model-distillation-a-guide-for-developers/
曝光 111 · 评论 5 · 点赞 3 · 书签 0
查看原帖