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