兄弟们,最近社区里都在聊蒸馏,我直接说干货。模型蒸馏说白了就是拿大模型(教师)教小模型(学生),让小的学到大的精髓,但不是简单复制,而是通过软标签(soft labels)传递知识分布。比如一个大模型做分类,输出“猫0.8、狗0.15、鸟0.05”,这种概率分布比硬标签“猫1”信息量大多了。
实际部署中,我试过把Llama-2 7B蒸馏到3B,推理速度提升3倍,F1从89掉到86,但边缘设备跑得爽。适合场景:手机端OCR、智能音箱语音识别、工业视觉检测,这些地方算力有限但需要实时响应。注意温度参数(T)调大能让软标签更平滑,学习效率更高,一般T=5起步。
有个坑:蒸馏不是万能,如果教师模型本身过拟合或biased,学生只会学得更糟。建议先用干净数据微调教师,再蒸馏。另外,别贪心一步蒸馏太大,分阶段减参更稳。
最后问个实战问题:你们在蒸馏时,是直接用logits输出,还是加中间层特征匹配(如attention map)?哪种效果更稳?评论区聊聊 👇 |