随着深度学习的快速发展,优秀的模型层出不穷,比如图像领域的 ResNet、自然语言处理领域的 Bert,这些革命性的新技术使得应用效果快速提升。但是,好的模型性能并非无代价的,你会发现,深度学习模型正在变得越来越复杂,网络深度越来越深,模型参数量也在变得越来越多。而这会带来一个现实应用的问题:将这种复杂模型推上线,模型响应速度太慢,当流量大的时候撑不住。

知识蒸馏就是目前一种比较流行的解决此类问题的技术方向。一般知识蒸馏采取 Teacher-Student 模式:将复杂模型作为 Teacher,Student 模型结构较为简单,用 Teacher 来辅助 Student 模型的训练,Teacher 学习能力强,可以将它学到的暗知识 ( Dark Knowledge ) 迁移给学习能力相对弱的 Student 模型,以此来增强 Student 模型的泛化能力。复杂笨重但是效果好的 Teacher 模型不上线,就单纯是个导师角色,真正上战场挡抢撑流量的是灵活轻巧的 Student 小模型。比如 Bert,因为太重,很难直接上线跑,目前很多公司都是采取知识蒸馏的方法,学会一个轻巧,但是因为被 Teacher 教导过,所以效果也很好的 Student 模型部署上线。

内容中包含的图片若涉及版权问题,请及时与我们联系删除