11 月 5 日,在 Wave Summit+2019 深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响。
很多未到场的开发者觉得遗憾,希望可以了解飞桨发布会背后的更多技术细节,因此我们特别策划了一个系列稿件,分别从核心框架、基础模型库、端到端开发套件、工具组件和服务平台五个层面分别详细解读飞桨的核心技术与最新进展,敬请关注。
今天给大家带来的是系列文章之飞桨的端到端开发套件解读。
飞桨全新发布包含语义理解(ERNIE),目标检测(PaddleDetection),图像分割(PaddleSeg)和点击率预估(ElasticCTR)四大端到端开发套件,旨在通过模块化的设计和端到端的体验,满足企业低成本开发和快速集成需求。核心内容3503字,预计阅读时间4分钟。
1. 端到端开发套件的初心
飞桨发布端到端开发套件的初心,是为了更好满足开发者的低开发成本、快速集成需求而来的。开发者的时间、人力非常宝贵,效率提升非常重要。为了要解放开发者劳动力,降低开发的成本,同时能够快速的集成和部署,飞桨推出了端到端开发套件。
端到端开发套件具有以下三个通用特点:一是满足真正的工业场景中性能要求,保持性能领先;二是开发简单易用,高效解决问题;三是打通端到端流程,落地高效易部署。
对于端到端体验的流程中,数据处理也是非常重要的环节,飞桨通过扎实打通端到端流程,模块和的设计,提供一系列的工具箱辅助开发者去解决。目前发布的四大端到端开发套件,非常具有典型性,可以覆盖主流一大部分任务。
2. 四大开发套件详细解读
2.1. ERNIE 语义理解
ERNIE 全景图,预置了包含 ERNIE 通用模型、ERNIE 任务模型、ERNIE 领域模型以及本次发布的 ERNIE Tiny 轻量级模型等系列预训练模型。在此基础上,构建了包含工具和平台的飞桨语义理解开发套件。全面覆盖了训练、调优、部署等开发流程,具备轻量方案、能力全面、极速预测、部署灵活、平台赋能等五大特色。
今年7月份,百度发布持续学习语义理解框架 ERNIE 2.0,在共计 16 个中英文任务上超越 BERT、XLNET,取得了 SOTA 的效果。同时ERNIE 2.0 发布以来,ERNIE 产业化应用进程不断加速,易用性不断提升,配套产品也不断丰富和完善。目前ERNIE 2.0 在百度内部及行业内已取得了广泛应用,在多种场景下都取得了明显效果提升。这些场景的成功运用为ERNIE产业化应用积累了丰富的经验。
特色1:轻量级解决方案,预测速度提升 1000 倍
ERNIE 2.0 拥有强大的语义理解能力,而这些能力需要强大的算力才能充分发挥,这为实际应用带来了非常大的挑战。为此,百度发布轻量级预训练模型 ERNIE Tiny 以及一键式数据蒸馏工具 ERNIE Slim,预测速度提升达到 1000 倍。
特色 2:一键式高性能全类微调工具
ERNIE Fine-tune 微调工具旨在为给开发者提供一套简单好用的 Fine-tune 框架,目前覆盖 NLP 四大常用任务:单句分类、句对匹配、命名实体识别、阅读理解。工具集支持多机多卡Fine-tune,同时使用 FP16 Tensor Core 技术在 Tesla V 系列 GPU 上获得60% 的训练速度提升。
特色 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 是基于 Python 构建的多 GPU 预测服务,Client 端发送的请求会自动分发至 GPU 上执行 ERNIE Fast-inference API 来获取 ERNIE 向量及打分。目前 ERNIE Service 支持不同平台、不同设备、不同语言的灵活调用,具备预测性能高等特点,相比竞品 BERT-as-service 在 QPS 上提升 13%。
特色 5:平台赋能
此外,套件还包含了 ERNIE 的平台化使用方案,开发者可通过 EasyDL 专业版一站式完成 NLP 任务的数据标注、处理、ERNIE 微调、优化、部署等全流程的功能,为开发者提供丰富的算法、算力服务,进一步降低ERNIE 的产业化应用门槛。平台预置了常用的 NLP 文本分类、文本匹配等经典网络,能够快速满足多层次开发者的需求。
综合来看,ERNIE的语义理解开发套件依托百度在预训练模型等自然语言处理技术和飞桨平台领先优势,为人工智能产业化大生产贡献力量,赋能各行各业。
2.2. PaddleDetection 图像分割
在计算机视觉领域,图像分割有非常广泛应用的场景。基于这样背景,飞桨开发了图像分割开发套件PaddleSeg,目标是降低开发门槛,更容易实现产业落地。图像分割开发套件基于飞桨的核心框架,主要做了以下方向的建设:一是数据增强,将工业级常用分割算法开放出来;二是在模型层使用模块化的设计,将整个分割的模型拆分成三块,包括骨干网络、分割网络和模型损失函数。拆解之后,可以让这些模块自由组合,能够解决特定场景的问题。三是在训练场景上,PaddleSeg里面做了大量性能方面的优化,在显存优化和预测速度上都做了大量的工作。四是易用性方面,通过实际的项目打磨验证,找到使用过程当中的痛点并且解决掉。训练模型工业级部署,开发套件也做了集成,可以帮助广泛开发者使用。
特色1:丰富的数据增强
PaddleSeg提供10余种数据增强的策略,有效的训练数据,大幅度提升模型的鲁棒性,开发者可以根据实际的场景进行灵活组合,根据实际场景进行选用,让整个分割模型应用泛化能力更强。
特色2:模块化的设计
整个PaddleSeg开发套件都是模块化设计的,无论是数据增强模块里面的多种增强算法,主干网络的多种Backbone模块选择,都可以让开发者更好的根据实际业务场景需求使用。分割网络包含了目前的4种主流网络:医疗领域常见的U-Net,经典的DeepLabV3,面向实时场景的分割模型ICNet等。同时对于损失函数的模块化设计,也可以更好的提升各个分类场景下的分割精度,例如小目标分割的效果。
特色3:高性能
PaddleSeg在性能优化方面开展了很多工作。包括训练速度提升、GPU利用率提升以及显存性能优化。同时支持较新的FP16混合精度的训练。特别的,对于动态的Loss Scaling,在不损失精度的情况下,性能可以有30%的提升。PaddleSeg在英伟达特斯拉V100卡上,单卡训练速度是对标产品的2.3倍,多卡上是对标产品的3.1倍。
特色4:工业级部署
根据产业的需求,PaddleSeg开发了高性能的C++预测库。在多线程计算优化、算子硬件加速方面,而且依托于真实的项目实践验证做了大量优化工作,真正满足工业级部署需求。
PaddleSeg目前已经在广泛场景中应用,无论是工业质检中的精密零件的智能分拣,以及经典的人像分割场景的应用,还有遥感领域的地块分割,都可以很好的辅助完成行业的AI赋能。
2.3. PaddleDetection 目标检测
PaddleDetection是基于飞桨核心框架,结合百度科研和业务的需求,构建的目标检测开发套件。从全景图可以看到,套件中主要不仅包含各个检测算法实现,而且提供一系列的优化组件,以及更好的辅助调试的可视化的模块。同时,还提供了加速训练相关的混合精度的训练模块以及丰富的算法组件。
特点1:模型丰富
在算法层面,PaddleDetection支持了目前常用的主流检测算法,单阶段检测算法包括:SSD,RetinaNet,YOLOv3,两阶段检测算法包括:Faster-RCNN,Mask-RCNN,Cascade-RCNN,支持两阶段的FPN。在主干网、数据增强、在预训练模型方面,都提供了很好的支持。
本次发布还进一步增强了YOLOv3,基于COCO的mAP再进一步提升至41.4%,GPU上的推理速度进一步提升。本次还发布了BlazeFace等系列人脸检测模型,同时还发布了自研的搜索版本BlazeFace,模型大小压缩三倍的情况下,大幅提升预测速度。特别强调一下,预训练模型中的行人检测和车辆检测的模型,是基于百度内部的业务数据得到效果不错的模型,值得推荐。
特点2:高性能
PaddleDetection在训练速度、训练显存和推理速度上,大部分模型都优于对标产品的性能。
特点3:工业级部署
PaddleDetection基于飞桨高性能的引擎,提供了一套完备的部署方案。对于Linux和Windows都提供了良好的支持,GPU预测底层支持TensorRT加速以及FP16预测。CPU底层支持使用MKLDNN加速。再加上PaddleSlim提供的模型压缩策略,可以提供更小的模型和更快的速度,满足工业级部署的需求。
PaddleDetection目前已经广泛的在智慧交通、安防监控和商品检索上实现落地引用,并且取得了良好的应用效果。
2.4. ElasticCTR 点击率预估
ElasticCTR个性化预估,是工业推荐场景下的常见需求,与工业实践的关联度非常高。以飞桨核心框架为核心,ElasticCTR实现了大量的技术突破:通过与资源调度平台深度集成提高资源调度的效率;在分布式训练的环节,提供全异步的参数服务器方案、流式训练和高性能的IO接口;最终,通过高性能的KV预估和一键部署工具实现工业级部署。
ElasticCTR源自真实产业实践,与原生K8S无缝结合,通过针对深度学习任务进行弹性调度的处理,可以大幅节约资源消耗。性能方面,全异步分布式CPU训练速度是对标产品的6倍,工业级部署性能是对标产品的13倍,非常适合大规模CTR的应用场景。