百度飛槳再放大招!端側推理引擎全新升級,重磅發布 Paddle Lite ,旨在推動人工智能應用在端側更好落地。該推理引擎在多硬件、多平臺以及硬件混合調度的支持上更加完備,是飛槳在 Paddle Mobile 的基礎上進行的一次大規模升級迭代。



百度深度學習平臺飛槳( PaddlePaddle )再放大招!端側推理引擎全新升級,重磅發布 Paddle Lite ,旨在推動人工智能應用在端側更好落地。該推理引擎在多硬件、多平臺以及硬件混合調度的支持上更加完備,是飛槳在 Paddle Mobile 的基礎上進行的一次大規模升級迭代。通過對底層架構設計的改進,擴展性和兼容性等方面實現顯著提升。


目前, Paddle Lite 已經支持了 ARM CPU , Mali GPU , Adreno GPU ,華為 NPU 以及 FPGA 等諸多硬件平臺,是目前首個支持華為NPU 在線編譯的深度學習推理框架。


隨著技術進步,手機等移動設備和邊緣設備已成為非常重要的本地深度學習載體。然而日趨異構化的硬件平臺和復雜的終端側的使用狀況,讓端側推理引擎的架構能力頗受挑戰。端側模型的推理往往還面臨著嚴苛的算力和內存的限制。


為了能夠更完善地支持眾多的硬件架構,并且實現在這些硬件之上深度學習模型性能的極致優化,百度飛槳基于 Paddle Mobile 預測庫,融合 Anakin 等多個相關項目的技術優勢,全新發布端側推理引擎 Paddle Lite 。通過全新架構高擴展性和高靈活度地建模底層計算模式,加強了多種硬件支持、混合調度執行和底層實現的深度優化,更好滿足人工智能應用落地不同場景。


此次升級發布, Paddle Lite 對應著架構的重大升級,在多硬件、多平臺以及硬件混合調度的支持上更加完備。不僅涵蓋 ARM CPU 、 Mali GPU 、 Adreno GPU 、華為 NPU 等移動端芯片,也支持 FPGA 等邊緣設備常用硬件,并具備可兼容支持云端主流芯片的能力。


Paddle Lite 還是首個華為 NPU 在線編譯的深度學習推理框架。更早之前,百度和華為宣布在 AI 開發者大會上強強聯手。



Paddle Lite 支持范圍更廣的 AI 硬件終端,增強了部署的普適性,并且具備明顯的性能優勢。

 


 Paddle Lite 五大特性 

Paddle Lite 一共有五大特性:高擴展性、訓練推理無縫銜接、通用性、高性能和輕量化。


1. 高擴展性

新架構對硬件抽象描述能力更強,可容易地在一套框架下對新硬件進行集成,具有非常好的擴展性。例如,對于 FPGA 的擴展支持變得非常簡單。


此外,參考了 LLVM 的 Type System 和 MIR ( Machine IR ),可以模塊化地對硬件和模型進行更細致的分析和優化,可以更便捷高效地擴展優化策略,提供無限可能。目前,已經支持21種 Pass 優化策略,涵蓋硬件計算模式混合調度、INT8 量化、算子融合、冗余計算裁剪等不同種類的優化。

 

2. 訓練推理無縫銜接

不同于其他一些獨立的推理引擎, Paddle Lite 依托飛槳訓練框架及其對應的豐富完整的算子庫,底層算子的計算邏輯與訓練嚴格一致,模型完全兼容無風險,并可快速支持更多模型。

和飛槳的 PaddleSlim 模型壓縮工具打通,直接支持 INT8 量化訓練的模型,并可獲得比離線量化更佳的精度。

 

3. 通用性

官方發布18個模型的 benchmark ,涵蓋圖像分類、檢測、分割及圖像文字識別等領域,對應80個算子 Op +85個 Kernel,相關算子可以通用支持其他模型。




兼容支持其他框架訓練的模型,對于 Caffe 和 TensorFlow 訓練的模型,可以通過配套的 X2Paddle 工具轉換之后進行推理預測。


支持多硬件,目前已支持的包括 ARM CPU , Mali GPU 、 Adreno GPU 、華為 NPU 、 FPGA 等,正在優化支持的有寒武紀、比特大陸等 AI 芯片,未來還會支持其他更多的硬件。


