《人工智能深度学习技术选型白皮书.docx》由会员分享,可在线阅读,更多相关《人工智能深度学习技术选型白皮书.docx(57页珍藏版)》请在第一文库网上搜索。
1、人工智能是一种引发诸多领域产生颠覆性变革的前沿技术,当前 以机器学习,特别是深度学习为核心,在视觉、语音、自然语言等应 用领域迅速发展,已经开始像水电煤一样赋能于各个行业。深度学习软件框架及相关工具集是人工智能应用落地的重要抓 手,是人工智能相关服务及产品的核心。本白皮书专注于以深度学习 为核心的软件框架及工具,以实际需求为指引,提出深度学习技术选 型考虑及指标,旨在为企业应用深度学习技术开展业务提供参考,同时为以开源框架为技术核心的服务及产品选型评测提供依据。深度学习技术选型白皮书是中国人工智能产业发展联盟开源开 放推进组的研究成果。本白皮书从深度学习训练框架、推断框架及技 术生态工具集三个
2、维度系统梳理总结了基于开源的深度学习技术体 系,结合企业自身业务开展需求,分析了技术选型因素,提出了选型 指标体系,并就软件框架目前存在的问题及技术发展趋势进行了研判。 中国人工智能产业发展联盟后续将在此研究基础上继续深入开展相 关研究及评估标准制定工作,并继续发布相关研究成果。目录1一、 深度学习软件框架发展概述3(-)深度学习框架是人工智能产业化落地的核心 3(二)深度学习框架的分类 4二、 深度学习训练框架技术选型5(一) 深度学习训练框架应用现状 51 .深度学习训练框架使用趋同 52 .产业对训练框架提出新需求 9(二) 训练框架选型考虑10(三) 产业优秀使用案例 141 .基于T
3、enSOrFIOW构建大规模应用系统 142 .基于KeraS简洁高效实现智能化运维 173 .基于PaddIePaddIe实现多种业务部署 174 .基于Caffe满足目标检测实际业务需求 18三、 深度学习推断框架技术选型 19(-) 深度学习推断框架应用现状 191 .推断框架体系呈现碎片化192 .推断框架滞后于实际需求21(二) 推断框架选型考虑22(三) 产业优秀使用案例241 .面向移动终端的HiAI计算平台 252 .面向工业的轴承故障推断应用 253 .企业研发助力推断框架性能显著提升26四、 深度学习技术生态工具集 261 .深度学习编译中间件272 .数据及模型表示格式
4、283 .深度学习可视化工具 28294 .标准模型算法资源库5 .模型压缩优化工具集29五、 趋势展望29六、 合作机构32一、深度学习软件框架发展概述(-)深度学习框架是人工智能产业化落地的核心当前,基于深度学习的人工智能算法主要依托计算机技术体系架 构实现,深度学习算法通过封装至软件框架I的方式供开发者使用。软 件框架是整个人工智能技术体系的核心,实现对人工智能算法的封装, 数据的调用以及计算资源的使用,起到承上启下的重要作用。深度学 习软件框架在人工智能技术产业化实现详见图1所示。行业应用平台及服务产品应用1软件框架(SoftWareframeWOrk),通常指的是为了实现某个业界标准
5、或完成特定基本任务的软件组件规 范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。2该图摘自中国信息通信研究院、中国人工智能产业发展联盟于2018年9月6日联合发布的人工智能 发展白皮书技术架构篇(2018年)3人工智能基础性算法理论研究已经较为成熟,各大厂商纷纷发力 建设算法模型工具库,并将其封装为软件框架供开发者使用。软件框 架是算法的工程实现。企业的软件框架实现有闭源和开源两种形式: 少数企业选择闭源方式开发软件框架,目的是打造技术壁垒;目前业 内主流软件框架基本都是开源化运营。本白皮书主要关注开源软件框 架的技术及应用特点,对闭源软件框架不做过多讨论。(二)深度学
6、习框架的分类基于深度学习技术的服务及产品主要涉及到三类软件框架,按照 应用场景分为云端训练、云端推断以及端侧推断。不同应用场景任务 不同,所需承载的计算及限制条件也存在差异,因此针对各场景计算 工具的功能及性能要求均有不同。,云端训练框架主要完成面向海量数据的模型训练任务,对算力要 求最高,实际应用中需要采用分布式计算等技术,同时对于工业级模 型及稳定性也有特殊要求;云端推断框架主要完成训练模型的优化、 云端部署及推断计算等工作,对于效率及并发性等具有特殊要求;终 端推断框架主要完成训练模型在终端的部署及计算,由于终端功耗、 功能、芯片等众多限制,终端推断框架的性能、能耗及自身优化需满 足多种
7、限制性要求。本白皮书第二章重点对云端训练软件框架技术选型进行分析阐 述,第三章重点对基于云端及终端的推断框架技术选型进行对比分析, 并分别研提了选型考虑及评价指标体系。二、 深度学习训练框架技术选型(-)深度学习训练框架应用现状1. 深度学习训练框架使用趋同由于深度学习训练框架技术及生态已经趋于成熟,从目前产业界 实际使用情况来看,以TenSOrFIOW及Caffe/Caffe2为引领的深度学习 训练框架占据了相对主导地位,PaddlePaddle, MXNet, PyTorch, Keras 等主流训练框架由于其各自特性也在业务部属中得到了充分使用。TensorFlow已在各行各业的生产场景
8、中得到了充分的应用,企业 选择TenSorFk)W训练框架主要有以下原因:一是该框架生杰成熟,功能完备。得益于其成熟的生态建设,基 于该框架已有众多实用网络结构模型开源可供使用,其模型库(Model ZoO)及开源社区涵盖了几乎所有深度学习算法模型,同时也支持包 括概率编程、强化学习在内的多种先进算法,在如目标识别、图像处 理、视频分析、自然语言处理、各类数据分析等领域得到广泛应用。 同时其基于计算图和低层次OP描述计算,提供了最大程度的灵活度, 非常适合作为“底层”框架使用,在其基础上通过高层封装来支持 不同种类的学习算法,如深度学习(Keras)、深度强化学习(DoPamine)、 深度概
9、率图模型(EdWard)等,并且都具备GPU加速能力,这一点对 于希望通过单一框架支持其各类复杂应用的企业来说具备很大的吸 引力。二是该框架容易上手,相对易用。得益于其良好的生态及丰富的 社区资源,该框架使用文档及相关教程相对完善,开发人员丰富,已成为算法工程师主流技能。企业选用该训练框架能够良好匹配开发人 员使用习惯,降低业务开发门槛,提升业务开发效率。三是该框架性能稳定,功能成熟。得益于谷歌公司为主导的技术 支持,该框架在处理大规模数据训练时表现稳定,性能优良,具备端 到端训练、推理能力。TensorFIow训练完成后的模型,可以由 TenSOrFIOWLite加载并运行于AndrOid平
10、台之上,对于手机厂商开发 端侧智能应用非常方便。同时由于采用该框架底层技术架构的推断芯 片市面占比也相对较高,因此从模型训练、模型优化到模型部署的产 品线功能相对成熟且完善,能够有效提升企业相关业务的开发及实际 部署效率。四是该框架灵活性高,改进方便。该框架提供的APl接口丰富, 灵活性高,在算法改进上较为方便,非常适合于企业算法预研及快速 实现验证等工作。同时其兼容开源接口,能够以丰富、便捷、高效的 品质帮助用户轻松使用深度学习技术,通过灵活调度按需服务化方式 提供模型训练、评估与预测。CaffeCaffe2凭借其在计算机视觉领域成熟的生态及技术深耕, 成为了企业在计算机视觉领域开展相关业务
11、的首选框架,企业主要考 虑如下:一是训练速度快,性能优异。该框架在图像处理、3D卷积计算 等领域性能突出,在计算机视觉领域训练速度相对较快,广泛应用于 包括人脸识别、目标跟踪、图像视频内容识别、视频图像分析等领域。二是支持算法多,生态成熟。该框架在计算机视觉领域拥有深厚6的技术积累,包括企业及学术界在内的基础受众多,同时版本相对稳 定,基于Caife开发的计算机视觉领域模型众多,降低了企业开展业 务的门槛,同时该框架能够有效匹配计算机视觉领域专家及工程师使 用习惯,相关文档及教程丰富,使用门槛低,能够有效提升企业业务 开展效率。三是扩展功能丰富,使用灵活。基于该框架的开源扩展功能众多, 可以支
12、持多机多GPU分布式训练,同时在模型移植方面也有较为成 熟的开源模型转换工具,企业在算法研究、算法调参、算法快速产品化等研发阶段可快速进行验证,能够有效满足实际业务的定制化需求。PaddIePaddIe作为我国自主研发并开源的深度学习训练框架,在 支撑百度公司内部业务及工业级应用场景中得到了广泛应用,企业选 择PaddlePaddle训练框架主要有以下原因:第一是工业性能优异。在面向海量数据处理的应用场景下,模型 参数及特征达到上万亿级别,其工业性能及分布式计算支持为此类业 务提供了强有力的支撑,企业在信息流广告点击率预估、粗排模型及 大规模稀疏矩阵模型计算等场景方便易用,高效快速,修改少量参
13、数 即可运行大规模embedding模型。第二是中文支持优异。该框架中文技术文档齐全,对于中文支持 较好,内置对应的初步模型,可以直接使用推断函数,提供少量的样 本就可以定制化模型。同时框架对于中文问答系统及其文本语义相关 模型支持较好,也可以同其他自然语言处理的开源工具配套使用。第三是易用性优良。依托于百度公司技术研发力量,该框架生态7技术工具较为完备,提供统一的PaddlePaddleCloud训练及推断环境, 降低开发者生产环境搭建工作,可以根据实际需求支持简洁的GPU 多机多卡训练调起等工作,极大降低开发者使用门槛,提升开发效率。其他主流框架的使用主要基于三方面的考虑,第一是企业用于研
14、 发及算法研究所使用的PyTorch . Theano,第二是企业在开展实际业 务中为实现高性能产品服务,快速产品迭代开发所使用的MXNet. KeraS等框架,第三是专门针对特定应用领域而使用的工具框架,如Kaldi SParkMLIB 等。PyTorch . Theano等框架主要应用于算法研究领域,由于其在学 术界使用历史较长,资源相对丰富,因此企业一般将其用于算法预研 与快速实现验证,同时由于其提供参数可视化及动态图等特性,为参 数调节提供极大便利,在分类算法、语义相似度计算、序列标注算、 句子生成等应用较多。MXNet以其优越性能得到广泛应用,该框架同时其兼容开源接 口,内置大量优化
15、的网络模型算法,以丰富、便捷、高效的品质帮助 用户轻松使用深度学习技术。该框架支持C+、Python. R,、SCaIa以 及Matlab等语言,同时还支持命令和符号编程;可以运行在各种通 用异构的CPU、GPU集群上。KeraS以其比TenSOrFk)W更加便易的 使用和调节,极大简化了做后期模型更新迭代尝试的效率。在具体应用场景中,Kakli作为语音训练常用训练框架在语音算 法训练算法研究、调参、快速产品化得到广泛使用,企业在基于Spark 生态下部署深度学习计算任务时,倾向采用具有强大的数据处理能力和封装多种常用算法的SParkMnib框架,以实现与现有大数据Spark 平台的无缝对接。2.产业对训练框架提出新需求随着业务开展的不断深入,产业界对于深度学习训练相关计算及 业务开展不断提出新的需求。总体来讲,在实际人工智能产品研发中, 各框架系统及其组件存在复杂性,不同的应用场景涉及到的系统及组 件不同,版本碎片化和独立性问题严重,系统与系统之间,组件与组 件之间的信息交互与共享难度较大,模型复用率低,造成建模和算法训练工作量大,时间较长。具体来看主要存在以下主要问题:一是开源框架及工具无法直接满足实际生产需求。在实际生产过 程中,算法及应用多样化,尽管开源社区及模型库已有海量算法可供 选择参考,但依然无法满足实际业务需求,不具备算法研发能力