知识蒸馏 · 软标签 · teacher-student
硬标签是「猫」。软标签是「猫0.7、狗0.2、汽车0.001」——后两个数字也是知识。
训练分类模型时,标准答案是one-hot:猫是1,其余全是0。但大模型最后一层输出的是softmax后的概率分布,非零项里藏着类间关系(猫和狗比猫和汽车更像)。Hinton把这种「比正确答案多出来的信息」叫暗知识(dark knowledge)。蒸馏就是逼小模型去拟合老师的整个概率分布,而不只是argmax。
温度T的作用:T=1是正常softmax,分布尖锐;T大(如4~10)把分布「摊平」,让小概率类也露出来,小模型才有东西可学。蒸馏损失 = 软标签的KL散度 + 硬标签的交叉熵,用α调比例。软标签是主菜,硬标签是调味。
看一个3类分类的logits分布。硬标签只有猫=1,软标签把猫0.7/狗0.2/汽车0.01都给出来。点「蒸馏一步」,看学生模型分别学硬/软标签的损失下降速度。
LLM蒸馏的实战路径:拿GPT-4/Claude当老师,对几万个高质量prompt生成回答(带CoT推理过程),用这些数据SFT一个7B学生。关键不是数据量,是数据里有没有老师的推理链。Alpaca/Vicuna/DeepSeek早期都是这个套路——花几千美元API,蒸馏出一个能打的7B。
拟合老师softmax,简单有效,要求同词表。
学隐藏层,信息密,需投影层对齐维度。
老师生成回答,学生SFT,LLM最常用。
学生采样老师打分,强化学习式,效果上限高。