如何把機器學(xué)習這只“大象”,放進(jìn)MCU的“冰箱”?

人工智能(AI)在很多人眼里是,只是一種科幻片中不明覺(jué)厲的存在,而與普通人的生活之間隔著(zhù)很遠的距離。但是這樣的局面正在被改變,在未來(lái)5-10年中,AI將會(huì )以超乎我們想象的速度快速滲透到我們生活的方方面面。為什么這么講?一起隨我們往下看。
人工智能物聯(lián)網(wǎng)的基本范式之所以我們與AI之間會(huì )有“距離感”,主要是因為以前玩AI是一件比較奢侈的事。這種“奢侈”主要體現在,實(shí)現AI所依賴(lài)的機器學(xué)習(ML),在其訓練和推理的過(guò)程中對算力有非常高的要求。為了應對這樣的挑戰,通過(guò)云計算集中算力做數據處理,也就成為了實(shí)現機器學(xué)習的一個(gè)經(jīng)典方法。
但是到了物聯(lián)網(wǎng)時(shí)代,這樣的模式受到了挑戰——集中式云計算帶寬和存儲資源消耗大、實(shí)時(shí)數據傳輸消耗電量多、數據在終端和云端之間傳輸延遲長(cháng)、數據傳輸和云端集中存儲過(guò)程中安全風(fēng)險大……這些弊端讓人們認識到單純的云計算不是包打天下的萬(wàn)能****。
因此,邊緣計算作為經(jīng)典云計算的補充,越來(lái)越得到大家的重視。按照邊緣計算的定義,將大部分計算任務(wù)放在邊緣設備上直接進(jìn)行處理,而只在必要的時(shí)候將一些經(jīng)過(guò)預處理的數據傳輸至云端進(jìn)行“精加工”,這樣既能提升邊緣端實(shí)時(shí)響應的速度和智能化水平,又能為網(wǎng)絡(luò )傳輸通路和云端數據中心減負,因此這樣的混合計算模式顯然可以完美地堅決傳統云計算的痛點(diǎn)。
種計算架構的變遷,也對機器學(xué)習的模式產(chǎn)生了影響,使其從以計算為中心的模式向以數據為中心的模式轉變。這兩種模式中,前者是將機器學(xué)習的訓練和推理都放在云端數據中心中完成,而后者則是由云端完成模型的訓練,而將推理放在邊緣設備上完成,這也就形成了人工智能物聯(lián)網(wǎng)(AIoT)實(shí)施的基本范式。
向MCU擴展機器學(xué)習的疆界顯而易見(jiàn),邊緣計算使得機器學(xué)習的疆界大為擴展,使其從數據中心的機房走向了更多樣性的網(wǎng)絡(luò )邊緣智能。但對于物聯(lián)網(wǎng)應用來(lái)講,這似乎還不夠。因為在邊緣設備上進(jìn)行推理,仍然需要相對強悍的算力,這通常需要包含ML協(xié)處理器在內的較為復雜的異構微處理器來(lái)實(shí)現加速,如此的配置在嵌入式領(lǐng)域已經(jīng)算是很“高端”的了。僅此一條,就會(huì )將不少對于功耗、成本、實(shí)時(shí)性敏感的應用關(guān)在機器學(xué)習的門(mén)外。
因此,機器學(xué)習想要繼續開(kāi)疆擴土,一個(gè)主攻方向就是要讓資源更簡(jiǎn)單、算力更有限的微控制器(MCU)也能夠跑得了、玩得起機器學(xué)習。IC Insights的研究數據顯示,2018年全球MCU的出貨量為281億顆,到2023年將這個(gè)數字將增長(cháng)到382億顆,而全球的MCU存量將數以千億計,誰(shuí)要是能夠讓如此量級的設備玩轉機器學(xué)習,其前途和錢(qián)途都將是不可限量的!
但對于任何一個(gè)夢(mèng)想來(lái)說(shuō),現實(shí)往往顯得比較“骨感”。將機器學(xué)習部署到MCU運行,就好像是要將一只大象塞進(jìn)冰箱,而這個(gè)答案絕對不是一句腦筋急轉彎的玩笑話(huà),而是需要在技術(shù)從兩個(gè)維度上去仔細考量。
為機器學(xué)習模型瘦身第一個(gè)維度,就是要考慮如何為ML模型這只“大象”進(jìn)行“瘦身”,也就是說(shuō)要發(fā)展出相應的技術(shù),能夠在微控制器上部署、運行“小型化”的機器學(xué)習推理模型。這種瘦身后的模型,需要滿(mǎn)足的條件包括:
運行模型的終端功耗一般在mW級別,甚至更低;
占用的內存一般要在幾百kB以下;
推理時(shí)間為ms級別,一般需要在1s內完成。
為了實(shí)現這樣的目標,TinyML技術(shù)應運而生。故名思議,這就是一種能夠讓ML模型“變小”的技術(shù)。與上文提到的AIoT機器學(xué)習的基本范式一樣,TinyML也是要在云端收集數據并進(jìn)行訓練,而不同之處則在于訓練后模型的優(yōu)化和部署——為了適應MCU有限的計算資源,TinyML必須對模型進(jìn)行“深度壓縮”,通過(guò)模型的蒸餾(Distillation)、量化(Quantization)、編碼(Encoding)、編譯(Compilation)一系列操作后才能部署到邊緣終端上。

