提炼BERT——将BERT转成小模型(Distilling BERT — How to achieve BERT performance using Logistic Regression)
BERT是很好的模型,但是它的参数太大,网络结构太复杂。在很多没有GPU的环境下都无法部署。本文讲的是如何利用BERT构造更好的小的逻辑回归模型来代替原始BERT模型,可以放入生产环境中,以节约资源。
本文原文发表在Medium上,这是翻译。原文可参考末尾引用。
BERT太棒了,无处不在。看起来任何NLP任务都可以从利用BERT中受益。作者表明情况确实如此,根据我的经验,它就像魔术一样。它易于使用,可处理少量数据并支持多种不同语言。似乎没有任何理由不在任何地方使用它。但实际上,有。不幸的是,在实践中,它并非如此微不足道。 BERT是一个巨大的模型,超过1亿个参数。我们不仅需要GPU来微调它,而且在推理时,CPU(甚至其中很多)还不够。这意味着如果我们真的想在任何地方使用BERT,我们需要在任何地方安装GPU。在大多数情况下这是不切实际的。 2015年,Hinton等人介绍了一种方法,将一个非常大的神经网络的知识提炼成一个更小的神经网络。方法很简单。我们使用大的神经网络来训练小的网络。主要思想是使用原始预测特征,即在最终激活函数之前的输出(通常是softmax或sigmoid)(解释一下,就是把原始网络最后一层的输出给去掉,用前面生成的输出结果)。假设通过使用原始值,模型能够比使用“硬”预测更好地学习内部表示。 Sotmax将值归一化为1,同时保持最大值,并将其他值减小到非常接近零的值。零中的信息很少,因此通过使用原始预测,我们也可以从未预测的类中学习。作者在包括MNIST和语音识别在内的几个任务中表现出了良好的效果。
不久前,本文作者将同样的方法应用于...... BERT! 它们表明,通过将信息从BERT提取到更小的BiLSTM神经网络中,我们可以在特定任务上获得相同的性能(甚至更好)。 您可以在下表中看到他们的结果。 使用BiLSTM-Soft实现了最佳性能,这意味着“软预测”,即对原始logit进行训练而不是“硬”预测。 数据集是:SST-2是Stanford Sentiment Treebank 2,QQP是Quora Question Pairs,MNLI是多种类型的自然语言推断。

