上云无忧 > 文档中心 > 第八章:精通深度学习的高级内容 - 工业部署:全局概况
飞桨PaddlePaddle开源深度学习平台
第八章:精通深度学习的高级内容 - 工业部署:全局概况

文档简介:
工业部署: 飞桨不仅是一个深度学习框架,还是集深度学习核心框架、基础模型库、端到端开发套件、工具组件和服务平台于一体,为用户提供了多样化的配套服务产品,助力深度学习技术的应用落地。如 图1 所示,飞桨针对不同的模型部署场景,提供了多种部署工具。同时也提供了模型压缩工具PaddleSlim,满足对模型尺寸和速度有更高需求的部署场景。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

工业部署

飞桨不仅是一个深度学习框架,还是集深度学习核心框架、基础模型库、端到端开发套件、工具组件和服务平台于一体,为用户提供了多样化的配套服务产品,助力深度学习技术的应用落地。如 图1 所示,飞桨针对不同的模型部署场景,提供了多种部署工具。同时也提供了模型压缩工具PaddleSlim,满足对模型尺寸和速度有更高需求的部署场景。


图1:飞桨模型部署组件 概览


对于人工智能领域的研究者来说,一般算法模型的改进是其最关心的;对于企业用户和开发者而言,更希望应用现有的算法,部署到服务器或者端侧硬件上,解决一些实际应用问题。

模型部署面临和训练完全不一样的硬件环境和性能要求:

  • 更广泛的硬件环境适配:资讯推荐(高性能服务器),人脸支付(移动端),工业质检(嵌入式端)。
  • 更极致的计算性能:服务压力导致对时延(用户交互体验)和吞吐(海量用户并发)的要求。

飞桨在这两个方面都有优秀的体现,如下图所示,与其他框架相比较,Paddle Lite在模型部署的预测速度上具备明显的优势:

飞桨模型部署组件介绍

飞桨模型部署全景和使用场景如下图所示:

  • Paddle Inference:飞桨原生推理库,用于服务器端模型部署,支持Python、C/ C++等多语言。
  • Paddle Serving:飞桨服务化部署框架 ,用于云端服务化部署,可以将模型作为单独的预测服务。
  • Paddle Lite:飞桨轻量化推理引擎,用于 Mobile 及 IoT (如嵌入式设备芯片)等场景的部署。
  • Paddle.js:使用 JavaScript(Web)语言部署模型,在网页和小程序中便捷的部署模型。
  • 部署辅助工具1 - PaddleSlim:模型压缩,在保证模型精度的基础上减少模型尺寸,以得到更好的性能或便于放入存储较小的嵌入式芯片。
  • 部署辅助工具2 - X2 Paddle:将其他框架模型转换成Paddle模型,然后即可使用飞桨的一系列工具部署模型。

飞桨模型部署组件适用4个用户场景

  • 跑一批测试样本,快速预测结果:使用Paddle Inference的Python接口,跑一批测试样本,快速得到结果。
  • 在业务系统中加入模型:在业务系统中使用Paddle Inference的C++/C接口,其他编程语言的业务系统可以对接到C API扩展实现模型预测。如果业务系统是C/S或B/S模式,也可以使用Paddle Serving将模型服务化,供各种业务系统或客户端远程访问预测服务。
  • 移动端软件/嵌入式软件(APP/Web/智能设备)中加入模型:使用PaddleSlim对模型大小进一步压缩后,可以使用Paddle Lite构建APP及嵌入式端的模型,或者使用Paddle.js构建Web/小程序中使用的模型。
  • X2 Paddle: 将其他框架的模型转换成Paddle的模型,之后可以使用上述工具完成模型部署。

在模型实际部署时,不需要训练模型的部分,只需要模型的前向计算过程。同时,模型的推理和模型的训练有着不同的硬件环境和性能要求。所以,部署模型多是使用飞桨的save_inference_model保存的模型,而不是使用框架自带的paddle.save接口。Inference 模型会额外保存模型的结构信息,在推理速度上性能优越、灵活方便,适合与实际系统集成。

