如何把機(jī)器學(xué)習(xí)這只“大象”,放進(jìn)MCU的“冰箱”?
人工智能(AI)在很多人眼里是,只是一種科幻片中不明覺厲的存在,而與普通人的生活之間隔著很遠(yuǎn)的距離。但是這樣的局面正在被改變,在未來(lái)5-10年中,AI將會(huì)以超乎我們想象的速度快速滲透到我們生活的方方面面。為什么這么講?一起隨我們往下看。
人工智能物聯(lián)網(wǎng)的基本范式之所以我們與AI之間會(huì)有“距離感”,主要是因?yàn)橐郧巴鍭I是一件比較奢侈的事。這種“奢侈”主要體現(xiàn)在,實(shí)現(xiàn)AI所依賴的機(jī)器學(xué)習(xí)(ML),在其訓(xùn)練和推理的過(guò)程中對(duì)算力有非常高的要求。為了應(yīng)對(duì)這樣的挑戰(zhàn),通過(guò)云計(jì)算集中算力做數(shù)據(jù)處理,也就成為了實(shí)現(xiàn)機(jī)器學(xué)習(xí)的一個(gè)經(jīng)典方法。
但是到了物聯(lián)網(wǎng)時(shí)代,這樣的模式受到了挑戰(zhàn)——集中式云計(jì)算帶寬和存儲(chǔ)資源消耗大、實(shí)時(shí)數(shù)據(jù)傳輸消耗電量多、數(shù)據(jù)在終端和云端之間傳輸延遲長(zhǎng)、數(shù)據(jù)傳輸和云端集中存儲(chǔ)過(guò)程中安全風(fēng)險(xiǎn)大……這些弊端讓人們認(rèn)識(shí)到單純的云計(jì)算不是包打天下的萬(wàn)能****。
因此,邊緣計(jì)算作為經(jīng)典云計(jì)算的補(bǔ)充,越來(lái)越得到大家的重視。按照邊緣計(jì)算的定義,將大部分計(jì)算任務(wù)放在邊緣設(shè)備上直接進(jìn)行處理,而只在必要的時(shí)候?qū)⒁恍┙?jīng)過(guò)預(yù)處理的數(shù)據(jù)傳輸至云端進(jìn)行“精加工”,這樣既能提升邊緣端實(shí)時(shí)響應(yīng)的速度和智能化水平,又能為網(wǎng)絡(luò)傳輸通路和云端數(shù)據(jù)中心減負(fù),因此這樣的混合計(jì)算模式顯然可以完美地堅(jiān)決傳統(tǒng)云計(jì)算的痛點(diǎn)。
種計(jì)算架構(gòu)的變遷,也對(duì)機(jī)器學(xué)習(xí)的模式產(chǎn)生了影響,使其從以計(jì)算為中心的模式向以數(shù)據(jù)為中心的模式轉(zhuǎn)變。這兩種模式中,前者是將機(jī)器學(xué)習(xí)的訓(xùn)練和推理都放在云端數(shù)據(jù)中心中完成,而后者則是由云端完成模型的訓(xùn)練,而將推理放在邊緣設(shè)備上完成,這也就形成了人工智能物聯(lián)網(wǎng)(AIoT)實(shí)施的基本范式。
向MCU擴(kuò)展機(jī)器學(xué)習(xí)的疆界顯而易見,邊緣計(jì)算使得機(jī)器學(xué)習(xí)的疆界大為擴(kuò)展,使其從數(shù)據(jù)中心的機(jī)房走向了更多樣性的網(wǎng)絡(luò)邊緣智能。但對(duì)于物聯(lián)網(wǎng)應(yīng)用來(lái)講,這似乎還不夠。因?yàn)樵谶吘壴O(shè)備上進(jìn)行推理,仍然需要相對(duì)強(qiáng)悍的算力,這通常需要包含ML協(xié)處理器在內(nèi)的較為復(fù)雜的異構(gòu)微處理器來(lái)實(shí)現(xiàn)加速,如此的配置在嵌入式領(lǐng)域已經(jīng)算是很“高端”的了。僅此一條,就會(huì)將不少對(duì)于功耗、成本、實(shí)時(shí)性敏感的應(yīng)用關(guān)在機(jī)器學(xué)習(xí)的門外。
因此,機(jī)器學(xué)習(xí)想要繼續(xù)開疆?dāng)U土,一個(gè)主攻方向就是要讓資源更簡(jiǎn)單、算力更有限的微控制器(MCU)也能夠跑得了、玩得起機(jī)器學(xué)習(xí)。IC Insights的研究數(shù)據(jù)顯示,2018年全球MCU的出貨量為281億顆,到2023年將這個(gè)數(shù)字將增長(zhǎng)到382億顆,而全球的MCU存量將數(shù)以千億計(jì),誰(shuí)要是能夠讓如此量級(jí)的設(shè)備玩轉(zhuǎn)機(jī)器學(xué)習(xí),其前途和錢途都將是不可限量的!
但對(duì)于任何一個(gè)夢(mèng)想來(lái)說(shuō),現(xiàn)實(shí)往往顯得比較“骨感”。將機(jī)器學(xué)習(xí)部署到MCU運(yùn)行,就好像是要將一只大象塞進(jìn)冰箱,而這個(gè)答案絕對(duì)不是一句腦筋急轉(zhuǎn)彎的玩笑話,而是需要在技術(shù)從兩個(gè)維度上去仔細(xì)考量。
為機(jī)器學(xué)習(xí)模型瘦身第一個(gè)維度,就是要考慮如何為ML模型這只“大象”進(jìn)行“瘦身”,也就是說(shuō)要發(fā)展出相應(yīng)的技術(shù),能夠在微控制器上部署、運(yùn)行“小型化”的機(jī)器學(xué)習(xí)推理模型。這種瘦身后的模型,需要滿足的條件包括:
運(yùn)行模型的終端功耗一般在mW級(jí)別,甚至更低;
占用的內(nèi)存一般要在幾百kB以下;
推理時(shí)間為ms級(jí)別,一般需要在1s內(nèi)完成。
為了實(shí)現(xiàn)這樣的目標(biāo),TinyML技術(shù)應(yīng)運(yùn)而生。故名思議,這就是一種能夠讓ML模型“變小”的技術(shù)。與上文提到的AIoT機(jī)器學(xué)習(xí)的基本范式一樣,TinyML也是要在云端收集數(shù)據(jù)并進(jìn)行訓(xùn)練,而不同之處則在于訓(xùn)練后模型的優(yōu)化和部署——為了適應(yīng)MCU有限的計(jì)算資源,TinyML必須對(duì)模型進(jìn)行“深度壓縮”,通過(guò)模型的蒸餾(Distillation)、量化(Quantization)、編碼(Encoding)、編譯(Compilation)一系列操作后才能部署到邊緣終端上。
其中,一些關(guān)鍵的技術(shù)包括:
提?。菏侵冈谟?xùn)練后通過(guò)剪枝(pruning)和知識(shí)提取的技術(shù)手段,對(duì)模型進(jìn)行更改,以創(chuàng)建更緊湊的表示形式。
量化:在模型蒸餾后,通過(guò)量化實(shí)現(xiàn)以更少位數(shù)的數(shù)據(jù)類型近似表示32位浮點(diǎn)型數(shù)據(jù),在可接受的精度損失范圍之內(nèi)減少模型尺寸大小、內(nèi)存消耗并加快模型推理速度。
編碼:就是通過(guò)更有效的編碼方式(如霍夫曼編碼)來(lái)存儲(chǔ)數(shù)據(jù),進(jìn)一步減小模型規(guī)模。
編譯:通過(guò)以上方式壓縮好的模型,將被編譯為可被大多MCU使用的C或C++代碼,通過(guò)設(shè)備上的輕量級(jí)網(wǎng)絡(luò)解釋器(如TF Lite和TF Lite Micro)運(yùn)行。
在過(guò)去的兩年中,我們已經(jīng)明顯感覺到TinyML技術(shù)在升溫,廠商在該領(lǐng)域的投入也在加碼。根據(jù)Silent Intelligence的預(yù)測(cè),未來(lái)5年中,TinyML將觸發(fā)超過(guò)700億美元的經(jīng)濟(jì)價(jià)值,并且保持超過(guò)27.3%的復(fù)合年均增長(zhǎng)率。
打造機(jī)器學(xué)習(xí)MCU新物種把“大象裝進(jìn)冰箱“,除了要在“大象”(也就是ML模型)身上下功夫,另一個(gè)維度上的努力就是要改造“冰箱”,也就是對(duì)我們熟悉的MCU進(jìn)行優(yōu)化和改造,令其能夠符合運(yùn)行ML的需要。
比如,為了滿足在IoT邊緣設(shè)備中實(shí)現(xiàn)復(fù)雜機(jī)器學(xué)習(xí)功能的需要,Maxim Integrated就推出一款專門的低功耗ML微控制器MAX78000。該器件內(nèi)置Arm Cortex-M4F處理器(100MHz)和32位RISC-V協(xié)處理器(60MHz),以及支持64層網(wǎng)絡(luò)深度的卷積神經(jīng)網(wǎng)絡(luò)加速器,可在電池供電應(yīng)用中執(zhí)行AI推理,而僅消耗微焦耳能量。與傳統(tǒng)的軟件方案相比,這種基于硬件加速的方案使得復(fù)雜的AI推理能耗降至前者的百分之一,而推理速度則可以快100倍。
預(yù)計(jì)具有類似ML特性的新物種,將成為未來(lái)各家MCU大廠產(chǎn)品路線圖中的重要分支。
綜上所述,與微處理器或者x86等嵌入式計(jì)算架構(gòu)相比,MCU具有功耗很低、成本低、開發(fā)周期短、上市快、實(shí)時(shí)性好、市場(chǎng)體量大等特點(diǎn),這些特性如果能夠和高能的機(jī)器學(xué)習(xí)結(jié)合在一起,其想象空間無(wú)疑是巨大的。
在促成兩者“結(jié)合”的過(guò)程中,如果能夠?yàn)殚_發(fā)者提供支持機(jī)器學(xué)習(xí)功能的MCU“新物種”,如果能夠提供一個(gè)完整的開發(fā)工具鏈,讓ML模型的優(yōu)化和部署更順手,那么把機(jī)器學(xué)習(xí)這只“大象”放進(jìn)MCU的“冰箱”,將成為信手拈來(lái)的輕松事。
更重要的是,這樣的趨勢(shì)剛剛萌芽,你完全有機(jī)會(huì)成為一只early bird,在這個(gè)全新的領(lǐng)域中自由的飛翔。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。