NLP自然语言处理在高德各个业务线发挥重要作用,例如动态事件命名实时识别,搜索场景用户语义理解,共享出行通话文本自动判责等。
而NLP领域近期最重要的进展当属预训练模型,Google发布的BERT预训练语言模型一经推出就霸占了NLP各大榜单,提升了诸多 NLP 任务的性能,在11种不同NLP测试中创出最佳成绩,预训练模型成为自然语言理解主要趋势之一。
预训练模型通常包括两个阶段: 第一阶段是在大型语料库根据给定上下文预测特定文本。 第二阶段是在特定的下游任务进行finetuning。
BERT的强大毫无疑问,但由于模型有上亿参数量体型庞大,单个样本计算一次的开销动辄上百毫秒,因而给部署线上服务带来很大的困扰,如何让BERT瘦身是工业界以及学术界重点攻坚问题。
Hinton的文章"Distilling the Knowledge in a Neural Network"首次提出了知识蒸馏的概念,将teacher知识压缩到student网络,student网络与teacher网络具有相同的预测能力但拥有更快的推理速度,极大节省了计算资源。
目前前沿的技术有微软的 BERT-PKD (Patient Knowledge Distillation for BERT),huggingface 的 DistilBERT,以及华为TinyBERT。其基本思路都是减少 transformer encoding 的层数和 hidden size 大小,实现细节上各有不同,主要差异体现在 loss 的设计上。
然而知识蒸馏最核心问题是如何捕捉到模型潜在语义信息,而之前工作焦点在loss设计上,而这种方式让模型关注在单个样本的表达信息细节上,对于捕捉潜在语义信息无能为力。
高德智能技术中心研发团队在工作中设计了对比学习框架进行知识蒸馏,并在此基础上提出COS-NCE LOSS,通过优化COS-NCE LOSS拉近正样本,并拉远负样本距离,能够让模型有效的学习到潜在语义表达信息(LRC-BERT对比DistillBERT,BERT-PKD并不限制模型的结构,student网络可以灵活的选择模型结构以及特征维度)。
同时为进一步让LRC-BERT更加有效的学习,我们设计了两阶段训练过程。最后LRC-BERT在word vector embedding layer引入梯度扰动技术提升模型鲁棒性。
本文的主要贡献点概括如下:
本文在General Language Understanding Evaluation (GLUE)评测集合取得了蒸馏模型的SOTA效果。