兄弟们,最近社区里都在聊模型蒸馏,今天来点干货。简单说,蒸馏就是让一个“老师”大模型(比如70B)教“学生”小模型(比如7B)抄作业,学生学得精髓,推理成本直接砍到1/10。
核心三步走:
1️⃣ 准备教师模型输出soft label(软标签),别死磕硬标签,知识蒸馏的重点是概率分布里的“暗知识”。
2️⃣ 训练学生模型时,loss函数搞两个:蒸馏损失(KL散度) + 任务损失(交叉熵),温度系数T调高(比如4-8)能让软标签更顺滑。
3️⃣ 部署时学生模型直接上torch.compile或vLLM,小模型跑GPU成本低到离谱。
实测经验:蒸馏后的7B模型在数学推理(GSM8K)上能追平原版13B的90%精度,但推理速度翻3倍。不过注意,如果教师模型本身就拉胯,蒸馏出来的学生纯属“学坏”。另外,蒸馏不能替代微调,最好先微调教师再蒸馏。
最后问一句:你们在实际部署中,觉得蒸馏更适合聊天场景还是代码生成?评论区聊聊踩过的坑。 |