蒸馏的默认假设是错的
知识蒸馏的黄金法则:强老师带出好学生。模型越大、训练越充分的教师模型,蒸馏出来的学生模型越好。这个假设几乎贯穿了从 Hinton 2015 年提出蒸馏以来的全部实践。但 Princeton 的 Taiming Lu 和 Zhuang Liu 这篇论文说:不一定。
他们做了一个系统的实验:通过调整架构大小和训练 token 预算,构造了强→弱、同级→同级、弱→强三种教师-学生关系,然后在每种关系下研究蒸馏预训练的效果。结论非常反常识:
弱老师也能教出好学生。只要合理混合语言建模损失和知识蒸馏损失的权重,即使是参数量更小、训练更不充分的教师模型,也能帮助更大的学生模型提升性能。这不是什么特殊技巧,就是调整好 LM loss 和 KD loss 的混合比例就能做到。
强老师不一定更好。把教师模型做得更大、训练 token 更多,蒸馏收益反而会饱和甚至逆转。更强的老师不等于更好的学生——过强的教师输出分布可能过于"确定",反而压缩了学生模型的探索空间。
更有趣的发现:蒸馏改善泛化而非拟合
论文还发现了一个被忽视的现象:蒸馏在提升泛化能力(分布外表现和下游任务)上的效果,远比在域内拟合上的效果明显。
这其实提供了一个很好的直觉解释。蒸馏本质上不是在教学生"记住"训练数据,而是在传递教师模型学到的决策边界结构。教师模型的 logit 分布编码了关于数据流形的信息——哪些样本接近、哪些决策边界更重要。学生模型学到的不是标签本身,而是标签之间的相对关系。这正是泛化能力的来源。
这也解释了为什么弱老师也能帮上忙:即使是小模型,只要它在训练数据上学到了某些有用的结构信息,这些信息就能通过蒸馏传递给更大的学生模型。
工程意义:蒸馏预训练不必等大模型
对工程实践来说,这篇论文的启示很直接:
蒸馏预训练的门槛比想象中低得多。不需要先训练一个耗资巨大的巨型教师模型再蒸馏。一个中等规模的模型、合理的训练预算、调好 loss 混合比例,就足以支撑有效的蒸馏预训练流程。
更大的教师模型有边际收益递减甚至为负的风险。在资源有限的情况下,与其把预算砸在教师模型上,不如把资源分给学生模型本身或更好的蒸馏策略上。
蒸馏的价值主要在泛化。如果目标是提升域内困惑度,蒸馏可能不是最高效的方法;但如果目标是提升下游任务和分布外鲁棒性,蒸馏是非常高效的手段。
论文标题的问号
"Strong Teacher Not Needed?"——标题里的问号很诚实。这篇论文没有说弱老师一定更好,而是在说"强老师的优势被高估了,弱老师的能力被低估了"。蒸馏预训练中真正重要的不是教师模型的绝对强度,而是 loss 设计和训练策略。对整个 LLM 预训练领域来说,这是一个值得重新审视基本假设的提醒。