圖1:嵌入式設備中部署TinyML的示意圖(圖源:網(wǎng)絡(luò ))
其中,一些關(guān)鍵的技術(shù)包括:
提?。菏侵冈谟柧毢笸ㄟ^(guò)剪枝(pruning)和知識提取的技術(shù)手段,對模型進(jìn)行更改,以創(chuàng )建更緊湊的表示形式。
量化:在模型蒸餾后,通過(guò)量化實(shí)現以更少位數的數據類(lèi)型近似表示32位浮點(diǎn)型數據,在可接受的精度損失范圍之內減少模型尺寸大小、內存消耗并加快模型推理速度。
編碼:就是通過(guò)更有效的編碼方式(如霍夫曼編碼)來(lái)存儲數據,進(jìn)一步減小模型規模。
編譯:通過(guò)以上方式壓縮好的模型,將被編譯為可被大多MCU使用的C或C++代碼,通過(guò)設備上的輕量級網(wǎng)絡(luò )解釋器(如TF Lite和TF Lite Micro)運行。
在過(guò)去的兩年中,我們已經(jīng)明顯感覺(jué)到TinyML技術(shù)在升溫,廠(chǎng)商在該領(lǐng)域的投入也在加碼。根據Silent Intelligence的預測,未來(lái)5年中,TinyML將觸發(fā)超過(guò)700億美元的經(jīng)濟價(jià)值,并且保持超過(guò)27.3%的復合年均增長(cháng)率。
打造機器學(xué)習MCU新物種把“大象裝進(jìn)冰箱“,除了要在“大象”(也就是ML模型)身上下功夫,另一個(gè)維度上的努力就是要改造“冰箱”,也就是對我們熟悉的MCU進(jìn)行優(yōu)化和改造,令其能夠符合運行ML的需要。
比如,為了滿(mǎn)足在IoT邊緣設備中實(shí)現復雜機器學(xué)習功能的需要,Maxim Integrated就推出一款專(zhuān)門(mén)的低功耗ML微控制器MAX78000。該器件內置Arm Cortex-M4F處理器(100MHz)和32位RISC-V協(xié)處理器(60MHz),以及支持64層網(wǎng)絡(luò )深度的卷積神經(jīng)網(wǎng)絡(luò )加速器,可在電池供電應用中執行AI推理,而僅消耗微焦耳能量。與傳統的軟件方案相比,這種基于硬件加速的方案使得復雜的AI推理能耗降至前者的百分之一,而推理速度則可以快100倍。
預計具有類(lèi)似ML特性的新物種,將成為未來(lái)各家MCU大廠(chǎng)產(chǎn)品路線(xiàn)圖中的重要分支。

圖2:Maxim Integrated推出的低功耗ML微控制器MAX78000(圖源:Maxim)
綜上所述,與微處理器或者x86等嵌入式計算架構相比,MCU具有功耗很低、成本低、開(kāi)發(fā)周期短、上市快、實(shí)時(shí)性好、市場(chǎng)體量大等特點(diǎn),這些特性如果能夠和高能的機器學(xué)習結合在一起,其想象空間無(wú)疑是巨大的。
在促成兩者“結合”的過(guò)程中,如果能夠為開(kāi)發(fā)者提供支持機器學(xué)習功能的MCU“新物種”,如果能夠提供一個(gè)完整的開(kāi)發(fā)工具鏈,讓ML模型的優(yōu)化和部署更順手,那么把機器學(xué)習這只“大象”放進(jìn)MCU的“冰箱”,將成為信手拈來(lái)的輕松事。
更重要的是,這樣的趨勢剛剛萌芽,你完全有機會(huì )成為一只early bird,在這個(gè)全新的領(lǐng)域中自由的飛翔。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。