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