中文

减少、复用、回收:利用蒸馏提升训练效率

机器学习 2022-11-03 v1 人工智能

摘要

提升深度网络训练效率(即达到给定模型质量水平所需资源)的方法对深度学习从业者具有直接益处。蒸馏通常用于压缩模型或提升模型质量,但尚不清楚蒸馏是否真正改善了训练效率。蒸馏带来的质量提升能否转化为训练加速,还是仅仅提高了最终模型质量而未节省资源?我们进行了一系列实验,以研究蒸馏是否以及如何用于加速训练,使用在 ImageNet 上训练的 ResNet-50 和在 C4 上以掩码语言建模为目标训练并在 GLUE 上评估的 BERT,采用常见企业级硬件(8x NVIDIA A100)。我们发现,在 ImageNet 上训练的 ResNet-50 中蒸馏可加速训练至多 1.96 倍,在 GLUE 上评估的 BERT 中至多 1.42 倍。此外,BERT 的蒸馏仅在前 20-50% 的训练期间进行时产生最优结果。我们还观察到,即使在 ResNet-50 和 BERT 中使用质量最差的模型作为教师模型,带蒸馏的训练也几乎总是比不带蒸馏的训练更高效。最后,我们发现,通过每一步从教师模型池中随机采样单个教师(仅具有 O(1) 运行时间成本),可以获得从教师模型集成中蒸馏的益处,而集成蒸馏具有 O(n) 运行时间成本。综上所述,这些结果表明蒸馏可以大幅提升图像分类和语言建模中的训练效率,并且对蒸馏协议的一些简单优化可进一步增强这些效率提升。

关键词

引用

@article{arxiv.2211.00683,
  title  = {Reduce, Reuse, Recycle: Improving Training Efficiency with Distillation},
  author = {Cody Blakeney and Jessica Zosa Forde and Jonathan Frankle and Ziliang Zong and Matthew L. Leavitt},
  journal= {arXiv preprint arXiv:2211.00683},
  year   = {2022}
}