首页 行业 最新信息 查看内容

国产AI框架再进化!百度Paddle Lite发布

2019-8-22 02:23| 发布者: | 查看: 43| 评论: 0

摘要:   乾明边策发自凹非寺  量子位报道公众号 QbitAI  国产 AI 框架飞桨刚刚带来新进化:Paddle Lite 正式发布!  高扩展、高性能、轻量化,还是首个支持华为 NPU 在线编译的深度学习端侧推理框架,剑指加大力度 ...

  乾明 边策 发自 凹非寺 
  量子位 报道 公众号 QbitAI

  国产 AI 框架飞桨刚刚带来新进化:Paddle Lite 正式发布!

  高扩展、高性能、轻量化,还是首个支持华为 NPU 在线编译的深度学习端侧推理框架,剑指加大力度攻占移动端侧场景。

  而且大环境如此,这样的自主研发基础框架进展,也有了更多的寄寓。诚意和实力方面也值得称道。针对更广泛、更异构的 AI 硬件支持,是 Paddle Lite 的核心亮点之一。

  此次升级发布,Paddle Lite 的架构有了重大升级,在多硬件、多平台以及硬件混合调度的支持上更加完备。不仅涵盖 ARM CPU、Mali GPU、Adreno GPU、华为 NPU 等移动端芯片,也支持 FPGA 等边缘设备常用硬件,并具备可兼容支持云端主流芯片的能力。

  其中,Paddle Lite 还成为了首个华为 NPU 在线编译的深度学习推理框架。更早之前,百度和华为宣布在 AI 开发者大会上强强联手。

  值得一提的是,对标 Google 推出的 TensorFlow Lite,升级发布的 Paddle Lite 更是直接围绕前者不足进行了补强。

  官方表示,不仅支持范围更广的 AI 硬件终端,增强了部署的普适性,并且具备明显的性能优势。AI 框架的竞争,愈加激烈,也进入全新阶段。

  何为 Paddle Lite?

  Paddle Lite,是 Paddle Mobile 的进化版,是一款主打端侧高性能轻量化部署的推理引擎。

  核心用途是将训练出的模型在不同硬件平台场景下快速部署,根据输入数据,执行预测推理得到计算结果,支持实际的业务应用。在 AI 技术落地中,推理阶段与实际应用相关联,直接关系到用户的体验,是非常具有挑战性的一环。

  而更具挑战性的是,当前承载推理的硬件,正日趋异构化。云端、移动端和边缘端对应着各种不同的硬件,底层的芯片架构差异很大。

  如何能够完整地支持如此众多的硬件架构,并且实现这些硬件之上人工智能应用性能的优化,实现更快的速度?Paddle Lite 给出的解决方案是:

