6.1 选师傅与设计徒弟


文档摘要

6.1 选师傅与设计徒弟 本节摘要:蒸馏项目的成败一半在开工前的两个决定:教师怎么选、学生怎么设计。本节给出教师挑选的三条标准与配套检查动作,学生设计的三条约束与容量阶梯实验法,以及容量鸿沟的判断与三级补救。这是第六章授业心法的开篇,也是全流程流程图上的第一个工位。 第五章看完了各行业的出师作品,最后一章回到操盘手视角。按第六章支柱页那张流程图走:立项之后的第一、二个工位是选师傅、设计徒弟——两个决定做错了,后面的调参全是白费。 选师傅:三条标准与三个检查 标准一:任务匹配。 教师的训练任务要与学生任务对齐或覆盖。别只看教师排行榜成绩——一个 ImageNet 千类模型精度再高,教工业质检的二分类也未必对口。匹配度检查看两样:教师的类别体系与你的任务是否可映射;

6.1 选师傅与设计徒弟

本节摘要:蒸馏项目的成败一半在开工前的两个决定:教师怎么选、学生怎么设计。本节给出教师挑选的三条标准与配套检查动作,学生设计的三条约束与容量阶梯实验法,以及容量鸿沟的判断与三级补救。这是第六章授业心法的开篇,也是全流程流程图上的第一个工位。

第五章看完了各行业的出师作品,最后一章回到操盘手视角。按第六章支柱页那张流程图走:立项之后的第一、二个工位是选师傅、设计徒弟——两个决定做错了,后面的调参全是白费。

选师傅:三条标准与三个检查

标准一:任务匹配。 教师的训练任务要与学生任务对齐或覆盖。别只看教师排行榜成绩——一个 ImageNet 千类模型精度再高,教工业质检的二分类也未必对口。匹配度检查看两样:教师的类别体系与你的任务是否可映射;教师训练数据的分布与你业务的分布是否同域(拍照场景、光照、设备来源)。

标准二:输出质量。 3.1 的校准检查必须做:置信桶与实际正确率对照,高置信桶明显虚高的教师先做温度缩放校准,校准救不回来的(过拟合型虚高)直接换人。再加一项软目标信息量检查:统计教师软化后(目标温度)的平均熵,熵过低说明分布近 one-hot,暗知识存量不足。

标准三:可获得性。 权重可得、许可允许、推理成本可承受(离线打分也要跑一遍全量数据)。三个里有一个不满足,前两条再好也是空谈。

# 教师候选的综合体检脚本:校准 + 软目标信息量 + 分布覆盖 import torch import torch.nn.functional as F def teacher_checkup(teacher, loader, T=4.0): teacher.eval() n, correct, conf_sum, ent_sum = 0, 0, 0.0, 0.0 with torch.no_grad(): for x, y in loader: logits = teacher(x) p1 = F.softmax(logits, dim=-1) # 常温 conf, pred = p1.max(-1) correct += pred.eq(y).sum().item() pT = F.softmax(logits / T, dim=-1) # 目标温度 ent_sum += (-(pT * pT.clamp_min(1e-9).log()).sum(-1)).sum().item() conf_sum += conf.sum().item() n += y.size(0) acc = correct / n print(f"常温准确率: {acc:.3f}") print(f"平均置信度: {conf_sum/n:.3f} (与准确率差距超 0.05 需校准)") print(f"温度 {T} 下平均熵: {ent_sum/n:.3f}(理论上限 {torch.log(torch.tensor(float(p1.size(-1)))):.2f})") # 熵过低的教师:软目标近 one-hot,暗知识不足,优先换更"谦虚"的教师。 # 输出示例: # 常温准确率: 0.925 # 平均置信度: 0.961 (与准确率差距超 0.05 需校准) # 温度 4 下平均熵: 0.812(理论上限 2.30)

设计徒弟:三条约束与阶梯实验

学生的三条约束在 1.4 已立:部署算力表是硬线,结构亲缘利对齐,容量匹配防鸿沟。这里补上操作层的关键动作——容量阶梯实验:候选结构按参数量排成阶梯(如 200 万、500 万、800 万、1500 万),每档做 10 到 20 轮短程训练,直接训练版与加软目标版各一,记录两个数:直接训练精度、蒸馏增益。

阶梯读数怎么用:蒸馏增益消失的档位以下就是容量鸿沟区——那个尺寸的学生"喂不进"教师的暗知识,纯硬标签训练还勉强能学,加软目标反而不涨。选型取增益尚存的最低档再上浮一档,兼顾压缩比与安全余量。

阶梯实验的跑法可以用一个调度函数固化下来,避免每次手排:

