國產(chǎn)AI框架再進(jìn)化!百度Paddle Lite發(fā)布:率先支持華為NPU在線編譯,全新架構(gòu)更多硬件支持
乾明 邊策 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào) QbitAI
國產(chǎn)AI框架飛槳?jiǎng)倓値硇逻M(jìn)化:Paddle Lite正式發(fā)布!
高擴(kuò)展、高性能、輕量化,還是首個(gè)支持華為NPU在線編譯的深度學(xué)習(xí)端側(cè)推理框架,劍指加大力度攻占移動(dòng)端側(cè)場景。
而且大環(huán)境如此,這樣的自主研發(fā)基礎(chǔ)框架進(jìn)展,也有了更多的寄寓。
誠意和實(shí)力方面也值得稱道。針對(duì)更廣泛、更異構(gòu)的AI硬件支持,是Paddle Lite的核心亮點(diǎn)之一。
此次升級(jí)發(fā)布,Paddle Lite的架構(gòu)有了重大升級(jí),在多硬件、多平臺(tái)以及硬件混合調(diào)度的支持上更加完備。
不僅涵蓋ARM CPU、Mali GPU、Adreno GPU、華為NPU等移動(dòng)端芯片,也支持FPGA等邊緣設(shè)備常用硬件,并具備可兼容支持云端主流芯片的能力。
其中,Paddle Lite還成為了首個(gè)華為NPU在線編譯的深度學(xué)習(xí)推理框架。更早之前,百度和華為宣布在AI開發(fā)者大會(huì)上強(qiáng)強(qiáng)聯(lián)手。
值得一提的是,對(duì)標(biāo)Google推出的TensorFlow Lite,升級(jí)發(fā)布的Paddle Lite更是直接圍繞前者不足進(jìn)行了補(bǔ)強(qiáng)。
官方表示,不僅支持范圍更廣的AI硬件終端,增強(qiáng)了部署的普適性,并且具備明顯的性能優(yōu)勢(shì)。
AI框架的競爭,愈加激烈,也進(jìn)入全新階段。
何為Paddle Lite?
Paddle Lite,是Paddle Mobile的進(jìn)化版,是一款主打端側(cè)高性能輕量化部署的推理引擎。
核心用途是將訓(xùn)練出的模型在不同硬件平臺(tái)場景下快速部署,根據(jù)輸入數(shù)據(jù),執(zhí)行預(yù)測(cè)推理得到計(jì)算結(jié)果,支持實(shí)際的業(yè)務(wù)應(yīng)用。
在AI技術(shù)落地中,推理階段與實(shí)際應(yīng)用相關(guān)聯(lián),直接關(guān)系到用戶的體驗(yàn),是非常具有挑戰(zhàn)性的一環(huán)。
而更具挑戰(zhàn)性的是,當(dāng)前承載推理的硬件,正日趨異構(gòu)化。云端、移動(dòng)端和邊緣端對(duì)應(yīng)著各種不同的硬件,底層的芯片架構(gòu)差異很大。
如何能夠完整地支持如此眾多的硬件架構(gòu),并且實(shí)現(xiàn)這些硬件之上人工智能應(yīng)用性能的優(yōu)化,實(shí)現(xiàn)更快的速度?
Paddle Lite給出的解決方案是:
通過全新架構(gòu)高擴(kuò)展性和高靈活度地建模底層計(jì)算模式,加強(qiáng)了多種硬件、量化方法、Data Layout 混合調(diào)度執(zhí)行的能力,從而保障了宏觀硬件的支持能力,并通過極致的底層優(yōu)化,實(shí)現(xiàn)了領(lǐng)先的模型應(yīng)用性能效果。
Paddle Lite五大特性
官方介紹,Paddle Lite一共有五大特性:高擴(kuò)展性、訓(xùn)練推理無縫銜接,通用性、高性能和輕量化。
1、高擴(kuò)展性。
新架構(gòu)對(duì)硬件抽象描述能力更強(qiáng),可容易地在一套框架下對(duì)新硬件進(jìn)行集成,具有非常好的擴(kuò)展性。例如,對(duì)于FPGA的擴(kuò)展支持變得非常簡單。
此外,參考了LLVM的Type System和MIR(Machine IR),可以模塊化地對(duì)硬件和模型進(jìn)行更細(xì)致的分析和優(yōu)化,可以更便捷高效地?cái)U(kuò)展優(yōu)化策略,提供無限可能。
目前,Paddle Lite已經(jīng)支持21種 Pass 優(yōu)化策略,涵蓋硬件計(jì)算模式混合調(diào)度、INT8量化、算子融合、冗余計(jì)算裁剪等不同種類的優(yōu)化。
2、訓(xùn)練推理無縫銜接。
不同于其他一些獨(dú)立的推理引擎,Paddle Lite依托飛槳訓(xùn)練框架及其對(duì)應(yīng)的豐富完整的算子庫,底層算子的計(jì)算邏輯與訓(xùn)練嚴(yán)格一致,模型完全兼容無風(fēng)險(xiǎn),并可快速支持更多模型。
和飛槳的PaddleSlim模型壓縮工具打通,直接支持INT8量化訓(xùn)練的模型,并可獲得比離線量化更佳的精度。
3、通用性。
官方發(fā)布18個(gè)模型的 benchmark,涵蓋圖像分類、檢測(cè)、分割及圖像文字識(shí)別等領(lǐng)域,對(duì)應(yīng)80個(gè)算子Op+85個(gè) Kernel,相關(guān)算子可以通用支持其他模型。
而且, 還兼容支持其他框架訓(xùn)練的模型,對(duì)于 Caffe 和 TensorFlow訓(xùn)練的模型,可以通過配套的X2Paddle工具轉(zhuǎn)換之后進(jìn)行推理預(yù)測(cè)。
現(xiàn)在,Paddle Lite已經(jīng)與飛槳的PaddleSlim模型壓縮工具打通,直接支持INT8量化訓(xùn)練的模型,并可獲得比離線量化更佳的精度。
支持多硬件,目前已支持的包括ARM CPU, Mali GPU、Adreno GPU、華為NPU、FPGA等,正在優(yōu)化支持的有寒武紀(jì)、比特大陸等AI芯片,未來還會(huì)支持其他更多的硬件。
此外,還提供Web前端開發(fā)接口,支持javascript調(diào)用GPU,可在網(wǎng)頁端快捷運(yùn)行深度學(xué)習(xí)模型。
4、高性能。
在ARM CPU上,性能表現(xiàn)優(yōu)異。針對(duì)不同微架構(gòu),進(jìn)行了kernel的深度優(yōu)化,在主流移動(dòng)端模型上,展現(xiàn)出了速度優(yōu)勢(shì)。
此外,Paddle Lite也支持INT8量化計(jì)算,通過框架層的優(yōu)化設(shè)計(jì)和底層高效的量化計(jì)算實(shí)現(xiàn),結(jié)合 PaddleSlim 模型壓縮工具 中 INT8量化訓(xùn)練功能,可以提供高精度高性能的預(yù)測(cè)能力。
在華為NPU, FPGA上也有很好的性能表現(xiàn)。
5、輕量化。
針對(duì)端側(cè)設(shè)備特點(diǎn)進(jìn)行深度定制及優(yōu)化,無任何第三方依賴。
整個(gè)推理過程分為模型加載解析、計(jì)算圖的優(yōu)化分析及設(shè)備上的高效運(yùn)行。移動(dòng)端可以直接部署經(jīng)過優(yōu)化分析的圖,執(zhí)行預(yù)測(cè)。
Android 平臺(tái)上 ,ARMV7 動(dòng)態(tài)庫只需要800k,ARMV8動(dòng)態(tài)庫僅有1.3M,也可以根據(jù)需要,進(jìn)行更深度的剪裁。
目前,Paddle Lite及其前身的相關(guān)技術(shù),已經(jīng)在百度App、百度地圖、百度網(wǎng)盤和自動(dòng)駕駛等產(chǎn)品大規(guī)模使用。
比如百度App新近推出實(shí)時(shí)動(dòng)態(tài)多目標(biāo)識(shí)別功能,在Paddle Lite的支持下,把原來云端200多層的視覺算法模型優(yōu)化到10幾層,實(shí)現(xiàn)100ms以內(nèi)識(shí)別物體,8ms內(nèi)做出物體位置追蹤更新。
相比之下,人類肉眼識(shí)別物體,一般需要170ms到400ms,追蹤物體刷新需要40ms左右,這意味著其識(shí)別速度已經(jīng)超過了人眼。
而實(shí)現(xiàn)這一切,正是得益于Paddle Lite強(qiáng)大的端側(cè)推理能力,能夠完美承擔(dān)飛槳在多硬件平臺(tái)上的高效部署,并實(shí)現(xiàn)了模型應(yīng)用的極致性能優(yōu)化。
全新架構(gòu)詳解
背靠百度,Paddle Lite的架構(gòu)有一系列自主研發(fā)技術(shù)。
據(jù)介紹,Paddle Lite參考了百度內(nèi)部多個(gè)預(yù)測(cè)庫架構(gòu)實(shí)現(xiàn),以及優(yōu)勢(shì)能力整合,并重點(diǎn)增加了多種計(jì)算模式(硬件、量化方法、Data Layout)混合調(diào)度的完備性設(shè)計(jì),新架構(gòu)設(shè)計(jì)如下:
其中最上面一層是模型層,直接接受Paddle訓(xùn)練的模型,通過模型優(yōu)化工具轉(zhuǎn)化為NaiveBuffer特殊格式,以便更好地適應(yīng)移動(dòng)端的部署場景。
第二層是程序?qū)?/strong>,是operator序列構(gòu)成的執(zhí)行程序。
第三層是一個(gè)完整的分析模塊,包括了 MIR(Machine IR) 相關(guān)模塊,能夠?qū)υ械哪P偷挠?jì)算圖針對(duì)具體的硬件列表進(jìn)行算子融合、計(jì)算裁剪在內(nèi)的多種優(yōu)化。
不同于飛槳訓(xùn)練過程中的IR (Internal Representation),硬件和執(zhí)行信息也在這一層加入到分析中。
最底層是執(zhí)行層,也就是一個(gè)Kernel序列構(gòu)成的Runtime Program。執(zhí)行層的框架調(diào)度框架極低,只涉及到Kernel 的執(zhí)行,且可以單獨(dú)部署,以支持極致的輕量級(jí)部署。
整體上來看,不僅著重考慮了對(duì)多硬件和平臺(tái)的支持,而且也強(qiáng)化了多個(gè)硬件在一個(gè)模型中混合執(zhí)行的能力、多個(gè)層面的性能優(yōu)化處理,以及對(duì)端側(cè)應(yīng)用的輕量化設(shè)計(jì)。
國產(chǎn)深度學(xué)習(xí)框架崛起
飛槳(PaddlePaddle)的進(jìn)化,不僅僅只是一個(gè)簡單的產(chǎn)品升級(jí)。
放在大趨勢(shì)與大環(huán)境中,意義正在變得不同。
一方面是大趨勢(shì)。
今年是AI在落地化重要的一年,國內(nèi)在AI硬件,AI硬件研發(fā),包括百度、阿里、華為等巨頭公司都在積極布局AI芯片的設(shè)計(jì)和制造。
硬件的快速發(fā)展并不能彌補(bǔ)軟件端的缺失,國外科技巨頭已經(jīng)加快步伐,想要占領(lǐng)這一市場空白地帶。
今年的TensorFlow開發(fā)者大會(huì)上,谷歌已經(jīng)將在邊緣部署AI應(yīng)用的TensorFlow Lite作為重點(diǎn),顯然這一框架目前并不能很好地適配國內(nèi)公司開發(fā)的各種硬件。
國外科技公司也不會(huì)去花大量的精力在諸多不同廠商、不同架構(gòu)的國產(chǎn)芯片上。于是飛槳看到機(jī)遇,并且初見成效。
據(jù)百度剛發(fā)布的Q2財(cái)報(bào)顯示,飛槳的開發(fā)者下載量在2019年第二季度環(huán)比增加了45%。
作為目前最流行的國產(chǎn)機(jī)器學(xué)習(xí)框架,飛槳推出Paddle Lite著實(shí)花了大量精力解決國內(nèi)AI硬件應(yīng)用范圍小、開發(fā)困難的局面。
另一方面,繞不開的大形勢(shì)話題。
相比以往,AI發(fā)展中的自主研發(fā)和無斷供之憂,也開始被屢屢談及。
除了專利、硬件,底層算法框架,在安卓斷供華為之后也被抬上桌面。
當(dāng)前,兩大深度學(xué)習(xí)框架TensorFlow、PyTorch雖然是開源項(xiàng)目,但都在美國公司掌控之下,都可能要“遵守美國法律”。
所以也不是沒有“卡脖子”的風(fēng)險(xiǎn)。
之前,該如何發(fā)展這樣的底層核心技術(shù)的話題,各方專家談了又談,熱切呼吁,但真正變成行動(dòng),依然難上加難。
不僅需要時(shí)間、人才、資源等各方面的投入,也需要恰當(dāng)?shù)臅r(shí)機(jī)——至少?zèng)]到積重難返的時(shí)候。
于是Paddle Lite的升級(jí),就顯得恰逢其時(shí)。一來已有積累,二來時(shí)機(jī)不晚,可以換道超車。
不過,說一千道一萬,最終還是上手試試最直接。
話不多說,我們看貨、驗(yàn)貨:
傳送門
關(guān)于本次發(fā)布的Paddle Lite,重點(diǎn)功能升級(jí)匯總?cè)缦拢?/p>
- 1、架構(gòu)重大升級(jí),通過添加Machine IR、Type system、輕量級(jí) Operator 和 Kernel 等,增加了通用多平臺(tái)和多硬件支持,多 precision 和 data layout 混合調(diào)度執(zhí)行,動(dòng)態(tài)優(yōu)化,輕量級(jí)部署等重要特性。
- 2、完善了Java API,與 C++ API 一一對(duì)應(yīng)。
- 3、新增NaiveBuffer 模型存儲(chǔ)格式,移動(dòng)端部署與protobuf解耦,使預(yù)測(cè)庫尺寸更小。
- 4、通過X2Paddle 支持 Caffe 和 TensorFlow 模型的預(yù)測(cè),目前官方驗(yàn)證6種模型轉(zhuǎn)化支持。
- 5、新增對(duì)華為海思 NPU 的深度支持,成為首個(gè)支持華為NPU在線編譯的框架,已驗(yàn)證
- 6、支持FPGA ,已驗(yàn)證 ResNet50 模型。
- 7、對(duì)于Mali GPU 和 Adreno GPU,支持 OpenCL 和 ARM CPU Kernel混合調(diào)度,已驗(yàn)證了在MobileNetV1、MobileNetV2、ResNet-50等模型上的效果。
- 8、對(duì)于ARM架構(gòu)的CPU,Paddle Lite增加了對(duì)vgg-16、EfficientNet-b0、ResNet-18等常見模型的支持驗(yàn)證。
- 9、新增各類硬件 Kernel 70種。
更多詳情:
歡迎加入官方qq群:
官網(wǎng)地址:
https://www.paddlepaddle.org.cn
項(xiàng)目地址:
https://github.com/PaddlePaddle/Paddle-Lite