機器學習和深度學習技術如何快速發展,這為需要尋求方法來優化運行在具有功耗,處理和內存限制的微型邊緣設備上,進行ML應用程序的開發人員帶來了新的挑戰。
易于使用的開源開發工具,將簡化在嵌入式平臺上創建ML /深度學習項目的過程。
正文:
物聯網(IoT)已將數十億臺互聯設備帶入到我們的家庭、汽車、辦公室、醫院、工廠和城市中。物聯網先驅者設想了龐大的無線傳感器節點網絡,這些網絡將數萬億字節的數據傳輸到云中進行聚合、分析和決策。但是,近年來,基于物聯網的,基于云的智能愿景正在被一種新的模式所取代:邊緣智能。
利用機器學習(ML)技術的最新進展,嵌入式開發人員正在將人工智能(AI)的功能擴展到更靠近網絡邊緣的地方。當今的低功耗IoT設備現在能夠在本地運行復雜的ML和深度學習算法,而無需云連接,從而最大程度地減少了對延遲,性能,安全性和隱私性的擔憂。新興的ML /神經網絡邊緣應用包括智能個人助理、工廠機器人、聯網汽車中的語音和面部識別、支持AI的家庭安全攝像頭以及對白色家電和工業設備的預測性維護。
機器學習市場正在迅速擴展,智能邊緣應用的用例正在呈指數增長。根據TIRIAS Research的調查,到2025年,將有98%的邊緣設備使用某種形式的機器學習。根據這些市場預測,到那時,預計將有18-25億的設備包括ML和深度學習功能。2021年初,隨著越來越多的嵌入式開發人員可以訪問精簡ML項目所需的低功耗設備、開發框架和軟件工具,ML /深度學習應用程序將成為主流。
適應主流開發人員需求的ML Dev環境
直到最近,ML開發環境仍主要用于支持在ML和深度學習應用程序方面具有豐富專業知識的開發人員。但是,為了大規模地加速ML應用程序的開發,必須使ML支持變得更易于使用,并且對于主流的嵌入式開發人員來說,其支持范圍越來越廣。
與經典的基于云的AI系統相比,ML的出現相對較新,具有獨特的需求。嵌入式設計的IC,電源和系統級資源受到更多限制,需要新的和不同的軟件工具。ML開發人員還為智能邊緣應用程序設計了全新的開發流程,包括模型訓練,目標設備上的推理引擎部署以及系統集成的其他方面。
在對ML模型進行訓練,優化和量化之后,下一階段的開發涉及將模型部署在目標設備(例如MCU或應用處理器)上,并允許其執行推理功能。
在進一步介紹之前,讓我們仔細研究一下用于ML應用程序的新型目標設備:跨界微控制器(MCU)。術語“分頻器(Crossover)”是指結合了基于應用處理器的性能、功能,但具有易用性,低功耗和實時操作且具有MCU的中斷和低延遲等特點。典型的Crossover MCU,例如NXP的i.MX RT系列設備,包含一個Arm Cortex-M內核,其運行速度為300 MHz至1 GHz。這些MCU具有足夠的處理性能以支持ML推理引擎,從而無需額外的ML加速,以及功耗受限的邊緣應用所需的低功耗。
理想情況下,嵌入式開發人員可以使用全面的ML開發環境(包括軟件工具,應用程序示例和用戶指南)在目標設備上部署開源推論引擎。例如,恩智浦的eIQ環境為Arm NN,ONNX運行引擎,TensorFlow Lite和Glow神經網絡編譯器提供推理支持。開發人員可以遵循簡單的“自帶模型”(BYOM)流程,使他們能夠使用基于公共或私有云的工具來構建經過訓練的模型,然后將模型轉移到eIQ環境中,以為適當的芯片優化推理引擎。
如今,許多開發人員當前及將來的嵌入式項目都需要ML和深度學習工具和技術。同樣,對于這些開發人員中的大多數,ML必須變得更加全面并且易于使用。全面的支持包括端到端的工作流程,使開發人員能夠導入他們的訓練數據,為他們的應用選擇最佳模型,訓練模型,執行優化和量化,完成目標配置文件,然后進行最終生產。
對于大多數主流開發人員來說,易用性意味著可以訪問簡化的,優化的用戶界面,這些界面隱藏了底層細節并管理ML開發過程的復雜性。理想的用戶界面允許開發人員勾選一些選項,然后輕松導入訓練數據并將模型部署在目標設備上。
可用于幫助開發人員構建和部署ML應用程序和神經網絡模型的處理平臺,框架,工具和其他資源的數量正在不斷增加。讓我們研究幾種開發工具和框架,以及它們如何幫助開發人員簡化ML開發項目。
使用機器學習工具套件簡化工作流程
Au-Zone Technologies的DeepView ML工具套件是直觀的圖形用戶界面(GUI)和工作流程的一個很好的示例。它使從嵌入式設計人員到數據科學家再到ML專家的所有技能水平的開發人員,都可以導入數據集和神經網絡模型,然后在各種目標設備上訓練和部署這些模型和工作負載。
恩智浦最近增強了其eIQ開發環境,使其包括DeepView工具套件,以幫助開發人員簡化其ML項目(圖1)。新的eIQ ML工作流程工具為開發人員提供了高級功能,可以在NXP器件上進行修剪,量化,驗證和部署公共或專有神經網絡模型。目標上的圖形級概要分析功能為開發人員提供了運行時見解,以優化神經網絡模型架構,系統參數和運行時性能。
2. Glow編譯器使用計算圖為ML應用程序生成優化的機器代碼。
像Glow編譯器這樣的ML工具可以簡化ML /神經網絡開發,并增強低功耗MCU的邊緣處理性能。 GitHub上的Glow的現成標準版本與設備無關,使開發人員可以靈活地為領先的處理器架構(包括基于Arm Cortex-A和Cortex-M內核的架構)編譯神經網絡模型。
為了幫助簡化ML項目,恩智浦將Glow與eIQ開發環境及其MCUXpresso SDK集成在一起。它將Glow編譯器和量化工具組合到易于使用的安裝程序中,并附有詳細的文檔以幫助開發人員快速運行其模型。這種經過優化的Glow實施針對Arm Cortex-M內核和Cadence Tensilica HiFi 4 DSP,并為i.MX RT系列MCU提供了特定于平臺的優化。
恩智浦使用CIFAR-10數據集作為神經網絡模型基準,最近測試了i.MX RT1060 MCU,以評估不同Glow編譯器版本之間的性能差異。恩智浦還在i.MX RT685 MCU上進行了測試,i.MX RT685 MCU是目前唯一具有針對處理神經網絡操作員進行了優化的集成DSP的i.MX RT系列設備。
i.MX RT1060包含600 MHz Arm Cortex-M7、1 MB SRAM,以及針對實時應用優化的功能,例如高速GPIO,CAN-FD和同步并行NAND / NOR / PSRAM控制器。 i.MX RT685包含一個600 MHz的Cadence Tensilica HiFi 4 DSP內核,一個300 MHz的Arm Cortex-M33內核和4.5 MB的片上SRAM,以及與安全相關的功能。
恩智浦的Glow實施與Cadence的神經網絡庫NNLib緊密結合。盡管RT685 MCU的HiFi 4 DSP內核旨在增強語音處理能力,但與NNLib庫一起用作Glow的LLVM后端時,它也能夠加速各種神經網絡。盡管NNLib與CMSIS-NN類似,但它提供了一組針對HiFi4 DSP優化的更全面的手動調諧運算符。基于相同的CIFAR-10基準示例,與標準的Glow編譯器實現相比,HiFi4 DSP將神經網絡操作的性能提高了25倍。
使用PyTorch進行基于MCU的ML開發
PyTorch是一個開放源代碼的機器學習框架,主要由Facebook的AI研究實驗室開發,并基于Torch庫,已被開發人員廣泛用于創建ML /深度學習項目和產品。PyTorch是MCU目標的不錯選擇,因為它對處理平臺的限制極小,并且能夠生成ONNX模型,該模型可以由Glow進行編譯。
由于開發人員可以通過PyTorch直接訪問Glow,因此他們可以在同一開發環境中構建和編譯模型,從而省去了步驟并簡化了編譯過程。開發人員還可以直接從Python腳本生成捆綁包,而無需先生成ONNX模型。
直到最近,ONNX和Caffe2還是Glow支持的唯一輸入模型格式。 PyTorch現在可以將模型直接導出為ONNX格式以供使用。由于以其他格式(例如TensorFlow)創建了許多知名模型,因此可以使用
開源模型轉換工具將其轉換為ONNX格式。流行的格式轉換工具包括MMdnn和tf2onnx,MMdnn是Microsoft支持的工具集,可幫助用戶在不同的深度學習框架之間進行互操作;tf2onnx用于將TensorFlow模型轉換為ONNX。
結論
機器學習和深度學習技術繼續快速發展。同時,我們看到能夠運行ML /深度學習算法并無需云干預就能做出自主決策的IoT和其他邊緣設備的強勁市場勢頭。盡管將信息從云遷移到網絡邊緣是不可阻擋的趨勢,但隨著開發人員尋求優化ML應用程序以使其在具有功耗,處理和內存約束的微型邊緣設備上運行的方法,挑戰也隨之而來。
正如建筑師和建筑商需要專門的工具來建造未來的房屋和城市一樣,主流開發商也需要優化,易于使用的軟件工具和框架,以簡化在嵌入式平臺上創建ML /深度學習項目的過程。 DeepView ML工具套件,Glow ML編譯器和PyTorch框架例證了不斷增長的開發資源浪潮,這些資源將幫助嵌入式開發人員創建下一代智能邊緣應用程序。
編輯:hfy
-
神經網絡
+關注
關注
42文章
4776瀏覽量
100952 -
物聯網
+關注
關注
2911文章
44826瀏覽量
375146 -
機器學習
+關注
關注
66文章
8428瀏覽量
132837 -
深度學習
+關注
關注
73文章
5510瀏覽量
121338 -
pytorch
+關注
關注
2文章
808瀏覽量
13283
發布評論請先 登錄
相關推薦
評論