AI普及給嵌入式設(shè)計人員帶來新挑戰(zhàn)
2024-09-09
作者:Microchip Technology Inc. 觸摸和手勢業(yè)務(wù)部 副總監(jiān) Yann LeFaou
來源:Microchip
探討了人工智能(AI)的普及給嵌入式設(shè)計人員帶來的新挑戰(zhàn)。在創(chuàng)建“邊緣機器學(xué)習(xí)(ML)”應(yīng)用時,設(shè)計人員必須確保其能有效運行,同時最大限度地降低處理器和存儲開銷,以及物聯(lián)網(wǎng)(IoT)設(shè)備的功耗。
從監(jiān)控和訪問控制到智能工廠和預(yù)測性維護,基于機器學(xué)習(xí)(ML)模型構(gòu)建的人工智能(AI)在工業(yè)物聯(lián)網(wǎng)邊緣處理應(yīng)用中已變得無處不在。隨著這種普及,支持AI的解決方案的構(gòu)建已經(jīng)變得“大眾化”——從數(shù)據(jù)科學(xué)家的專業(yè)領(lǐng)域轉(zhuǎn)為嵌入式系統(tǒng)設(shè)計人員也需要了解的領(lǐng)域。這種大眾化帶來的挑戰(zhàn)在于,設(shè)計人員并不一定具備定義要解決的問題以及以最恰當(dāng)方式捕獲和組織數(shù)據(jù)的能力。此外,與消費類解決方案不同,工業(yè)AI實現(xiàn)的現(xiàn)有數(shù)據(jù)集很少,通常需要用戶從頭開始創(chuàng)建自己的數(shù)據(jù)集。
融入主流
AI已經(jīng)融入主流,深度學(xué)習(xí)和機器學(xué)習(xí)(DL和ML)是我們現(xiàn)在習(xí)以為常的許多應(yīng)用的背后力量,這些應(yīng)用包括自然語言處理、計算機視覺、預(yù)測性維護和數(shù)據(jù)挖掘。早期的AI實現(xiàn)是基于云或服務(wù)器的,需要大量的處理能力和存儲空間,以及AI/ML應(yīng)用與邊緣(終端)之間的高帶寬連接。盡管生成式AI應(yīng)用(如ChatGPT、DALL-E和Bard)仍然需要此類設(shè)置,但近年來已經(jīng)出現(xiàn)了邊緣處理的AI,即在數(shù)據(jù)捕獲點實時處理數(shù)據(jù)。邊緣處理極大減少了對云的依賴,使整體系統(tǒng)/應(yīng)用更快、需要更少的功耗并且成本更低。許多人認為安全性得到了提高,但更準(zhǔn)確地說,主要的安全重點從保護云與終端之間的通信轉(zhuǎn)移到了使邊緣設(shè)備更安全。
邊緣的AI/ML可以在傳統(tǒng)的嵌入式系統(tǒng)上實現(xiàn),這些系統(tǒng)的設(shè)計人員可以使用強大的微處理器、圖形處理單元和豐富的存儲器器件,即類似于PC的資源。然而,越來越多的商業(yè)和工業(yè)物聯(lián)網(wǎng)設(shè)備需要在邊緣具備AI/ML功能,這些設(shè)備通常硬件資源有限,而且在許多情況下由電池供電。
在資源和功耗受限的硬件上運行的邊緣AI/ML的潛力催生了“TinyML”這一術(shù)語。實際用例涵蓋工業(yè)(如預(yù)測性維護)、樓宇自動化(環(huán)境監(jiān)控)、建筑施工(監(jiān)督人員安全)和安防等領(lǐng)域。
數(shù)據(jù)流
AI(及其子集ML)需要從數(shù)據(jù)捕獲/收集到模型部署的工作流程(見圖1)。對于TinyML而言,由于嵌入式系統(tǒng)資源有限,因此每個工作流程階段的優(yōu)化至關(guān)重要。
例如,TinyML的資源需求被認為是1 MHz到400 MHz的處理速度、2 KB到512 KB的RAM和32 KB到2 MB的存儲空間(閃存)。此外,150μW至23.5 mW的小功耗預(yù)算也常常帶來挑戰(zhàn)。
圖1——上圖為簡化的AI工作流程。雖然圖中未顯示,但模型部署本身必須將數(shù)據(jù)反饋回流程中,甚至可能影響數(shù)據(jù)的收集。
此外,在將AI嵌入資源有限的嵌入式系統(tǒng)時,還有更重要的考慮因素或權(quán)衡。模型是系統(tǒng)行為的關(guān)鍵,但設(shè)計人員經(jīng)常發(fā)現(xiàn)自己在模型質(zhì)量/精度(影響系統(tǒng)可靠性/依賴性和性能,主要是運行速度和功耗)之間做出妥協(xié)。
另一個關(guān)鍵因素是決定使用哪種類型的AI/ML。通常有三種算法可供使用:監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)。
解決方案
即使是對AI和ML有良好理解的設(shè)計人員,可能也會在優(yōu)化AI/ML工作流程的每個階段并在模型精度與系統(tǒng)性能之間找到完美平衡方面遇到困難——那么缺乏以往經(jīng)驗的嵌入式設(shè)計人員如何應(yīng)對這些挑戰(zhàn)呢?
首先,重要的是不要忽視一個事實:如果模型小且AI任務(wù)僅限于解決簡單問題,那么部署在資源有限的物聯(lián)網(wǎng)設(shè)備上的模型將會更有效。
幸運的是,ML(特別是TinyML)進入嵌入式系統(tǒng)領(lǐng)域,帶來了新的(或增強的)集成開發(fā)環(huán)境(IDE)、軟件工具、架構(gòu)和模型——其中許多都是開源的。例如,TensorFlow? Lite for Microcontrollers(TF Lite Micro)是一個面向ML和AI的免費開源軟件庫,它專為在只有幾KB存儲器的器件上實現(xiàn)ML而設(shè)計。此外,程序可以用開源和免費的Python語言編寫。
關(guān)于IDE,Microchip的MPLAB? X就是此類環(huán)境的一個示例。該IDE可與公司的MPLAB ML一起使用,MPLAB ML是專門開發(fā)的MPLAB X插件,用于構(gòu)建優(yōu)化的AI物聯(lián)網(wǎng)傳感器識別代碼。MPLAB ML由AutoML提供支持,可將AI ML工作流程的每一步完全自動化,無需重復(fù)、繁瑣和耗時的模型構(gòu)建。特征提取、訓(xùn)練、驗證和測試確保滿足單片機和微處理器存儲器限制的優(yōu)化模型,使開發(fā)人員能夠快速在基于Microchip Arm? Cortex?的32位MCU或MPU上創(chuàng)建和部署ML解決方案。
流程優(yōu)化
工作流程優(yōu)化任務(wù)可以通過使用現(xiàn)成的數(shù)據(jù)集和模型來簡化。例如,如果一個支持ML的物聯(lián)網(wǎng)設(shè)備需要圖像識別,從現(xiàn)有的標(biāo)記靜態(tài)圖像和視頻片段數(shù)據(jù)集開始進行模型訓(xùn)練(測試和評估)是合理的;需要注意的是,監(jiān)督學(xué)習(xí)算法需要標(biāo)記數(shù)據(jù)。
許多圖像數(shù)據(jù)集已經(jīng)存在于計算機視覺應(yīng)用中。然而,由于它們是為基于PC、服務(wù)器或云的應(yīng)用設(shè)計的,通常都很大。例如,ImageNet包含超過1400萬張標(biāo)注圖像。
根據(jù)ML應(yīng)用的不同,可能只需要少量子集;例如,有很多人但只有少量靜物的圖像。例如,如果在建筑工地使用支持ML的攝像頭,當(dāng)有不戴安全帽的人進入其視野時,它們可以立即發(fā)出報警。ML模型需要訓(xùn)練,但可能只需要少量戴或不戴安全帽的人的圖像。然而,對于帽子類型,可能需要更大的數(shù)據(jù)集和足夠的數(shù)據(jù)集范圍,以考慮不同的光照條件等各種因素。
圖1中第1步到第3步的內(nèi)容分別是獲得正確的實時(數(shù)據(jù))輸入和數(shù)據(jù)集、準(zhǔn)備數(shù)據(jù)和訓(xùn)練模型。模型優(yōu)化(第4步)通常是壓縮,這有助于減少存儲器需求(處理期間的RAM和用于存儲的NVM)和處理延遲。
在處理方面,許多AI算法(如卷積神經(jīng)網(wǎng)絡(luò)(CNN))在處理復(fù)雜模型時會遇到困難。一種流行的壓縮技術(shù)是剪枝(見圖2),剪枝有四種類型:權(quán)重剪枝、單元/神經(jīng)元剪枝和迭代剪枝。
圖2——剪枝減少了神經(jīng)網(wǎng)絡(luò)的密度。上圖中,某些神經(jīng)元之間的連接權(quán)重被設(shè)為零。但有時神經(jīng)元也可以被剪掉(圖中未顯示)。
量化是另一種流行的壓縮技術(shù)。量化是將高精度格式(如32位浮點(FP32))的數(shù)據(jù)轉(zhuǎn)換為低精度格式(如8位整數(shù)(INT8))的過程。量化模型(見圖3)的使用可以通過以下兩種方式之一納入機器訓(xùn)練。
訓(xùn)練后量化涉及使用FP32格式的模型,當(dāng)訓(xùn)練完成后,再進行量化以便部署。例如,可以使用標(biāo)準(zhǔn)TensorFlow在PC上進行初始模型訓(xùn)練和優(yōu)化。然后模型可以進行量化,并通過TensorFlow Lite嵌入到物聯(lián)網(wǎng)設(shè)備中。
量化感知訓(xùn)練可仿真推斷時量化,創(chuàng)建一個模型供下游工具用于生成量化模型。
圖3——量化模型使用低精度,從而減少存儲器和存儲需求并提高能源效率,同時仍保留相同的形狀。
雖然量化很有用,但不應(yīng)過度使用,因為它類似于通過使用較少的位表示顏色和/或使用較少的像素來壓縮數(shù)字圖像——即,會存在一個圖像變得難以解釋的點。
總結(jié)
正如我們在開頭所提到的,AI現(xiàn)在已經(jīng)深深融入嵌入式系統(tǒng)領(lǐng)域。然而,這種大眾化意味著以前不需要了解AI和ML的設(shè)計工程師正面臨將AI解決方案實現(xiàn)到其設(shè)計中的挑戰(zhàn)。
盡管創(chuàng)建ML應(yīng)用并充分利用有限硬件資源的挑戰(zhàn)可能令人望而卻步,但這對經(jīng)驗豐富的嵌入式系統(tǒng)設(shè)計人員來說并不是一個新挑戰(zhàn)。好消息是,工程社區(qū)內(nèi)有豐富的信息(和培訓(xùn)),以及像MPLAB X這樣的IDE、MPLAB ML這樣的模型構(gòu)建工具以及各種開源數(shù)據(jù)集和模型。這種生態(tài)系統(tǒng)可幫助不同理解水平的工程師快速完成現(xiàn)在可以在16位甚至8位單片機上實現(xiàn)的AL和ML解決方案。
更多精彩內(nèi)容歡迎點擊==>>電子技術(shù)應(yīng)用-AET<<