從監(jiān)控和訪問(wèn)控制到智能工廠和預(yù)測(cè)性維護(hù),圍繞機(jī)器學(xué)習(xí)(ML)模型構(gòu)建的人工智能(AI)的部署正在工業(yè)物聯(lián)網(wǎng)邊緣處理應(yīng)用中變得無(wú)處不在。隨著這種無(wú)處不在,人工智能解決方案的構(gòu)建已經(jīng)變得“民主化”——從數(shù)據(jù)科學(xué)家的專(zhuān)業(yè)學(xué)科轉(zhuǎn)變?yōu)榍度胧较到y(tǒng)設(shè)計(jì)師應(yīng)該理解的學(xué)科。
這種民主化的挑戰(zhàn)是,設(shè)計(jì)者不一定能夠很好地定義要解決的問(wèn)題,并最恰當(dāng)?shù)夭蹲胶徒M織數(shù)據(jù)。與消費(fèi)者解決方案不同,工業(yè)人工智能實(shí)施的數(shù)據(jù)集很少,這意味著它們通常必須從用戶的數(shù)據(jù)中從頭開(kāi)始創(chuàng)建。
融入主流
人工智能已經(jīng)成為主流,深度學(xué)習(xí)和機(jī)器學(xué)習(xí)(分別是DL和ML)是我們現(xiàn)在認(rèn)為理所當(dāng)然的許多應(yīng)用的背后,例如自然語(yǔ)言處理、計(jì)算機(jī)視覺(jué)、預(yù)測(cè)性維護(hù)和數(shù)據(jù)挖掘。早期的AI實(shí)現(xiàn)是基于云或服務(wù)器的,在AI/ML應(yīng)用和邊緣(端點(diǎn))之間需要巨大的處理能力、存儲(chǔ)和高帶寬。雖然ChatGPT、DALL-E和Bard等生成式人工智能應(yīng)用程序仍然需要這種設(shè)置,但近年來(lái)已經(jīng)出現(xiàn)了邊緣處理人工智能,即在捕捉點(diǎn)實(shí)時(shí)處理數(shù)據(jù)。
邊緣處理極大地減少了對(duì)云的依賴,使整個(gè)系統(tǒng)/應(yīng)用更快,需要更少的電力,成本更低。許多人也認(rèn)為安全性得到了提高,但更準(zhǔn)確的說(shuō)法是,主要的安全焦點(diǎn)從保護(hù)云和端點(diǎn)之間的動(dòng)態(tài)通信轉(zhuǎn)移到使邊緣設(shè)備更加安全。
邊緣的AI/ML可以在傳統(tǒng)的嵌入式系統(tǒng)上實(shí)現(xiàn),設(shè)計(jì)者可以使用強(qiáng)大的微處理器、圖形處理單元和大量的存儲(chǔ)設(shè)備;類(lèi)似于個(gè)人電腦的資源。然而,對(duì)物聯(lián)網(wǎng)設(shè)備(商業(yè)和工業(yè))在邊緣采用AI/ML的需求越來(lái)越多,它們通常具有有限的硬件資源,并且在許多情況下是電池供電的。
AI/ML在資源和功率受限的硬件上運(yùn)行的潛力產(chǎn)生了術(shù)語(yǔ)TinyML。例如,工業(yè)(例如,預(yù)測(cè)性維護(hù))、建筑自動(dòng)化(環(huán)境監(jiān)控)、建筑(監(jiān)督人員安全)和安全。
數(shù)據(jù)流
AI(及其子集ML)需要一個(gè)從數(shù)據(jù)捕獲/收集到模型部署的工作流(圖1)。就TinyML而言,由于嵌入式系統(tǒng)內(nèi)的資源有限,優(yōu)化整個(gè)工作流是必不可少的。
例如,TinyML的資源要求是1到400 MHz的處理速度、2到512 KB的RAM和32 KB到2 MB的存儲(chǔ)空間(閃存)。此外,在150 W至23.5 mW的功率下,在如此小的功率預(yù)算內(nèi)運(yùn)行通常具有挑戰(zhàn)性。
在將人工智能嵌入資源有限的嵌入式系統(tǒng)時(shí),還有一個(gè)更大的考慮因素,或者說(shuō)是權(quán)衡。模型對(duì)系統(tǒng)行為至關(guān)重要,但設(shè)計(jì)者經(jīng)常在模型質(zhì)量/準(zhǔn)確性之間做出妥協(xié),這會(huì)影響系統(tǒng)的可靠性/可信性和性能;主要是運(yùn)行速度和功率消耗。
另一個(gè)關(guān)鍵因素是決定采用哪種類(lèi)型的人工智能/人工智能。一般來(lái)說(shuō),可以使用三種類(lèi)型的算法:監(jiān)督式、非監(jiān)督式和強(qiáng)化式。
創(chuàng)建可行的解決方案
即使是非常了解AI和ML的設(shè)計(jì)師也可能難以優(yōu)化AI/ML工作流程的每個(gè)階段,并在模型準(zhǔn)確性和系統(tǒng)性能之間取得完美平衡。那么,以前沒(méi)有經(jīng)驗(yàn)的嵌入式設(shè)計(jì)師如何應(yīng)對(duì)這些挑戰(zhàn)呢?
首先,不要忽視這樣一個(gè)事實(shí):如果模型很小,人工智能任務(wù)僅限于解決一個(gè)簡(jiǎn)單的問(wèn)題,部署在資源有限的物聯(lián)網(wǎng)設(shè)備上的模型將是高效的。
幸運(yùn)的是,ML(尤其是TinyML)進(jìn)入嵌入式系統(tǒng)領(lǐng)域帶來(lái)了新的(或增強(qiáng)的)集成開(kāi)發(fā)環(huán)境(ide)、軟件工具、架構(gòu)和模型——其中許多是開(kāi)源的。例如,用于微控制器的tensor flow Lite(TF Lite Micro)是一個(gè)用于ML和AI的免費(fèi)開(kāi)源軟件庫(kù)。它被設(shè)計(jì)用于在只有幾KB內(nèi)存的設(shè)備上實(shí)現(xiàn)ML。此外,程序可以用Python編寫(xiě),Python也是開(kāi)源和免費(fèi)的。
至于ide,Microchip的MPLAB X就是這樣一個(gè)環(huán)境的例子。該IDE可與該公司的MPLAB ML一起使用,MPLAB ML是一種專(zhuān)門(mén)為構(gòu)建優(yōu)化的AI物聯(lián)網(wǎng)傳感器識(shí)別代碼而開(kāi)發(fā)的MPLAB X插件。由AutoML提供動(dòng)力,MPLAB ML完全自動(dòng)化AI ML工作流程的每個(gè)步驟,消除了重復(fù)、繁瑣和耗時(shí)的模型構(gòu)建需求。特征提取、訓(xùn)練、驗(yàn)證和測(cè)試確保優(yōu)化模型滿足微控制器和微處理器的內(nèi)存限制,允許開(kāi)發(fā)人員在基于Microchip Arm Cortex的32位MCU或MPU上快速創(chuàng)建和部署ML解決方案。
優(yōu)化工作流程
從現(xiàn)成的數(shù)據(jù)集和模型開(kāi)始,可以簡(jiǎn)化工作流優(yōu)化任務(wù)。例如,如果支持ML的物聯(lián)網(wǎng)設(shè)備需要圖像識(shí)別,那么從已標(biāo)記的靜態(tài)圖像和視頻剪輯的現(xiàn)有數(shù)據(jù)集開(kāi)始進(jìn)行模型訓(xùn)練(測(cè)試和評(píng)估)是有意義的;注意有監(jiān)督的ML算法需要標(biāo)記數(shù)據(jù)。
許多圖像數(shù)據(jù)集已經(jīng)存在于計(jì)算機(jī)視覺(jué)應(yīng)用中。然而,由于它們旨在用于基于PC、服務(wù)器或云的應(yīng)用程序,因此它們往往很大。例如,ImageNet包含超過(guò)1400萬(wàn)張帶注釋的圖像。
根據(jù)ML應(yīng)用程序,可能只需要幾個(gè)子集;說(shuō)許多人的圖像,但只有一些無(wú)生命的物體。例如,如果在建筑工地上使用支持ML的攝像機(jī),如果沒(méi)有戴安全帽的人進(jìn)入其視野,它們可以立即發(fā)出警報(bào)。ML模型將需要訓(xùn)練,但可能只使用一些戴或不戴安全帽的人的圖像。但是,帽子類(lèi)型可能需要更大的數(shù)據(jù)集,并且數(shù)據(jù)集中的范圍要足夠大,以便考慮各種因素,例如不同的光照條件。
有了正確的實(shí)時(shí)(數(shù)據(jù))輸入和數(shù)據(jù)集,準(zhǔn)備數(shù)據(jù)和訓(xùn)練模型說(shuō)明了圖1中的步驟1到3。模型優(yōu)化(步驟4)通常是一種壓縮,這有助于減少內(nèi)存需求(處理過(guò)程中的RAM和存儲(chǔ)的NVM)和處理延遲。
關(guān)于處理,許多人工智能算法,如卷積神經(jīng)網(wǎng)絡(luò)(CNN),與復(fù)雜的模型進(jìn)行斗爭(zhēng)。一種流行的壓縮技術(shù)是剪枝(見(jiàn)圖2),有四種類(lèi)型:權(quán)重剪枝、單元/神經(jīng)元剪枝和迭代剪枝。
量化是另一種流行的壓縮技術(shù)。此過(guò)程將高精度格式(如浮點(diǎn)32位(FP32))的數(shù)據(jù)轉(zhuǎn)換為低精度格式(如8位整數(shù)(INT8))。量化模型的使用(見(jiàn)圖3)可以以兩種方式之一納入機(jī)器訓(xùn)練。
訓(xùn)練后量化包括使用FP32格式的模型,當(dāng)訓(xùn)練完成時(shí),量化部署。例如,標(biāo)準(zhǔn)TensorFlow可用于PC上的初始模型訓(xùn)練和優(yōu)化。然后,該模型可以量化,并通過(guò)TensorFlow Lite嵌入到物聯(lián)網(wǎng)設(shè)備中。
量化感知訓(xùn)練模擬推理時(shí)間量化,創(chuàng)建模型下游工具將用于產(chǎn)生量化模型。
雖然量化很有用,但不應(yīng)過(guò)度使用,因?yàn)樗?lèi)似于通過(guò)用更少的位或使用更少的像素來(lái)表示顏色來(lái)壓縮數(shù)字圖像。
摘要
人工智能現(xiàn)在已經(jīng)完全進(jìn)入了嵌入式系統(tǒng)領(lǐng)域。然而,這種民主化意味著以前不需要理解人工智能和ML的設(shè)計(jì)工程師面臨著在他們的設(shè)計(jì)中實(shí)現(xiàn)基于人工智能的解決方案的挑戰(zhàn)。
雖然創(chuàng)建ML應(yīng)用程序的挑戰(zhàn)令人望而生畏,但這并不新鮮,至少對(duì)于經(jīng)驗(yàn)豐富的嵌入式系統(tǒng)設(shè)計(jì)師來(lái)說(shuō)是這樣。好消息是,在工程社區(qū)、ide(如MPLAB X)、模型構(gòu)建器(如MPLAB ML)以及開(kāi)源數(shù)據(jù)集和模型中可以獲得大量信息(和培訓(xùn))。這一生態(tài)系統(tǒng)有助于工程師從不同層面理解速度AL和ML解決方案,這些解決方案現(xiàn)在可以在16位甚至8位微控制器上實(shí)施。