老哥们,聊聊蒸馏这个话题。简单说,就是拿一个牛逼的教师模型(比如GPT-4这种大块头),去训练一个学生小模型,让学生学教师的“软标签”概率分布,而不是死记硬背硬答案。这样学生模型参数量砍到十分之一,但性能能追平80%以上,部署时latency直接减半,省显存还快。
举个例子:我们团队最近把ResNet蒸馏到MobileNet,参数量从25M降到3.5M,推理时间从50ms降到8ms,准确率只掉了1.2%。对于生产环境,这波血赚。关键是蒸馏不只是分类任务,对话模型也能玩,比如用LLaMA-70B蒸馏一个7B版,对话流畅度接近原版,但硬件门槛从A100降到3060。
注意两点:一是温度参数要调,太高会模糊特征,太低没信息;二是数据要多样化,不然学生只会抄作业。另外,蒸馏后别忘了做量化,FP16转INT8,性能再翻倍。
抛个问题:你们在实际项目里,蒸馏后模型有没有出现过“知识遗忘”的情况,比如长尾任务掉得厉害?怎么解决的?来评论区聊聊。 |