老哥们,最近在搞模型部署,发现蒸馏这玩意儿是真香,但也真容易翻车。简单说,蒸馏就是用大模型(教师)教小模型(学生),让学生学得又快又好。比如,用Llama 3教一个轻量版,推理速度能快3-5倍,显存占用直接砍半。
核心点:别傻乎乎只拟合硬标签(token级别),重点在软标签(logits分布)。教师模型的输出概率分布里藏着“猫像狗但不像飞机”这类知识,蒸馏损失最好用KL散度。温度系数T是关键,太高分布太平,太低又退化成硬标签,T=2-5是个稳妥区间。
踩坑记录:我试过直接拿教师模型的数据集蒸馏,结果学生模型过拟合严重。正确姿势是加噪声数据或对抗样本,提升泛化性。另外,参数冻结别乱搞,学生模型的小头层数少,得重新设计中间层对齐方式。
最后抛个问题:你们在实际部署中,蒸馏模型的推理延迟优化到多少了?有没有试过结合量化或剪枝?欢迎分享血泪史! 🔥 |