# 容量阶梯实验调度器:候选学生按档位短程对照,自动汇总增益表 import torch @torch.no_grad() def quick_eval(model, loader): model.eval() hit = total = 0 for x, y in loader: hit += (model(x).argmax(-1) == y).sum().item() total += y.numel() return hit / total def capacity_ladder(teacher, students, loader, train_epochs, T=4.0): """students: [(档位名, 模型)],每档跑"直接训 + 蒸馏训"两份短程。""" report = [] for name, s in students: plain = fresh_copy(s); distilled = fresh_copy(s) train_direct(plain, loader, train_epochs) # 只吃硬标签 train_kd(distilled, teacher, loader, train_epochs, T) # 软硬混合 acc_p, acc_d = quick_eval(plain, loader), quick_eval(distilled, loader) report.append((name, acc_p, acc_d, acc_d - acc_p)) print(f"{name}: 直接 {acc_p:.3f} | 蒸馏 {acc_d:.3f} | 增益 {acc_d-acc_p:+.3f}") return report # 输出示例(四档学生,各 15 轮短程): # S-2M : 直接 0.841 | 蒸馏 0.845 | 增益 +0.004 # S-4M : 直接 0.868 | 蒸馏 0.887 | 增益 +0.019 # S-8M : 直接 0.881 | 蒸馏 0.903 | 增益 +0.022 # S-15M: 直接 0.890 | 蒸馏 0.908 | 增益 +0.018 # 读法:2M 档增益消失(鸿沟区),4M 档起增益明显,按"最低有效档 # 上浮一档"的规则选 8M。

容量鸿沟的三级补救

阶梯实验确认鸿沟后,按成本从低到高补救:

  1. 加宽不加深:同等参数量下,宽而浅的结构比窄而深更容易吸收软目标——优先调宽通道数。
  2. 助教级联:教师先教一个中等模型,再由它教目标小模型。每级传一部分,鸿沟被拆成两级小台阶;代价是训练链路翻倍。
  3. 课程表配比:训练早期把 alpha 压低(学生先跟标签学会走路),随训练进度升到目标值(再跟教师学分寸)。零额外成本的软补救,通常与前两级叠加使用。

一条完整案例:一次选型 + 阶梯实验的完整记录

背景。 医疗影像设备的本地病灶筛查任务,云端教师 AUC 0.947;设备端预算 800 万参数以内、单张 200 毫秒。团队在三个开源教师与四个学生结构之间选型。

操作。 教师侧体检:候选教师甲(同域医学影像,AUC 0.947)、乙(通用大模型,AUC 0.931)、丙(同任务旧版,AUC 0.925)。跑完整体检脚本,乙的常温准确率与平均置信度差 0.08(过度自信)且温度 4 下熵仅 0.21——暗知识存量不足,出局。甲与丙进入试蒸。学生侧:200 万、400 万、800 万三档阶梯,各跑短程对照。

结果。 教师甲配 400 万学生的蒸馏增益 1.9 个点,配 800 万增益 2.2 个点,配 200 万增益 0.4 个点(鸿沟区);教师丙各档增益比甲低 0.6 到 0.8 个点。最终定教师甲加 800 万学生,量化后 31 MB、单张 160 毫秒。

解读。 这条案例里两个决定都靠数据而非直觉:乙的精度排名第二却被体检刷掉——输出质量比榜单名次重要;200 万档的"增益消失"比绝对精度更能说明鸿沟位置——鸿沟的判定信号不是"学生学得差",而是"软目标帮不上忙"。教师丙的全面落后则提醒:旧版教师再顺手,也顺手不过对口的新教师。

变式。 找不到同域教师时,用 4.5 的跨任务蒸馏借异域先验;教师必须自研时,先花预算把教师做好再蒸——教师差一个点,学生至少差半个点,这笔杠杆关系在立项测算时要算进去。

⚠️ 常见坑:跳过阶梯实验直接选"预算内最大的学生"。预算内最大往往顶着算力红线,量化、批处理一挤就超;而且过大学生的蒸馏增益边际趋零,等于花预算买不来收益。

💡 关键直觉:选师傅像招合伙人,不看名气看匹配;设计徒弟像定岗位编制,先看预算再谈能力。两个决定都用数据说话——体检脚本的三个数字和阶梯实验的两条曲线,比任何经验直觉都可靠。

本节要点回顾

  • 教师三查:任务匹配(分布同域)、输出质量(校准加熵检查)、可获得性(权重许可成本)。
  • 体检指标:准确率与平均置信度差距超 0.05 需校准;目标温度下平均熵过低说明暗知识不足。
  • 阶梯实验:以"蒸馏增益消失"为鸿沟信号,选增益尚存的最低档上浮一档。
  • 鸿沟三级补救:加宽不加深、助教级联、课程表配比,可叠加使用。
  • 杠杆关系:教师差一个点,学生至少差半个点——教师值得先投资。

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U