Paddle Lite端侧部署

Paddle Lite是飞桨自研的高性能端侧推理框架,支持多平台、多硬件,包括ARM CPU, Mali GPU, Adreno GPU, Huawei NPU等。它提供模型兼容性,支持量化、融合、Kernel优选等优化手段,适用于Android, iOS, ArmLinux等平台。Paddle Lite的部署流程包括模型转换、模型压缩和终端推理,可用于人脸识别、人像分割、图像分类等多种应用场景。" 39324833,2964995,SolrServer详解:索引操作与实战示例,"['Solr', '搜索技术', '索引管理', 'JavaAPI']
摘要由CSDN通过智能技术生成

Paddle Lite端侧部署
端侧推理引擎的由来
随着深度学习的快速发展、特别是小型网络模型的不断成熟,原本应用到云端的深度学习推理,就可以放到终端上来做,比如手机、手表、摄像头、传感器、音响,也就是端智能。此外,可用于深度学习计算的硬件也有井喷之势,从Intel到Nvidia、ARM、Mali,再到国产的寒武纪等等。
相比服务端智能,端智能具有低延时、省云端资源、保护数据隐私等优势。目前端智能正逐渐变为趋势,从业界来看,它已经在AI摄像、视觉特效等场景发挥了巨大价值。深度学习推理场景中,多样的平台,不同的硬件,对推理库的能力提出了更高的要求。端侧模型的推理经常面临算力和内存的限制,加上日趋异构化的硬件平台和复杂的端侧使用状况,导致端侧推理引擎的架构能力颇受挑战。
端侧推理引擎是端智能应用的核心模块,需要在有限算力、有限内存等限制下,高效地利用资源,快速完成推理。可以说,端侧推理引擎实现的优劣,直接决定了算法模型能否在端侧运行,决定了业务能否上线。因此,希望提供面向不同业务算法场景,不同训练框架,不同部署环境的简单、高效、安全的端侧推理引擎。

在这里插入图片描述

图1 支持多种硬件、操作系统和编程接口
Paddle Lite是什么
Paddle Lite是飞桨自研的新一代端侧推理推理框架,支持PaddlePaddle/TensorFlow/Caffe/ONNX模型的推理部署,目前已经支持ARM CPU, Mali GPU, Adreno GPU, Huawei NPU等多种硬件,正在逐步增加X86 CPU, Nvidia GPU 等多款硬件,相关硬件性能业内领先。截止到现在,Paddle Lite已广泛应用于搜索广告、手机百度、百度地图、全民小视频等多个公司重点业务。
Paddle Lite具备以下几个特点:
• 多平台:不同于其他的推理引擎,Paddle Lite依托飞桨训练框架及其对应的丰富完整的算子库,底层算子计算逻辑与训练严格一致,模型完全兼容无风险。支持PaddlePaddle、TensorFlow、Caffe、ONNX等多种平台的主流模型格式;支持MobileNetV1、YoloV3、UNet、SqueezeNet等主流模型;对Int8量化模型有很好的支持。同时,可以支持端侧多个平台,比如Android, iOS, ArmLinux等。
• 多硬件:目前支持 ARM CPU, Mali GPU, Adreno GPU, 华为NPU,X86 CPU, NVIDIA GPU、FPGA等多种硬件平台,是目前首个支持华为NPU在线编译的深度学习推理框架。Paddle Lite可以完整承担深度学习模型在不同硬件平台上的的推理部署需求,从而保障了硬件的支持能力。
• 高性能:通过底层计算模式的建模,增加了多种计算模式(硬件、量化方法、Data Layout)混合调度的完备性设计;对不同硬件进行针对性优化,充分挖掘硬件性能极致,在推理速度上全面超越业界。
• 轻量级:提供Model Optimize Tool对模型进行优化,其中包含诸如量化、融合、Kernel优选等优化手段,优化后的模型更轻量级,耗费资源更少,从而执行速度也更快。同时,Paddle Lite支持分析阶段与执行阶段分离,线下模型优化,线上模型部署,部署不依赖于任何第三方库。
o 量化:可以分为静态离线量化和动态离线量化。静态离线量化是指使用少量校准数据计算量化因子,快速得到量化模型。使用该量化模型进行预测,可以减少计算量、降低计算内存、减小模型大小。动态离线量化是指将模型中特定OP的权重从FP32类型量化成INT8/16类型,减少模型的大小。
o 融合:将多个连续OP融合成单个等效OP,或者将专属于某个硬件的OP融合为一个子图,只有这部分子图运行在指定的硬件上,减少数据交换并简化图结构。例如将NPU相关的op融合为一个子图,这个子图的计算都在NPU上进行,其它OP的计算在CPU或GPU上进行。
o Kernel优选:OP的具体实现需要依赖Kernel,每个OP基于不同的硬件或同一硬件不同版本可以选择不同的Kernel。Paddle Lite可以基于策略优选合适的Kernel来进行计算。
• 简单易用:支持C++、Java、Python多种编程语言的编程接口。
在这里插入图片描述

图2 多种推理终端和多种推理硬件层出不穷
Paddle Lite推理流程
使用Paddle Lite对模型进行部署推理的流程分以下阶段:

  1. 模型训练阶段:主要解决模型训练,利用标注数据训练出对应的模型文件。面向端侧进行模型设计时,需要考虑模型大小和计算量。
  2. 模型部署阶段:
    a) 获取模型:用户可以直接使用飞桨训练出的模型进行部署,也可以使用Caffe, TensorFlow或ONNX平台训练的模型,需要使用X2Paddle工具将其它框架训练的模型转换到Paddle格式。
    b) (可选)模型压缩:主要优化模型大小,借助PaddleSlim提供的剪枝、量化等手段降低模型大小,以便在端上使用。
    c) 通过Model Optimize Tool将模型转换为Paddle lite的nb模型,然后开始部署。
    d) 在终端上通过调用Paddle Lite提供的API接口(提供C++、Java、Python等API接口),完成推理相关的所有计算。
    在这里插入图片描述

图3 部署流程
Paddle Lite支持的模型
Paddle Lite目前已严格验证28个模型的精度和性能,对视觉类模型做到了较为充分的支持,覆盖分类、检测、分割等多个领域,包含了特色的OCR模型的支持,并

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值