TT Lab
博客

한국어 English 日本語 中文

开始
博客

博客

知识蒸馏:将大模型学到的知识转移给小模型——以及“录像版教师 → 实时学生”

状态:草案(2026-10-13)。 论文中的数值已通过查阅原文及条件进行了确认。亲自尝试的部分是在笔记本电脑 CPU 上运行的玩具示例(code/04_distill_toy.py, 2–3分钟)。TT Score 的“录像版教师 → 实时学生”蒸馏仍处于 计划阶段, 尚未在实际乒乓球数据上进行测试(研究进行中,未实测)。 系列“阅读视觉模型 2”第 4 篇。第 2 篇中的 DINO 已经是“自蒸馏”: 自监督学习 1.

目录

1. 直觉:只告知正确答案的老师,连困惑原因也一并告知的老师

如果展示手写数字“2”并只说“正确答案是 2”,学生就会把 2 和其余九个数字同等视为不同的事物。然而,如果把同样的图片展示给已经学得很好的大模型,它会这样回答:“是 2 的概率为 0.97,是 3 的概率为 0.02,是 7 的概率为 0.009,其余几乎为 0。”这些小数字中蕴含着信息。 这个 2 与 3 或 7 有点相似,而与 4 完全不相似。 这是标准答案标签中所没有的信息。

Hinton 等人(2015)将这称作“暗知识(dark knowledge)”,并建议将大模型(教师)的概率输出用作小模型(学生)的目标。这就是 知识蒸馏(knowledge distillation) 。学生比教师小得多、速度也更快,同时继承了教师积累的“相似性地图”。

2. 如何进行训练

通过温度进行柔化

训练良好的教师的概率通常接近 0/1。上述例子中 0.009 这样的小值在损失函数中毫无存在感。因此,在输入 Softmax 之前,将 Logits 除以温度 T(与第 1 篇中的 τ 是同一个控制柄,但方向相反,这里使用较大的值)。

p_교사(T) = softmax(z_교사 / T),   p_학생(T) = softmax(z_학생 / T)
L = (1 − α) · CE(정답, p_학생(1))  +  α · T² · KL(p_교사(T) ‖ p_학생(T))

迁移集:无需标签

蒸馏项不需要标准答案标签。只需向教师展示任意输入,其输出即为目标。因此,用于训练学生的数据(迁移集)可以是 无标签数据。这一特性正是本篇结尾我们计划的核心。

拟合目标:输出、中间特征、Token

3. 图解:我们的计划

녹화본 교사 → 실시간 학생(계획) 시간 축(프레임), 판단할 순간 t t 교사: 앞뒤를 다 본다(녹화본) 학생: 과거 + 짧은 앞보기 앞보기 ≤ 200ms 라벨 단 랠리 적다(사람이 찍음) 녹화본 많다(라벨 없음) 교사 학습 크고 느려도 됨 교사가 단 부드러운 라벨 학생 학습 사람 + 교사 라벨 작고 빨라야 함 증류가 메우는 것: 데이터가 모자라서 생긴 차이 메우지 못하는 것: 학생이 볼 수 없는 미래의 정보
图解:录像版教师为无标签的多拍回合打标签,实时学生通过这些标签进行学习的计划

TT Score 的判定有两种用途:在比赛期间将分数显示在屏幕上的 实时判定,以及在比赛结束后重新分析视频的 录像分析。两者的约束条件不同。

实时学生 录像版教师
可见时间范围 直到判断瞬间 + 短暂的预判(200ms 以下) 整个多拍回合(前后兼顾)
计算预算 在 60fps 单帧 16.7ms 中,新模块配额不超过 5ms 充裕(在回合结束时一次性处理,或在夜间处理)
模型 必须小 可以大

录像版由于能够看到触地后球的去向,因此判断会更加准确。如果该教师 为数百个无标签的录像片段打上标签, 实时学生就能用比人工标注更多的样本进行学习。该计划在研究笔记中记为“双轨(实时最佳·录像最佳)与蒸馏”,目前尚未实施(研究进行中)。

4. 亲自尝试

code/04_distill_toy.py 在笔记本电脑 CPU 上运行了(输出 code/04_distill_toy.out.txt).

A. 经典蒸馏的缩影

这是一个包含 10 类分类的任务,其中包含相互相似的配对(0和5,1和6……)。使用 3,000 个标签训练了教师(27.8 万个参数),测试准确率为 0.856。学生模型有 754 个参数(占教师的 0.27%)。

从不同温度下的教师输出中可以看出“暗知识”(测试图片,正确答案为 7)。

T=1 → [0.    0.    0.    0.    0.    0.    0.    1.    0.    0.   ]
T=4 → [0.005 0.004 0.006 0.    0.001 0.    0.008 0.962 0.002 0.012]

在 T=1 时只能看到唯一答案,但当通过 T=4 进行柔化时,就会显现出数字 7 与 6、9 略有相似、而与 3、5 几乎不相似的信息。

学生训练方法(3 个随机种子平均值 [范围]) 测试准确率
(1) 仅 150 个标签 0.829 [0.828–0.831]
(2) 150 个标签 + 教师 T=1 0.833 [0.832–0.835]
(2) 150 个标签 + 教师 T=4 0.850 [0.846–0.853]
(2) 150 个标签 + 教师 T=8 0.844 [0.842–0.847]
(3) 0 个标签 + 3,000 个无标签迁移集(T=4) 0.854 [0.850–0.861]

