BERT模型蒸馏完全指南(原理&技巧&代码)

BERT模型蒸馏完全指南(原理/技巧/代码)

小朋友,关于模型蒸馏,你是否有很多问号:

  • 蒸馏是什么?怎么蒸BERT?
  • BERT蒸馏有什么技巧?如何调参?
  • 蒸馏代码怎么写?有现成的吗?

今天rumor就结合Distilled BiLSTM/BERT-PKD/DistillBERT/TinyBERT/MobileBERT/MiniLM六大经典模型,带大家把BERT蒸馏整到明明白白!

img

注:文末附BERT面试点&相关模型汇总,还有NLP组队学习群的加群方式~

模型蒸馏原理

Hinton在NIPS2014**[1]**提出了知识蒸馏(Knowledge Distillation)的概念,旨在把一个大模型或者多个模型ensemble学到的知识迁移到另一个轻量级单模型上,方便部署。简单的说就是用小模型去学习大模型的预测结果,而不是直接学习训练集中的label。

在蒸馏的过程中,我们将原始大模型称为教师模型(teacher),新的小模型称为学生模型(student),训练集中的标签称为hard label,教师模型预测的概率输出为soft label,temperature(T)是用来调整soft label的超参数。

猜你喜欢

转载自blog.csdn.net/linjie_830914/article/details/131543848