此外,還提供 Web 前端開發接口,支持 JavaScript 調用 GPU ,可在網頁端快捷運行深度學習模型。

 

4. 高性能

在 ARM CPU 上,性能表現優異。針對不同微架構,進行了 kernel 的深度優化,在主流移動端模型上,展現出了速度優勢:




此外,支持 INT8 量化計算,通過框架層的優化設計和底層高效的量化計算實現,結合 PaddleSlim 模型壓縮工具 中 INT8 量化訓練功能,可以提供高精度高性能的預測能力:



在華為 NPU , FPGA 上也有很好的性能表現:


 


5. 輕量化

針對端側設備特點進行深度定制及優化,無任何第三方依賴。整個推理過程分為模型加載解析、計算圖的優化分析及設備上的高效運行。移動端可以直接部署經過優化分析的圖,執行預測。


Android 平臺上 , ARMV7 動態庫只需要800k, ARMV8 動態庫僅有1.3M,也可以根據需要,進行更深度的剪裁。


目前, Paddle Lite 及其前身的相關技術,已經在百度 App 、百度地圖、百度網盤和自動駕駛等產品大規模使用。


比如百度 App 新近推出實時動態多目標識別功能,把原來云端200多層的視覺算法模型優化到10幾層,實現100ms 以內識別物體,8ms 內做出物體位置追蹤更新。




相比之下,人類肉眼識別物體,一般需要170ms 到400ms ,追蹤物體刷新需要40ms 左右,這意味著其識別速度已經超過了人眼。


而實現這一切,正是得益于 Paddle Lite 強大的端側推理能力,能夠完美承擔飛槳在多硬件平臺上的高效部署,并實現了模型應用的極致性能優化。

 


 全新架構詳解 

Paddle Lite 的架構有一系列自主研發技術,整合了百度內部多個預測庫架構優勢能力,并重點增加了多種計算模式(硬件、量化方法、 Data Layout )混合調度的完備性設計,新架構設計如下:



其中最上面一層是模型層,直接接受 Paddle 訓練的模型,通過模型優化工具轉化為 NaiveBuffer 特殊格式,以便更好地適應移動端的部署場景。


第二層是程序層,是 operator 序列構成的執行程序。


第三層是一個完整的分析模塊,包括了 MIR ( Machine IR ) 相關模塊,能夠對原有的模型的計算圖針對具體的硬件列表進行算子融合、計算裁剪在內的多種優化。


不同于飛槳訓練過程中的 IR ( Internal Representation ),硬件和執行信息也在這一層加入到分析中。


最底層是執行層,也就是一個 Kernel 序列構成的 Runtime Program 。執行層的框架調度框架極低,只涉及到 Kernel 的執行,且可以單獨部署,以支持極致的輕量級部署。


整體上來看,不僅著重考慮了對多硬件和平臺的支持,而且也強化了多個硬件在一個模型中混合執行的能力、多個層面的性能優化處理,以及對端側應用的輕量化設計。

 

 助力中國 AI 生態發展 

飛槳( PaddlePaddle )的進化,不僅僅只是一個簡單的產品升級。


飛槳框架本著更加開放的態度建立眾多硬件廠商深度合作,必將極大的加速 AI 技術工業化生產落地的進程,飛槳及時抓住市場機遇且初見成效。


據百度剛發布的 Q2 財報顯示,飛槳的開發者下載量在2019年第二季度環比增加了45%。


作為目前最流行的國產機器學習框架,飛槳推出 Paddle Lite ,投入大量精力解決國內 AI 硬件應用范圍小、開發困難的局面。


端側推理引擎在人工智能應用落地環節有著重要影響,直接關系到用戶的體驗,在自動駕駛等人工智能應用領域,端側推理引擎甚至關乎用戶的生命財產安全。百度飛槳推出 Paddle Lite 對端側推理引擎性能進行大幅優化提升,對于人能智能應用的落地起到關鍵的推動作用。未來, 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://github.com/PaddlePaddle/Paddle-Lite

此外,您還可以訪問【PaddlePaddle官網】,或掃碼進入PaddlePaddle的公眾號、加入官方qq群(696965088),第一時間獲取最新的資訊信息。