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