蒸馏中教师和学生差距过大会怎样?
简化版
教师远强于学生时,学生容量可能无法同时拟合教师的复杂分布,Soft Target 过于细腻、隐藏层维度不匹配,训练会出现高蒸馏 Loss、优化不稳定或只学到表面风格,长尾能力仍差。
缓解方法包括选择中间规模助教做渐进蒸馏、降低任务难度、做课程学习、只蒸馏学生可表达的层/Token、增加硬标签与真实数据,并用教师—学生分歧和学生容量评估是否已到不可压缩边界。
详细版
large teacher -> assistant teacher -> student
curriculum: easy -> hard
signals: output + selected features
| 症状 | 可能原因 | 处理 |
|---|---|---|
| KL 长期很高 | 分布过复杂 | 提高 T/助教/降任务 |
| 训练不稳定 | 梯度冲突 | 调权重、课程学习 |
| 常见任务好长尾差 | 容量/数据不足 | 长尾配额、路由 |
| 模仿风格但不正确 | 教师输出未验证 | 金标与执行器 |
不是教师越强越好:应比较可学习性、数据成本和最终学生质量,必要时承认小模型无法承接某些任务并采用模型路由。
完整版教学
1. 差距包含哪些维度
不仅是参数量,还包括架构、深度、隐藏维度、上下文长度、Tokenizer、工具能力和训练语料。
学生缺少某项结构能力时,增加蒸馏样本也未必能弥补。
例如学生上下文上限只有 4K,就无法通过监督学会直接处理 32K 输入;此时应改架构、压缩上下文或使用路由。
2. 为什么强教师不一定最好
教师分布包含学生无法表示的细微边界,优化会在多个目标间冲突。相对弱但更接近学生的教师可能提供更可学信号。
最终标准是学生验证质量,而不是教师单独榜单最高。
3. 容量不足如何表现
训练与验证蒸馏 Loss 均居高不下,增加数据/步数收益很小;不同任务互相挤压,长尾与复杂推理优先丢失。
若训练 Loss 很低、验证差,则更像数据覆盖或过拟合,不应都归因于容量。
还可观察扩大学生规模后的增益:若稍大模型在同数据/预算下明显改善,容量瓶颈证据更强。
4. Soft Target 温度的作用
升高 T 可平滑教师过尖分布,让学生更容易学习类别关系;过高又会趋于均匀。
L = alpha × T² × KL(p_t(T) || p_s(T))
+ (1-alpha) × CE(y, p_s)
T 和 alpha 联合调参,不能用温度解决架构缺失。
5. 助教模型为何有用
Teacher Assistant 先从大教师学习,再蒸馏给小学生,缩小每一步的容量差距。
| 路线 | 优点 | 代价 |
|---|---|---|
| 教师→学生 | 流程简单 | 差距大时难学 |
| 教师→助教→学生 | 信号渐进 | 多一次训练 |
| 多教师→学生 | 能力覆盖广 | 冲突与成本高 |
助教是否有效仍需同总预算比较。
6. 课程学习怎么设计
先用短、单任务、可验证样本学习基础行为,再逐步加入长上下文、多步推理和困难边界。
难度可由学生 Loss、教师—学生分歧和任务步骤估计;课程不能永久排除困难样本。
每个阶段混入部分已学会的回放样本,避免进入困难阶段后遗忘基础格式与安全行为。
7. 选择性蒸馏是什么
只在教师可靠、学生有可学空间的样本/Token 上施加蒸馏;对教师不确定或学生完全不可表达的部分降权。
weight(x) = teacher_confidence × learnability × business_value
保留随机样本防止选择偏差。
8. 特征维度不匹配怎么办
隐藏层蒸馏可用投影层对齐教师和学生维度,或选择语义相近的层做映射。
投影增加训练参数,未必适合部署;通常训练后丢弃,但要验证学生不是只依赖临时投影。
投影可用线性层或轻量 MLP,并只对选定 Token/层计算特征 Loss,控制显存;其权重不进入最终学生推理图。
9. 层数不同如何对齐
可把多层教师映射到少数学生层,例如按深度比例或注意力/表示相似度选择。
强制每层一一对应不可行,也可能限制学生形成适合自身架构的表示。
可以平均多个教师层作为目标,或通过表示相似度动态匹配;映射策略也应做消融,避免错误对齐产生冲突梯度。
10. 硬标签为什么重要
教师也会犯错,真实标签为正确性提供锚点。差距大时,硬标签还能避免学生追逐教师尾部噪声。
高风险任务增加金标与规则校验,不以教师自信代替真实性。
11. 数据和容量如何区分
扩大高质量覆盖后若目标切片持续改善,问题主要是数据;若不同数据规模都很快饱和,则可能是容量/架构。
画数据规模—质量曲线和模型规模—质量曲线,避免凭单次实验判断。
同时固定训练 Token 或总算力做公平比较,否则更大模型因计算更多而提升,不能单独证明容量结构更合适。
12. 何时应停止压缩
学生在关键安全、工具或长尾任务达不到最低门槛,且助教/QAT/数据扩展均无明显收益时,应提升学生规模或做路由。
不能为满足文件大小目标而隐藏能力缺口。
决策应比较“学生独立完成、学生转强模型、直接强模型”三条路径的成功率、P99 和单位成本;若大量请求仍需 Fallback,过小学生可能并不经济。
13. 如何评估
比较直接蒸馏、助教、课程和同规模直接训练,固定数据与算力或分别报告总成本。
除平均分,测教师差距、长尾、安全、校准与每成功任务成本;上线灰度保留强模型 Fallback。
教师提供能力上限,但学生能吸收多少由容量、数据和优化共同决定,差距过大时需要搭桥而非强行模仿。
14. 常见误区与追问
- 误区:教师越强学生一定越好。 信号可能超出学生可表达范围。
- 误区:增加训练轮数可解决容量不足。 可能只导致过拟合。
- 误区:温度能消除所有师生差距。 它只调分布平滑度。
- 误区:助教必然提升。 需计入额外训练成本并做对照。
- 误区:学生达不到教师就算失败。 应依据部署最低标准和成本判断。
- 追问:如何判断容量瓶颈? 看数据/训练增加后的饱和曲线和多任务冲突。
- 追问:差距太大怎么办? 助教、课程、选择性蒸馏、增大学生或路由。
15. 加强记忆
- 先分差距:规模、架构、上下文、Tokenizer 与工具。
- 再看症状:高 Loss、任务冲突、长尾先丢。
- 再调信号:温度、软硬权重和选择性蒸馏。
- 再搭桥:助教与课程学习。
- 再对齐:投影层和层映射。
- 再画曲线:数据与模型规模分别验证。
- 最后守边界:达不到关键门槛就扩容或路由。