深度学习知识蒸馏,小模型也有大可能

现如今,各种大模型横行在AI的各个领域,有钱有资源的大公司都在暴力堆数据,疯狂卷资源,大模型的效果的确是让人惊艳的,但实际落地的部署设备无法匹配这么高的算力需求,普通人也没有钞能力能够在大模型上再做文章。基于此现状,知识蒸馏的策略就应运而生了,它的目标是让小体量的模型能够达到与大模型相媲美的效果。

大家都知道,参数量并不是越大越好,达到一定的瓶颈后,即便扩大参数量,模型性能的提升也是微乎其微,但对于相同参数量的模型,执行不同的训练策略,往往能够得到不同的效果。知识蒸馏也是关注训练策略上的调整,试图通过设计策略让模型既小又好,采用Teacher和Student一大一小两种模型,二者共用相同的数据,Teacher模型是已经训练完成的,需要被冻住不再进行二次训练,Student模型不仅要学习原始的数据,还要学习Teacher模型的相关指导。

Teacher模型负责提供辅助信息指导Student模型,信息的形式是多样的,例如最终结果的分布、中间解题的过程、数据分布的关系等。下图中将Teacher模型的预测结果作为软标签,数据集的真实标签作为硬标签,Stuedent模型需要权衡软损失和硬损失,不仅要学会任务,还要学会Teacher模型的结果分布,两种损失是相辅相成的。图中的T代表温度系数,除以T可以重新设计预测结果的概率,让软标签变得更软。温度越高,相当于多样性更丰富,标签的概率是雨露均沾的,而温度越低,越接近硬标签,只希望模型预测到最准的效果。

除了上述的Teacher模型提供结果分布的信息外,还可通过模型中间层的特征图传递指导信息;也能使用样本之间的关系,比如每个batch中样本存在的差异等,但此种形式使用率不高,主要原因是数据的可控性不足,可能存在的离群点会让模型学错方向。





以上三种是相对较早的研究,我们可以深刻的感受到学术是一个思路不断发散,持续精进的尝试过程。后续的知识蒸馏研究中,学者们将目光放到了Teacher端和Student端的差异上,同样设计了Mask机制,重点突出差异的区域;随着Transformer思想的兴起,下图二引入了Attention机制,分别在空间和通道维度上做注意力,并设计了三重损失监督训练。






分析上述情况可以得出:如果置信度预测的准,则无法利用到错误分布,软标签失去了本身的意义;如果置信度预测的不准,即便利用了错误分布,也很难挽回自身不准的局面。由此衍生出解耦的思想,置信度和错误分布不再绑定,而是通过两路分支,分别计算各自的损失,再通过一组可学习的损失权重来解耦二者的关系。


从上述中可以看到,知识蒸馏方向已经有很多理论成果,但目前的实际应用中,仍不尽如人意,绝大部分的蒸馏模型只能活跃在文本数据上,CV方向受限制于分类、检测的基础任务,效果也往往略显逊色。但这个方向非常具有实际意义,小模型迸发出的大可能,落地到端侧后可以实现既小体量、又好效果,期待知识蒸馏能有更大的突破,让人工智能跳出资