全文共1821字,阅读时长需要5分钟
自从BERT出现后,似乎NLP就走上了大力出奇迹的道路。模型越来越大,参数越来越多,这直接导致我们需要的资源和时间也越来越多,对上线带来了极大的阻碍。发文章搞科研似乎没有什么,但是这些大模型很难在实际工业场景落地,不只是因为成本过高,也因为推理速度不支持线上实际情况。最近好多文章都开始针对BERT进行瘦身,不管是蒸馏还是减少层数还是参数共享等,都是为了BERT系列模型能够更小更快的同时不丢失精度。
![458f285c03784efcc418f11e8daabaae.gif](https://i-blog.csdnimg.cn/blog_migrate/797f06a11477ff4f94e3a3dfb7b9be04.gif)
BackBone
整个模型的骨架就是采用BERT来实现,所有BERT系列的模型都可以套用在这里。BERT在这里的作用还是一个强大的特征提取器的作用,在多层transformer堆叠的后面紧跟着一个teacher classifier,这个在fine-tune阶段会进行训练,后面用来蒸馏每一层的student classifier。整体的模型结构见下图:
![d315ec7a2dd7cc61f6fcf2746b1bb339.png](https://i-blog.csdnimg.cn/blog_migrate/86634c22823eca7a10e7dd6c29130e4c.png)
Model Training
模型的训练一共包括三个部分,一个是主要骨架模型的预训练,这里和传统的BERT模型是一样的;然后就是整个骨架模型的fine-tuning,这里会训练teacher classifier;最后是对teacher classifier进行蒸馏的到student classifier。预训练和fine-tuning没啥好说的,和BERT是一摸一样的,这里主要介绍一下self-distillation。自蒸馏和传统的蒸馏方式最大的不同就是teacher模型和student模型是一样的在一个模型里面,传统的方式往往需要单独设计student模型。见下图:
![ea7487f62777c42b8eb804b4a645f860.png](https://i-blog.csdnimg.cn/blog_migrate/59b93856d590f4d42c41cfa5dfeccfc1.png)
![185698c0a10737e7bb715ccdcd070df7.png](https://i-blog.csdnimg.cn/blog_migrate/1966ccd1e5697692b346dd18df7f5e02.png)
作者在12个数据集上对模型效果进行了对比,除了传统的BERT,也对比了DistilBERT。结果如下:
![1658f1a8089bdd592aef671f4bc875a3.png](https://i-blog.csdnimg.cn/blog_migrate/c48301566f93f857ea12dd7b7a0cc498.png)
作者通过实验证明了自蒸馏的效果,结果如下:
![a15a2118ce0e9236f9c035ab4589825c.png](https://i-blog.csdnimg.cn/blog_migrate/ac7ddf771daad7a34abbfaa169e4de86.png)
通过上图可以发现,加入自蒸馏后,计算复杂度下降了非常多,但是Acc几乎没有下降。同时文中提到的假设:不确定性低,准确率高。作者也通过实验证明了这一假设:
![0d32fcbde490a2db895628137297f2b8.png](https://i-blog.csdnimg.cn/blog_migrate/f1dbe122a11d7e1ebe7d6cb73f31f032.png)
同时作者也给出了每层不确定性分布的实验,结果如下:
![11d1c6eb17e9211398a6f2c008e4040a.png](https://i-blog.csdnimg.cn/blog_migrate/0b454760809784de6f9c40409abfba2d.png)
通过这个实验结果结合不确定性低准确率高的假设,我们就可以发现,其实很多样本在浅层就有很低的不确定性,所以完全没有必要继续走到后面的层去进行分类。
04 总结 作者通过充分利用BERT每层的输出,发现很多简单的样本其实在浅层就已经可以很好的分类从而不需要走到最后,极大地提高了BERT的推理速度,这对于将BERT这种重量级模型应用到实际线上有很大的帮助。作者的实验只验证了此模型在分类场景上的效果,对于其它场景的应用还有待开发。文章的思路还是非常的新奇的,不是传统的减少模型参数量来提高速度的方法,而是将训练中的early stop思想用到了推理上。同时自蒸馏的想法也很有启发性,避免了传统蒸馏方式需要自己设计student model的情况。 Reference: https://arxiv.org/pdf/2004.02178.pdf https://zhuanlan.zhihu.com/p/143027221![3bf9fb0cdf2abdef3220e5368ae08d0a.gif](https://i-blog.csdnimg.cn/blog_migrate/e9945d2aef5849cf32ea0bfc5ca09794.gif)
![9978661c82986611fca35f2443aa6d54.png](https://i-blog.csdnimg.cn/blog_migrate/6fbd297443ce1ec5e87d84217a470a00.png)
喜欢本篇内容请给我们点个在看哟