國產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種。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2654529/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 多硬體支援、輕量化部署等,百度Paddle Lite特性全解讀
- PHP編譯器BPC 6.0釋出,支援namespace,支援closure,成功編譯 workermanPHP編譯namespace
- .NET 9 釋出 效能提升、AI 支援與全方位改進AI
- Paddle Lite新增ARM端影像預處理庫
- 華為雲釋出分散式編譯構建系統CodeArts Build分散式編譯UI
- 2款AI晶片、深度學習框架MindSpore:華為史無前例集中釋出AI戰略AI晶片深度學習框架
- Linux 6.6-rc4核心測試版釋出,支援英特爾Arrow Lake NPULinux
- Code Runner,率先支援剛釋出的 Visual Studio 2022!
- 百度正式釋出PaddlePaddle深度強化學習框架PARL強化學習框架
- LiteFlow v2.9.4釋出!一款能讓你係統支援熱更新,編排,指令碼編寫邏輯的國產規則引擎框架指令碼框架
- 業界率先支援 MCP-OVER-XDS 協議,Nacos 2.0.1 + 1.4.2 Release 正式釋出協議
- 華為榮耀8X釋出會影片直播地址 華為榮耀8X釋出會直播線上觀看
- 百度釋出全球首款支援 OAI 標準和液冷的 AI 計算平臺AI
- 乾貨|智慧編譯優化框架TACT編譯優化框架
- 唯快不破!華為雲釋出分散式編譯構建系統CodeArts Build分散式編譯UI
- 程式碼線上編譯器(上)- 編輯及編譯編譯
- [譯] 使用 Python Flask 框架釋出機器學習 APIPythonFlask框架機器學習API
- 華為P20 Lite全面屏手機3月27日釋出:異形全面屏加持!
- xmake v2.5.7 釋出,包依賴鎖定和 Vala/Metal 語言編譯支援編譯
- 超輕量AI推理引擎MindSpore Lite新版本釋出,支撐HMS Core AI領域全面升級AI
- Java RPC 框架 Solon 1.3.9 釋出,更便利的支援JavaRPC框架
- 華為MateBook E釋出
- 編譯專案時出現的錯誤 線上等回覆編譯
- 百度智慧雲釋出曦靈-AI手語平臺AI
- Taro 1.1 釋出,全面支援微信/百度/支付寶 小程式
- 普惠AI,華為面向多場景釋出智慧計算平臺AI
- Game AI SDK 開源釋出:基於影像的遊戲場景自動化框架GAMAI遊戲框架
- 華為人才生態數字化平臺 & 華為雲微認證釋出
- 執行時框架,編譯時框架框架編譯
- 窺見AI工業化開發黎明:華為雲如何將AI進行到底AI
- 華為雲GeminiDB新版本釋出:全面支援Redis 6.2Redis
- 掘金新品線上釋出
- 分散式事務框架dtm1.3.1釋出,新增postgres支援分散式框架
- 全圖化引擎(AI·OS)中的編譯技術AI編譯
- xmake v2.6.1 釋出,使用 Lua5.4 執行時,Rust 和 C++ 混合編譯支援RustC++編譯
- t-io 3.7.5 釋出,口碑炸裂的國產網路程式設計框架程式設計框架
- Go 部落格平臺 Pipe 1.8.0 釋出,支援摘要編輯Go
- 華為AI戰略出爐始末AI