如果直接使用 T=1 的教师输出,几乎没有效果,必须通过 T=4 进行柔化才能提升 2%p 左右。而且, 在完全不使用人工标签的情况下 , 仅通过教师对 3,000 个无标签数据打上的输出进行训练的学生模型达到了 0.854,几乎逼近了教师(0.856)。尽管学生的大小仅为教师的 0.27%。

我们还模仿了 Hinton 等人的一项著名实验。从迁移集中完整剔除了看起来像数字 3 的样本。学生从未将 3 作为“正确答案”见过一次。

전이 세트에서 3번을 뺀 학생: 3번 재현율 0.066, 전체 0.774
  3번 출력의 치우침(bias)만 +8 올리면: 3번 재현율 0.905, 전체 0.845

虽然几乎认不出 3,但只要将关于 3 的输出偏置(bias)调高,就能答对 90%。学生通过混合在其他数字输出中的“与 3 的相似性”,学会了 3 长什么样。不过,偏置值是观察测试集后挑选的示例用法。原论文的 MNIST 实验也是相同的方向(见下表)。

B. 录像版教师 → 实时学生

这是一个在球高序列(60fps、位置噪声、10% 丢帧、模拟相机透视的缓慢抖动)中寻找弹地帧的问题。其中还混入了球击中球拍发生折射的击球,使得仅从折射形状无法确定是否为弹地。

学生(3 个随机种子平均值 [范围]) 预判 0 帧 预判 3 帧
教师(前后 8 帧,20 个回合标签) 0.923 [0.915–0.929] ← 相同
仅 20 个回合的人工标签 0.860 [0.852–0.871] 0.875 [0.857–0.897]
+ 教师标注的 300 个回合 0.886 [0.882–0.890] 0.886 [0.879–0.897]
参考:+ 人工标注的 300 个回合(上限) 0.892 [0.885–0.895] 0.886 [0.877–0.902]

预判 0 帧的学生借助教师的标签从 0.860 提升到了 0.886,这几乎与同一 300 个回合由人工直接标注的情况(0.892)相当。 教师几乎完全替代了 300 个回合的人工标注。 预判 3 帧的学生也达到了 0.886,但由于起点更高,收益较小。

与教师(0.923)之间的差距并未通过蒸馏弥补。学生 无法看到的未来中包含的信息,再好的老师也无法传递。蒸馏所弥补的是“因数据不足而产生的差距”,而不是“因输入不足而产生的差距”。这一区别决定了我们在我们的计划中能够期望什么以及不能期望什么。

5. 论文数值

论文 内容 数值(论文)
Hinton 等人 2015 MNIST:教师(1200-1200,正则化) / 学生(800-800) 错误 67 个 / 146 个 → 对学生进行 T=20 蒸馏 74 个
〃 MNIST:从迁移集中剔除数字 3 错误 206 个(其中 3 占 133 个)→ 通过 3 的偏置 +3.5 降至 109 个,测试集中数字 3 的准确率达 98.6%
〃 语音识别:单模型 / 10 个集成 / 蒸馏后的单模型 帧准确率 58.9% / 61.1% / 60.8%, 词错率 10.9% / 10.7% / 10.7%。转移了集成收益的 80% 以上(T=2)
FitNets (2015) CIFAR-10 又瘦又深的学生(19 层,约 250 万)以 91.61% 超过了教师(约 900 万)的 90.18%
DeiT (2021) ImageNet, ViT-B 学生 匹配教师最终答案(hard)的方案(83.0%)优于概率(soft)(81.8%)。卷积教师(RegNetY-16GF)优于 Transformer 教师。包含蒸馏 Token 1000 个 Epoch 85.2%(384px)。无需外部数据,单台 8 卡 GPU 服务器
Beyer 等人 2022 ImageNet, ResNet-50 学生 在教师和学生中使用 相同的裁剪与相同的 mixup(一致性),并训练 9600 个 Epoch(耐心)→ 82.8%(双分辨率教师集成,单教师为 82.3%)。不使用标准答案标签,仅使用 KL 散度。预先计算教师输出反而会变差
Noisy Student (2020) ImageNet,教师为 3 亿张无标签图片打标签 使学生比教师更大,加入噪声(Dropout、随机深度、强增强)并重复 3 次 → EfficientNet-L2 88.4%, ImageNet-A 从 61.0 提升至 83.7%
EfficientAT (2023) 声音标记,Transformer 集成 → MobileNetV3(488 万) 基准 mAP .401,蒸馏 .458,蒸馏 + 预训练 .470. 标签损失权重 0.1 为最佳,为 0 时反而变差。比教师快 61 倍
DWPose (2023) 全身姿态,RTMPose-l 学生 64.8 → 66.5 AP,超越了教师 RTMPose-x(65.3)
DINOv2 (2023) 从头训练 ViT-L / 从 ViT-g 蒸馏 线性评估 84.5% / 86.3%

有几个现象值得注意。

6. 局限性

7. 与我们项目的联系

小结。 如果看完整场比赛的老师在数百个对局中标记出“这里是弹击”,那么只进行实时观察的学生也能学得相当好。尽管如此,它依然无法教给学生尚未发生未来的信息,因此学生的表现仍会略逊于老师。

参考文献

登录后即可点赞

评论

还没有评论。

登录后即可发表评论