搭建完整系统的硬件选型建议

  • 将深度学习模型应用到产业系统中,必不可少还涉及到配套硬件的选择。与运行模型配套的硬件主要是计算芯片,不同的芯片会带来性能上的极大差异。为应用场景的模型从类型、性能、存储、价格等方面选择合适的芯片是模型成功落地的前提。

  • 传统来说深度学习硬件可以分成云端的硬件及端侧的硬件(见下图),主要区分点在于算力及功耗大小。不过近年来硬件厂商推出了所谓边缘硬件的概念,算力和功耗都介于两者之间,因此场景的边界也越来越模糊。但传统意义来讲,训练的任务多发生在云端的硬件(端侧训练仍属小众,且联邦学习可以算作训练还是发生在云端),而端侧硬件多用于推理部署。

  • 在人工智的时代,除了非常通用的GPU外,许多硬件厂商纷纷推出各种AI专用的加速芯片并且给予各种APU, BPU, IPU, NPU, XPU等命名,这边我们统称为AIPU。AIPU顾名思义是针对人工智能特定的计算如卷积、池化做了大量优化,因此在特定模型上的性能会超过一般通用的CPU、GPU等硬件。与此对应的是,这些芯片不适合通用及I/O密集的计算。以下是AIPU的特点及不建议使用AIPU的一些场景:

  • AIPU的特点:
  1. 适合密集的计算(矩阵乘法),例如MatMul和Conv2D算子,在ResNet、MobileNet等类似模型性能好。
  2. 并不是对所有模型都有加速效果(实测往往会部分模型性能特别好,部分模型性能一般),需要有针对性的优化。
  3. 端侧的AIPU会更适合低功耗的应用场景。
  4. 适合CPU、GPU负载较高的场景,例如游戏、视频播放、相机类。
  5. 多使用量化模型,低内存消耗。
  • 哪些情况下不适合AIPU:
  1. 模型太小,过于简单(CPU耗时10ms以下),根本无法发挥AIPU的计算优势。
  2. 可变Shape或变长的序列信息(例如NLP模型),可变Shape包括模型内部shape存在变化,输入、输出尺寸依赖输入内容的(例如一些检测类模型)。这是因为AIPU芯片是按照规整的矩乘法来优化的。
  3. 对模型加载到第一次预测时延要求高的场景,除非应用场景可以采用提前加载的方案。
  • CPU与AIPU分别在手机硬件(以华为Kirin系列为例),及边缘端硬件上的性能比较(以Rockchip RK1808及RV1109为例),可见对于常见的深度学习模型,AIPU的计算有非常大的性能优势(达到数量级的差距,几十倍的提速)。

  • AIPU芯片选型的关键因素: 选型AIPU芯片,可以通过如下7个方面进行思考:
  1. 主打领域:每款芯片是厂商圈定了某个目标市场的需求进行设计的,需要注意选择与应用场景匹配的芯片类型的匹配。

  2. 制程及供货:现在主流云侧和端侧AI专用芯片14nm以下,其中14nm以下制程需注意供货稳定性(供货不稳定会导致系统扩容时候的困难)。

  3. 算力:需注意标定的TOPS(TOPS是Tera Operations Per Second的缩写,1TOPS代表处理器每秒钟可进行一万亿次操作)是在怎么样精度下, int8的算力通常会是FP16的2倍, 以此类推。

  4. 主频率:同样制程的芯片有机会透过升频等方式提升等效算力。

  5. 存储:视所需使用的模型大小而定, 通常云侧芯片会在8GB以上, 端侧会在2GB以上。模型可以通过PaddleSlim进行压缩,但通常会有精度的损失。

  6. 视频编解码 & ISP:带视频编辑码模块的芯片更适合处理视频信号,安防领域的芯片多已支持8路以上1080P编解码,ISP规格通常在12MPixels以上对成像品质比较有保障。

  7. 价格:通过1-6点的考虑就可以圈定出可采购的芯片范围,在其中选择较有性价比的产品即可。

  • 飞桨有着广泛的硬件芯片的支持,来满足用户在自由选择硬件芯片上的体验。作为国产领先的深度学习平台,飞桨深刻理解到软硬整合才能发挥人工智能的最大优势,因此也积极的与国内外领先的人工智能硬件厂商合作优化,截至2021.5已经完成超过22家及31种芯片/IP的硬件打通,以下请参考飞桨最新的硬件生态适配路径图(需注意每种不同的硬件并非所有模型支持,最新的模型支持状况请参考Paddle Lite: https://paddle-lite.readthedocs.io/zh/latest/demo_guides/intel_fpga.html , 及 Paddle inference的硬件支持文档: https://paddle-inference.readthedocs.io/en/latest/user_guides/source_compile.html)

相似文档
  • 飞桨原生推理库Paddle Inference 在实际应用中,推理阶段会面临和训练时完全不一样的硬件环境,当然也对应着不一样的计算性能要求。我们训练得到的模型,需要能在具体生产环境中正确、高效地实现推理功能,完成上线部署。 上线部署可能会遇到各种问题,比如:
  • 飞桨轻量化推理引擎Paddle Lite: 飞桨具有完善的从训练到部署的一系列框架或工具,当读者完成模型的编写和训练后,如果希望将训练好的模型放到手机端或嵌入式端(如摄像头)等去运行,可以使用飞桨轻量化推理引擎Paddle Lite。
  • 飞桨场景应用开发套件-PaddleX: PaddleX是飞桨场景应用开发套件,它集成飞桨智能视觉领域图像分类、目标检测、语义分割、实例分割任务能力,将深度学习开发全流程从数据准备、模型训练与优化到多端部署端到端打通,并提供统一任务API接口及图形化开发界面Demo。开发者无需分别安装不同套件,以低代码的形式即可快速完成飞桨全流程开发。
  • 人工智能在中国的发展和落地概况: 根据艾瑞的分析报告,人工智能在未来十年迎来落地应用的黄金期,会全面赋能实体经济,行业的经济规模年增长率达40%+。在过去中国经济高速发展的四十年,人们形成了统一的认知:对于个人发展,选择大于能力。一个人选择跳上一辆高速行驶的火车,比个人奔跑快要重要。人工智能在各行业落地相关的产业就是未来十年的高速列车,所以恭喜学习本教程的诸位读者。在可预见的未来,大家会成为各行业应用人工智能技术的弄潮儿。
  • Hi 大家好, 我是百度AI Studio小助手. 大家在学习《百度架构师手把手带你零基础入门深度学习》课程的过程中将会经常使用到AI Studio中的Notebook项目,所以今天给大家介绍一些Notebook项目基本操作.
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部