百度胡晓光:飞桨(PaddlePaddle)核心技术与应用实践

嗨,大家好。这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频——足够干货,足够新鲜!话不多说,快快看过来,希望这些优秀的青年学者、专家杰青的学术报告 ,能让您在业余时间的知识阅读更有价值。

 

 

人工智能论坛如今浩如烟海,有硬货、有干货的讲座却百里挑一。“AI未来说·青年学术论坛”系列讲座由中国科学院大学主办,百度全力支持,读芯术作为合作自媒体。承办单位为中国科学院大学学生会,协办单位为中国科学院计算所研究生会、网络中心研究生会、人工智能学院学生会、化学工程学院学生会、公共政策与管理学院学生会、微电子学院学生会。“AI未来说·青年学术论坛”第六期“机器学习”专场已于2019年6月23日下午在中科院举行。百度胡晓光为大家带来报告《飞桨(PaddlePaddle)核心技术与应用实践》。

 

胡晓光,百度深度学习技术平台部主任架构师。2006年毕业于哈尔滨工业大学,2010年加入百度参与百度机器翻译方向的研发工作,2011年研发并上线了具有大数据处理能力、快速、稳定的基于统计的在线翻译系统,依托海量的互联网数据资源和自然语言处理技术,该系统的中文相关的翻译质量处于业界领先水平。2015年带领团队上线全球首个基于深度学习的在线翻译引擎,率先实现了从统计机器翻译到神经网络机器翻译的技术升级,翻译质量取得了大幅提升。参与的项目“基于大数据的互联网机器翻译核心技术及产业化”获得2015年度国家科技进步二等奖。2018年转入百度深度学习技术平台部,参与百度自研深度学习框架飞桨(PaddlePaddle)的研发工作,带领团队开发了数十个NLP、CV等领域的前沿算法,并解决框架的稳定性、效率、易用性等问题,致力于打造最好用的深度学习平台,服务广大AI开发者,助力我国人工智能行业的蓬勃发展。

 

报告内容:深度学习框架的出现极大地推动了深度学习技术的发展,比如:传统方法需要几万行代码才能完成的翻译系统,通过使用深度学习框架,只需要两千行代码就可以完成;一个前沿算法的提出,通常只需要在基线上改动几十行代码。本次报告将介绍当前国内唯一自主研发、开源开放的深度学习框架——飞桨(PaddlePaddle)的核心技术,对比业界同类产品所具有的优势,以及在NLP、CV等领域前沿算法的应用实践情况。

 

飞桨(PaddlePaddle)核心技术与应用实践

 

 

胡晓光老师的报告主要包含四个方面,分别为飞桨总体介绍、飞桨核心框架、飞桨新特性和飞桨模型应用。胡晓光老师首先讲了人工智能技术的发展史,从1950年的图灵测试到现在的深度学习技术,主要经历了三个阶段,分别为逻辑推理、专家系统、机器学习/深度学习。提及深度学习技术企业应用流程,他讲到应该先确立业务应用目标,即先定位问题,再明确指标,然后进行数据采集和处理以及算法搭建,接着进行训练调优,最后预测部署。这一过程离不开具备官方支持算法、并行分布式计算以及基于高性能推理引擎的深度学习框架的支持。在介绍飞桨的全景图之前,先讲了飞桨的演进过程:由飞桨基础框架到飞桨实验平台,最后到飞桨深度学习全功能套件,进而包括展示了包括由服务平台、核心框架和模块及组件三个部分组成的飞桨全景图。

 

接着从飞桨支持的三大AI场景(建模、训练和服务)出发,讲到了飞桨的核心框架。该核心框架由组网模块、模型训练、模型表达与优化和PaddleServing等模块组成。其中,组网模块包含Python API;模型训练模块包含训练Runtime和CPU/GPU;模型表达与优化模块包含模型Program、统一中间表达和中间表达优化;PaddleServing模块包含服务器预测库API、预测库Runtime、移动端预测库API和移动端预测库RunTime。Python API由底层和顶层构成,底层包含组网类底层API和执行类底层API。组网类底层API的作用为通用、控制、计算和优化等,而执行类底层API的作用为训练、预测和分布式等。顶层支持CV模型、NLP模型、推荐模型和语音模型等。

 

然后又讲到了执行规划好的计算过程、用户和框架的分工以及飞桨架构图。计算过程主要包含编译时(CompileTime)和运行时(RunTime)两个过程。用户和框架的分工包含两个阶段,即构建阶段和执行阶段。飞桨的架构包含Python前端和C++后端等。并以房价预测和生成计算图为例进行了详细的讲解。

 

