一整个大厉害——算法秘籍ARMD

2022-03-04

前言

警情文本深度学习智能化项目验收前夕,驻守公安部门现场和远程算法的同事们正在一遍遍地联合调整业务输出、优化响应逻辑,然而深度学习业务模型大,部署慢,线上响应速度也不甚理想,让在公安系统现场负责的A同事有些焦虑……

数据辣么多,应该怎么办?

警情数据是典型的短文本数据,涵盖多项警情要素,自然语言处理(NLP)作为一种人工智能方法,能够处理机器和人类自然语言之间的交互,帮助警方完成警情的自动分类,自动整理最受关注的各类黑恶势力、电信诈骗、偷窃等警情。然而就像天下没有免费的午餐一样,NLP技术在带来好处的同时也存在一些问题,这其中最为凸显的恐怕是效率问题了。目前的分析模型一般比较消耗计算资源,且一般都是在大量的GPU集群上进行运算,然而警方一般仅有CPU环境,计算很长的时间才能得到结果。针对海量的历史数据,更是一筹莫展。且单个模型很大(一般300M左右),我方部署也有一定困难。因此如何提升部署效率,方便警方使用NLP模型,提升推理速度,并且保证服务的准确率成为一个难题。

哈喽!我叫ARMD

ARMD是神州泰岳旗下鼎富智能科技有限公司推出的一套模型压缩、加速框架,其中包含的NLP预训练语言模型自动化蒸馏算法已发表于自然语言处理领域顶级会议EMNLP 2020。蒸馏,就是知识蒸馏,将教师网络(teacher network)的知识迁移到学生网络(student network)上,使得学生网络的性能表现如教师网络一般。该系统针对目前深度学习模型部署困难的问题,利用知识蒸馏、量化、对抗学习等深度学习方法,发挥各个先进技术的合力,在限定大小和推理速度下压缩模型。采用本系统,大部分模型可以在不降低精度的情况下大幅缩减模型大小,降低部署难度,助力线上运行速度跨越式提升。

优点这么多,我骄傲了吗?!

数据智能扩充

由于小模型语义表达能力有限,我们使用数据扩充方案增加训练集样本数量,提升模型效果。

自动化蒸馏层次选择

普通的蒸馏方法仅使用模型输出概率进行蒸馏,我们模型中间输出同样进行蒸馏,且使用EMD算法自动选择层次对应,减少蒸馏过程信息损失。

智能化层次选择

根据业务场景所需的响应速度和业务难度综合调整模型层次和模型隐层单元大小。

高效可控

在保证业务精度的同时提升响应速度,模型速度平均可提升3倍左右,模型大小可缩减三分之一。