Pretrained-Language-Model icon indicating copy to clipboard operation
Pretrained-Language-Model copied to clipboard

想问下tinybert在做task specific distilaltion时为什么要分为两步?

Open yimeng0701 opened this issue 4 years ago • 2 comments

为什么把intermediate layer distillation和prediction layer distillation分开呢?请问下这样做有什么好处? 为什么不可以加在一起算一个loss呀?

yimeng0701 avatar Jan 12 '21 19:01 yimeng0701

Have same question.

liu09114 avatar Feb 22 '21 07:02 liu09114

做了个实验(分类任务),合并计算的效果明显差于分成两个阶段。

原因猜想:

total_loss = intermediate_loss+prediction_loss

模型中绝大多数参数集中在intermediate layer中,因此total_loss中intermediate_loss占绝大部分,优化重点会偏向intermediate layer。但对于下游任务而言,比如分类任务,prediction layer的参数可能更加重要,但却没有被很好的优化到,不能够很好的学习到teacher model中prediction layer的参数分布。分阶段之后,第二阶段只对prediction layer蒸馏,可以保证student model能够较好学习到teacher model中prediction layer的参数分布。

llgithubll avatar Mar 03 '21 05:03 llgithubll