飞桨新特性包括业界首个视频分类模型库、语义表示模型ERNIE、分布式训练性能大幅提升、服务部署能力、模型压缩能力和强化学习PARL等。

 

飞桨支持高性能推理引擎,部署功能全面,具有多平台部署能力,可以部署在Paddle服务器、PaddleMobile和Paddle Anywhere等平台上。百度产品线验证的飞桨Serving框架,具有完备的在线服务能力、硬件设备支持完备、内置支持模型和批量预测的功能。此外还具有预测引擎优化、移动端预测引擎高速和AutoDL网络结构自动设计等特性。

 

飞桨支持百度scale的全功能并行分布式训练。经过了百度数据规模验证,每天要支持百亿级别训练日志规模,包括手百Feed流推荐排序、Feed广告排序、百度翻译机器翻译和好看APP个性化召回等。支持稠密参数和稀疏参数任务:大规模稠密参数的任务包含图像分类、机器翻译等计算密集度高的任务,参数的同步方式为同步Collective操作,GPU并行训练速度在主流任务表现优异;超大规模稀疏参数的任务包含CTR预估、语义匹配等数据吞吐量大的任务,参数同步方式为异步大规模稀疏参数服务器,CPU超大规模异步训练独具特色,支持千亿规模参数、数百节点并行训练。具有全功能分布式训练能力,具备CPU/GPU并行,同步、异步更新,多种通信方式的功能,是大规模稀疏参数服务器的Benchmark。

 

在讲飞桨模型应用时,先讲了飞桨全面的官方支持模型库,使用场景主要分为三大类,即智能推荐(PaddleRec)、智能视觉(PaddleCV)和智能文本处理(PaddleNLP),具体的使用场景有信息流、智能营销、视频分析、医学影像、智能驾驶、工业质检、舆情分析、搜索引擎、机器翻译和智能对话等。模型集合了图像分类、目标检测、人脸检测、图像语义分割、语义匹配和机器翻译等常见的模型。常见的应用案例有百度feed、好看视频、百度地图、百度OCR、百度糯米、百度搜索和百度翻译等。

 

PaddleCV支持的子领域有图像分类、目标检测、人脸检测、场景文字识别、关键点检测、语义分割、度量学习、图像生成和视频分类等,支持各个子领域的主流算法以及一些百度自研的算法,其中,部分算法还有预训练的模型。并以人脸检测算法PyramidBox和视频分类库支持算法为例进行了详细的说明。

 

PaddleNLP支持的子领域为词法分析LAC,语言模型、语义表示、语义匹配、情感倾向分析、阅读理解、机器翻译和语音识别等,支持LSTM、GRU、BERT和Transformer等常见NLP算法以及一些百度的自研算法,其中,部分算法还有预训练的模型。并以语义表示模型ERNIE和机器翻译Transformer模型为例进行了详细的讲解。

 

在具体的应用方面,胡晓光老师分享了红脂大小蠹虫情监测系统(AI 识虫)和精密零件智能分拣的案例。前者使用的技术为SSD目标检测算法,产品功能为通过目标检测模型识别红脂大小蠹虫,远程检测病虫害情况,产品价值包括小时级数据回传与检测,检测效率大幅提升,而传统方法专业人员需要深入林场,每周检测一次。后者使用的技术为ICnet语义分割模型,产品功能为通过语义分割模型识别精密零件瑕疵,实现自动分拣,应用价值为应用深度学习技术,只需要提供标注好的样本数据,可快速完成一个新零件或新缺陷的识别。同时大幅提升分拣效率和精度。误收率0.1%(5%误识情况下)。

 

此外,飞桨在其他的行业应用中也起到了很大的作用,与合作伙伴一起帮助越来越多的行业完成AI能力赋能,如农业,智能桃子分拣机节约90%的人力成本;林业,病虫害监测识别率达到90%;工业,公共场所控烟;零售,商品销量预测单店生鲜报损降低30%;人力,AI建立匹配系统5倍面邀成功率;制造,智能零件分拣人工效率增加1倍;石油,地震波藏油预测;通讯,基站网络故障预警;地产,智能楼宇管理制冷系统节电20%;汽车,充电桩故障预警准确率达90%。

 

最后,胡晓光老师介绍了如何使用飞桨,向大家推荐了飞桨的网站、文档、项目github、模型库和教程。如果有想使用飞桨的模型库来开发程序的小伙伴,可以看一下干货满满的模型库的网站(https://github.com/paddlepaddle/models)。