昨天,在“WAVE Summit+”2019深度学习开发者秋季峰会上,百度对外发布基于ERNIE的语义理解开发套件,旨在为企业级开发者提供更领先、高效、易用的ERNIE应用服务,全面释放ERNIE的工业化价值,其中包含ERNIE 轻量级解决方案,提速1000倍!
今年7月份,百度发布持续学习语义理解框架ERNIE 2.0,在共计16个中英文任务上超越BERT、XLNET,取得了SOTA的效果。
ERNIE 2.0发布以来,ERNIE产业化应用进程不断加速,易用性不断提升,配套产品也不断丰富和完善。目前,ERNIE 2.0在百度内部及行业内已取得了广泛应用,在多种场景下都取得了明显效果提升。这些场景的成功运用为ERNIE产业化应用积累了丰富的经验。
上图为ERNIE全景图,预置了包含ERNIE通用模型、ERNIE任务模型、ERNIE领域模型以及本次发布的ERNIE Tiny轻量级模型等系列预训练模型。在此基础上,构建了包含工具和平台的飞桨语义理解开发套件。全面覆盖了训练、调优、部署等开发流程,具备轻量方案、能力全面、极速预测、部署灵活、平台赋能等五大特色。接下来,我们逐一揭秘。
特色1:轻量级解决方案,预测速度提升1000倍
ERNIE 2.0拥有强大的语义理解能力,而这些能力需要强大的算力才能充分发挥,这为实际应用带来了非常大的挑战。为此,百度发布轻量级预训练模型ERNIE Tiny以及一键式数据蒸馏工具ERNIE Slim,预测速度提升达到1000倍。
ERNIE Tiny技术原理
ERNIE Tiny主要通过模型结构压缩和模型蒸馏的方法,将ERNIE 2.0 Base模型进行压缩,其特点和优势主要包括以下四个方面:
1.浅:模型采用3层transformer结构,线性提速4倍;
2.宽:模型加宽隐层参数,从ERNIE 2.0的768扩展到1024,宽度的增加带来效果的提升 。依托飞桨的通用矩阵运算优化,『变宽』并不会带来速度线性的下降;
3.短:为缩短输入文本的序列长度,降低计算复杂度,模型首次采用中文subword粒度输入,长度平均缩短40%;
4.萃:ERNIE Tiny在训练中扮演学生角色,利用模型蒸馏的方式在Transformer层和Prediction层学习教师模型ERNIE 2.0模型对应层的分布和输出。
通过以上四个方面的压缩,ERNIE Tiny模型的效果相对于ERNIE 2.0 Base平均只下降了2.37%,但相对于“SOTA Before BERT”提升了8.35%,而速度提升了4.3倍。
ERNIE Tiny的预测速度在一些性能要求苛刻的场景中是不够的,这些场景中延迟响应往往要求小于1ms,为此,套件提供了一键式数据蒸馏ERNIE Slim工具。该工具以数据为桥梁,将ERNIE的知识迁移至小模型,在效果损失很小的情况下实现预测速度上千倍的提升。
ERNIE Slim技术原理
ERNIE Slim原理同传统深度学习数据蒸馏的方法略有不同。首先需要使用ERNIE 2.0模型对输入标注数据进行Fine-tune得到Teacher Model,然后使用Teacher Model对无标注数据进行预测,该步骤中我们可采用添加噪声词、同词性词语替换、N-sampling三种策略进行数据增强,最后通过BoW、CNN等计算复杂度小的模型进行训练。
下表展示了ERNIE Slim的效果。从表格中可以看出,相对于ERNIE 2.0 base模型,数据蒸馏后的小模型效果损失不大,预测速度提升千倍以上; 而相对于简单模型,速度接近的情况下,效果会得到显著提升。
ERNIE Slim效果
特色2:一键式高性能全类微调工具
ERNIE Fine-tune微调工具旨在为给开发者提供一套简单好用的Fine-tune框架,目前覆盖NLP四大常用任务:单句分类、句对匹配、命名实体识别、阅读理解。工具集支持多机多卡Fine-tune,同时使用FP16 Tensor Core技术在Tesla V系列GPU上获得60%的训练速度提升。
Fine-tune微调工具包含了一个基于飞桨的训练组织框架Propeller,可以帮助开发者进行模型管理、参数热启动、自动多卡并行等工作,从而让开发者更专注于网络结构以及输入数据流水线的构建。
特色3:极速预测API
ERNIE Fast-inference API旨在解决产品应用的延迟敏感场景,为企业开发者提供极速预测的C++ API,便于开发者集成。该工具也充分借助了最新版飞桨的高速预测优势,飞桨1.6通过OP聚合算法,有效加速了ERNIE的预测。
在延迟敏感场景下,对比竞品在GPU(P4)设备21%的延迟降低,ERNIE Fast-inference API在CPU(Intel Xeon Gold 6148 CPU)设备上的延迟降低60%。
特色4:向量服务器,支持跨平台灵活部署
为进一步降低开发者使用成本,套件提供预测服务方案——ERNIE Service,来方便获取ERNIE模型的向量分布以及预测打分。
ERNIE Service架构
ERNIE Service是基于Python构建的多GPU预测服务,Client端发送的请求会自动分发至GPU上执行ERNIE Fast-inference API来获取ERNIE向量 及打分。目前ERNIE Service支持不同平台、不同设备、不同语言的灵活调用,具备预测性能高等特点,相比竞品BERT-as-service在QPS上提升13%。
特色5:平台赋能
此外,套件还包含了ERNIE的平台化使用方案,开发者可通过EasyDL专业版一站式完成NLP任务的数据标注、处理、ERNIE微调、优化、部署等全流程的功能,为开发者提供丰富的算法、算力服务,进一步降低 ERNIE 的产业化应用门槛。平台预置了常用的NLP文本分类、文本匹配等经典网络,能够快速满足多层次开发者的需求。
综合来看,ERNIE的语义理解开发套件依托百度在预训练模型等自然语言处理技术和飞桨平台领先优势,为人工智能产业化大生产贡献力量,赋能各行各业。
|