大规模预训练的转换模型,如BERT,已经在自然语言处理(NLP)研究和应用中变得无处不在。它们为学术界的基准任务和行业应用都带来了显著的改进:在通用语言理解评估基准(GLUE)上的平均分数从74提高到90+;商业搜索引擎,如Google和Microsoft Bing,也正在应用类似BERT的模型进行搜索。尽管它们具有令人兴奋的强大性能,但这些越来越大的基于Transformer的模型以拥有数十亿个参数和在训练和推断中速度较慢而臭名昭著,使得在推断时间和资源有限时难以部署。因此,在Transformer时代,模型的效率已经成为一个更重要和紧迫的问题。
在这篇论文中,我们提出并创新了用于高效NLP模型的方法。我们选择专注于推断效率:预训练模型几乎总是公开可用的,而微调是在相对较小的数据集上进行的,没有严格的时间限制;相比之下,推断需要反复进行,通常在实时设置中执行。首先,我们提出了用于Transformer的早期退出思想。考虑到Transformer模型具有相同结构的多个层,我们尝试通过动态早期退出来减少用于推断的层数。在推断过程中,如果中间的Transformer层预测出高置信度的输出,我们直接退出该层,并将当前输出用作最终输出。我们将早期退出思想应用于序列分类任务,并展示它能够极大地提高推断效率。
接下来,我们探讨了早期退出思想的一些扩展:(1)针对低资源数据集的早期退出——在这种情况下,直接的微调方法无法将模型训练到最佳状态,我们提出了一种更好地平衡模型所有层的方法;(2)针对回归数据集的早期退出——在这种情况下,输出不再是我们可以直接估计置信度的分布,我们设计了一个学习退出模块,明确学习置信度估计;(3)针对文档重新排序的早期退出——在这种情况下,模型试图区分的两个类别高度不对称,我们设计了一种不对称的早期退出方法,以更好地处理这个任务。我们还将早期退出扩展到另一个方向——选择性预测。在这种情况下,如果我们对最终预测的置信度较低,我们会完全避免进行预测。我们提出了更好的置信度估计方法,并讨论了选择性预测的一些应用。最后,我们讨论了多种效率方法的组合,包括早期退出本身以及其他流行的方法,如蒸馏、剪枝、量化等等。我们提出了一个概念框架,将每种效率方法视为一个运算符。我们进行实验以展示这些运算符在组合时的有趣属性,这为设计和评估组合多种效率方法的应用提供了有用的指导。这篇论文提供了一系列用于高效Transformer模型的建模和实验贡献。我们不仅大大减少了许多NLP和IR应用的推断时间,还提供了从新颖角度理解效率问题的见解。