兄弟们,最近蒸馏技术又火了。别被论文里的花哨名词唬住,说白了就是让大模型当老师,教小模型学会“偷师”。今天聊聊落地时最实用的几个坑和技巧。
🔥 第一,温度参数别瞎调。蒸馏时温度(T)高了软标签太模糊,低了又没学到泛化能力。我实测建议T=3-8之间做网格搜索,一般7左右效果最好。
🔥 第二,损失函数要加权。光用KL散度学软标签不够,硬标签的交叉熵也得加进去。我习惯软硬比7:3起步,再根据验证集调。
🔥 第三,老师模型别用太强的。GPT-4虽然准,但蒸馏出的学生可能过拟合它的“坏习惯”。选个中等偏上的老师,学生反而更鲁棒。
🔥 第四,注意部署时量化。蒸馏后模型参数量小了,但内存带宽还是瓶颈,配合INT8量化,推理速度能翻倍。
举个实战例子:我用Llama-13B蒸馏出3B模型,在代码生成任务上只掉了2%的准确率,但延迟从200ms降到50ms。真香。
最后问下老哥们:你们用蒸馏时,学生模型的结构是自己设计还是直接选已有小模型?我总觉得直接缩宽深不如重新设计头尾结构效率高。来聊聊! |