通过全新架构高扩展性和高灵活度地建模底层计算模式,加强了多种硬件、量化方法、Data Layout 混合调度执行的能力,从而保障了宏观硬件的支持能力,并通过极致的底层优化,实现了领先的模型应用性能效果。

  Paddle Lite 五大特性

  官方介绍,Paddle Lite 一共有五大特性:高扩展性、训练推理无缝衔接,通用性、高性能和轻量化。

  1、高扩展性。

  新架构对硬件抽象描述能力更强,可容易地在一套框架下对新硬件进行集成,具有非常好的扩展性。例如,对于 FPGA 的扩展支持变得非常简单。

  此外,参考了 LLVM 的 Type System 和 MIR (Machine IR),可以模块化地对硬件和模型进行更细致的分析和优化,可以更便捷高效地扩展优化策略,提供无限可能。

  目前,Paddle Lite 已经支持 21 种 Pass 优化策略,涵盖硬件计算模式混合调度、INT8 量化、算子融合、冗余计算裁剪等不同种类的优化。

  2、训练推理无缝衔接。

  不同于其他一些独立的推理引擎,Paddle Lite 依托飞桨训练框架及其对应的丰富完整的算子库,底层算子的计算逻辑与训练严格一致,模型完全兼容无风险,并可快速支持更多模型。

  和飞桨的 PaddleSlim 模型压缩工具打通,直接支持 INT8 量化训练的模型,并可获得比离线量化更佳的精度。

  3、通用性。

  官方发布 18 个模型的 benchmark,涵盖图像分类、检测、分割及图像文字识别等领域,对应 80 个算子 Op+85 个 Kernel,相关算子可以通用支持其他模型。

  而且, 还兼容支持其他框架训练的模型,对于 Caffe 和 TensorFlow 训练的模型,可以通过配套的 X2Paddle 工具转换之后进行推理预测。

  现在,Paddle Lite 已经与飞桨的 PaddleSlim 模型压缩工具打通,直接支持 INT8 量化训练的模型,并可获得比离线量化更佳的精度。

  支持多硬件,目前已支持的包括 ARM CPU, Mali GPU、Adreno GPU、华为 NPU、FPGA 等,正在优化支持的有寒武纪、比特大陆等 AI 芯片,未来还会支持其他更多的硬件。

  此外,还提供 Web 前端开发接口,支持 javascript 调用 GPU,可在网页端快捷运行深度学习模型。

  4、高性能。

  在 ARM CPU 上,性能表现优异。针对不同微架构,进行了 kernel 的深度优化,在主流移动端模型上,展现出了速度优势。

  此外,Paddle Lite 也支持 INT8 量化计算,通过框架层的优化设计和底层高效的量化计算实现,结合 PaddleSlim 模型压缩工具中 INT8 量化训练功能,可以提供高精度高性能的预测能力。

  在华为 NPU, FPGA 上也有很好的性能表现。

  5、轻量化。

  针对端侧设备特点进行深度定制及优化,无任何第三方依赖。整个推理过程分为模型加载解析、计算图的优化分析及设备上的高效运行。移动端可以直接部署经过优化分析的图,执行预测。

  Android 平台上 ,ARMV7 动态库只需要 800k,ARMV8 动态库仅有 1.3M,也可以根据需要,进行更深度的剪裁。

  目前,Paddle Lite 及其前身的相关技术,已经在百度 App、百度地图、百度网盘和自动驾驶等产品大规模使用。比如百度 App 新近推出实时动态多目标识别功能,在 Paddle Lite 的支持下,把原来云端 200 多层的视觉算法模型优化到 10 几层,实现 100ms 以内识别物体,8ms 内做出物体位置追踪更新。

  相比之下,人类肉眼识别物体,一般需要 170ms 到 400ms,追踪物体刷新需要 40ms 左右,这意味着其识别速度已经超过了人眼。

  而实现这一切,正是得益于 Paddle Lite 强大的端侧推理能力,能够完美承担飞桨在多硬件平台上的高效部署,并实现了模型应用的极致性能优化。

  全新架构详解

  背靠百度,Paddle Lite 的架构有一系列自主研发技术。

  据介绍,Paddle Lite 参考了百度内部多个预测库架构实现,以及优势能力整合,并重点增加了多种计算模式(硬件、量化方法、Data Layout)混合调度的完备性设计,新架构设计如下:

  其中最上面一层是模型层,直接接受 Paddle 训练的模型,通过模型优化工具转化为 NaiveBuffer 特殊格式,以便更好地适应移动端的部署场景。

  第二层是程序层,是 operator 序列构成的执行程序。

  第三层是一个完整的分析模块,包括了 MIR (Machine IR) 相关模块,能够对原有的模型的计算图针对具体的硬件列表进行算子融合、计算裁剪在内的多种优化。

  不同于飞桨训练过程中的 IR (Internal Representation),硬件和执行信息也在这一层加入到分析中。

  最底层是执行层,也就是一个 Kernel 序列构成的 Runtime Program。执行层的框架调度框架极低,只涉及到 Kernel 的执行,且可以单独部署,以支持极致的轻量级部署。

  整体上来看,不仅着重考虑了对多硬件和平台的支持,而且也强化了多个硬件在一个模型中混合执行的能力、多个层面的性能优化处理,以及对端侧应用的轻量化设计。

  国产深度学习框架崛起

  飞桨(PaddlePaddle)的进化,不仅仅只是一个简单的产品升级。放在大趋势与大环境中,意义正在变得不同。

  一方面是大趋势。

  今年是 AI 在落地化重要的一年,国内在 AI 硬件,AI 硬件研发,包括百度、阿里、华为等巨头公司都在积极布局 AI 芯片的设计和制造。

  硬件的快速发展并不能弥补软件端的缺失,国外科技巨头已经加快步伐,想要占领这一市场空白地带。

  今年的 TensorFlow 开发者大会上,谷歌已经将在边缘部署 AI 应用的 TensorFlow Lite 作为重点,显然这一框架目前并不能很好地适配国内公司开发的各种硬件。

  国外科技公司也不会去花大量的精力在诸多不同厂商、不同架构的国产芯片上。于是飞桨看到机遇,并且初见成效。据百度刚发布的 Q2 财报显示,飞桨的开发者下载量在 2019 年第二季度环比增加了 45%。

  作为目前最流行的国产机器学习框架,飞桨推出 Paddle Lite 着实花了大量精力解决国内 AI 硬件应用范围小、开发困难的局面。

  另一方面,绕不开的大形势话题。

  相比以往,AI 发展中的自主研发和无断供之忧,也开始被屡屡谈及。除了专利、硬件,底层算法框架,在安卓断供华为之后也被抬上桌面。当前,两大深度学习框架 TensorFlow、PyTorch 虽然是开源项目,但都在美国公司掌控之下,都可能要“遵守美国法律”。

  所以也不是没有“卡脖子”的风险。

  之前,该如何发展这样的底层核心技术的话题,各方专家谈了又谈,热切呼吁,但真正变成行动,依然难上加难。不仅需要时间、人才、资源等各方面的投入,也需要恰当的时机——至少没到积重难返的时候。

  于是 Paddle Lite 的升级,就显得恰逢其时。一来已有积累,二来时机不晚,可以换道超车。

  不过,说一千道一万,最终还是上手试试最直接。话不多说,我们看货、验货:

  传送门

  关于本次发布的 Paddle Lite,重点功能升级汇总如下:

  1. 架构重大升级,通过添加 Machine IR、Type system、轻量级 Operator 和 Kernel 等,增加了通用多平台和多硬件支持,多 precision 和 data layout 混合调度执行,动态优化,轻量级部署等重要特性。
  2. 完善了 Java API,与 C++ API 一一对应。
  3. 新增 NaiveBuffer 模型存储格式,移动端部署与 protobuf 解耦,使预测库尺寸更小。
  4. 通过 X2Paddle 支持 Caffe 和 TensorFlow 模型的预测,目前官方验证 6 种模型转化支持。
  5. 新增对华为海思 NPU 的深度支持,成为首个支持华为 NPU 在线编译的框架,已验证
  6. 支持 FPGA ,已验证 ResNet50 模型。
  7. 对于 Mali GPU 和 Adreno GPU,支持 OpenCL 和 ARM CPU Kernel 混合调度,已验证了在 MobileNetV1、MobileNetV2、ResNet-50 等模型上的效果。
  8. 对于 ARM 架构的 CPU,Paddle Lite 增加了对 vgg-16、EfficientNet-b0、ResNet-18 等常见模型的支持验证。
  9. 新增各类硬件 Kernel 70 种。

  官网地址:

  https://www.paddlepaddle.org.cn

  项目地址:

  https://github.com/PaddlePaddle/Paddle-Lite


鲜花

握手

雷人

路过

鸡蛋
毒镜头:老镜头、摄影器材资料库、老镜头样片、摄影
爱评测 aipingce.com  
返回顶部