就在幾年前,人們普遍認(rèn)為,機(jī)器學(xué)習(xí)(ML)甚至深度學(xué)習(xí)(DL)只能通過由網(wǎng)關(guān)、邊緣服務(wù)器或數(shù)據(jù)中心執(zhí)行的邊緣訓(xùn)練和推理,在高端硬件上完成。這種想法在當(dāng)時不無道理,因?yàn)樵谠贫撕瓦吘壷g分配計算資源的趨勢尚處于早期發(fā)展階段。但如今,得益于業(yè)界和學(xué)術(shù)界的艱苦研發(fā)和不懈努力,情況已然發(fā)生了翻天覆地的變化。
處理器不必提供每秒數(shù)萬億次操作(TOPS),也能執(zhí)行機(jī)器學(xué)習(xí)(ML)。越來越多的用例證明,只要使用最新的微控制器(部分帶有嵌入式 ML 加速器),就能在邊緣設(shè)備上開展機(jī)器學(xué)習(xí)。
只需極低的成本和極低的功耗,這些設(shè)備就能出色地完成 ML,僅在絕對必要時才連接到云。簡而言之,內(nèi)置 ML 加速器的微控制器代表著物聯(lián)網(wǎng)發(fā)展的下一階段:在生產(chǎn)數(shù)據(jù)的源頭,例如麥克風(fēng)、攝像頭和監(jiān)控其他環(huán)境條件的傳感器中引入智能計算,并使物聯(lián)網(wǎng)應(yīng)用受益。
邊緣有多深?
目前普遍認(rèn)為邊緣是物聯(lián)網(wǎng)網(wǎng)絡(luò)的最遠(yuǎn)點(diǎn),但通常指先進(jìn)的網(wǎng)關(guān)或邊緣服務(wù)器。不過,這并不是邊緣的盡頭。真正的盡頭是鄰近用戶的傳感器。所以,合乎邏輯的做法是將盡可能多的分析能力安排在鄰近用戶的位置,而這也正是微處理器所擅長的。
不同寬度乘數(shù)下的多個 MobileNet V1 模型。圖中可見,寬度乘數(shù)對參數(shù)的數(shù)量、計算結(jié)果和精度都有顯著影響。但是,如果只是將寬度乘數(shù)從 1.0 改為 0.75,TOP-1 精度并無太大變化,參數(shù)的數(shù)量和算力需求卻明顯不同。
可以說,單板計算機(jī)也能用于邊緣處理,因?yàn)樗鼈兙哂谐錾男阅?,其集群可媲美一臺小型超級計算機(jī)。但問題是尺寸依然過大,而且對于大規(guī)模應(yīng)用所需的成百上千次部署而言,成本過于高昂。它們還需要連接外部直流電源,在某些情況下可能超出可用范圍;相比之下,MCU 的功耗只有幾毫瓦,并且可以使用紐扣電池或一些太陽能電池來供電。
毫無意外,用于在邊緣執(zhí)行 ML 的微控制器成為了十分熱門的研發(fā)領(lǐng)域。甚至還有專有名稱——TinyML。TinyML 的目標(biāo)就是允許在資源受限的小型低功耗設(shè)備(尤其是微控制器),而不是在更大的平臺或云端上執(zhí)行模型推理,甚至最終能實(shí)現(xiàn)模型訓(xùn)練。這就需要縮小神經(jīng)網(wǎng)絡(luò)模型的尺寸,以容納這些設(shè)備中相對較少的算力、存儲空間和帶寬資源,同時不會嚴(yán)重降低功能性和精度。
這些方案對資源進(jìn)行了優(yōu)化,使設(shè)備可以采集充足的傳感器數(shù)據(jù)并發(fā)揮恰當(dāng)作用,同時微調(diào)精度并降低資源要求。因此,雖然數(shù)據(jù)可能仍被發(fā)送到云端(或者可能是先發(fā)送到邊緣網(wǎng)關(guān),然后再發(fā)送到云端),但數(shù)量少得多,因?yàn)橄喈?dāng)大一部分的分析已經(jīng)完成。
現(xiàn)實(shí)中,一個十分常見的 TinyML 用例就是基于攝像頭的對象檢測系統(tǒng),盡管能夠捕獲高分辨率圖像,但由于存儲空間有限,只能降低圖像分辨率??墒牵绻麛z像頭內(nèi)置了數(shù)據(jù)分析功能,則只會捕獲所需的對象而非整個場景,而且因?yàn)橄嚓P(guān)的圖像區(qū)域更小,能保留高分辨率圖像。這種功能通常只見于更大型、性能更強(qiáng)大的設(shè)備,但是 TinyML 技術(shù)使得微控制器也能實(shí)現(xiàn)。
小巧卻不簡單!
盡管 TinyML 還只是相對較新的一種范式,但已經(jīng)表現(xiàn)出了不容小覷的推理能力(即便使用的是相對溫和的微控制器)和訓(xùn)練(在性能更強(qiáng)大的微控制器上)成效,且精度損耗控制在最低限度。最近的示例包括:語音和面部識別、語音命令和自然語言處理,甚至同時運(yùn)行多個復(fù)雜的視覺算法。
實(shí)際說來,這意味著一臺裝載 500MHz Arm Cortex-M7 內(nèi)核的微控制器,花費(fèi)不超過 2 美元,內(nèi)存容量從 28 Kb 到 128 KB 不等,卻能提供強(qiáng)大的性能,使傳感器實(shí)現(xiàn)真正智能。例如,恩智浦的 i.MX RT 跨界 MCU 就使用運(yùn)行 TensorFlow Lite 運(yùn)行時引擎的小型 ML 模型實(shí)現(xiàn)了此種性能。以基本對象識別為例,通常在 200ms 內(nèi)即可完成,而且精度接近 95%。
即使在這個價格和性能水平上,這些微處理器配備了多個安全功能(包括 AES-128),并支持多個外部存儲器類型、以太網(wǎng)、USB 和 SPI,同時還包含或支持多種類型的傳感器以及藍(lán)牙、Wi-Fi、SPDIF 和 I2C 音頻接口。價格稍高一些的設(shè)備則是通常搭載 1GHz Arm Cortex-M7、400MHz Cortex-M4、2 Mbytes RAM 和圖形加速。采用 3.3 VDC 電源供電時,功耗一般遠(yuǎn)低于單板計算機(jī)。
TOPS 有意義嗎?
會使用單一指標(biāo)來評判性能的不僅是消費(fèi)者;設(shè)計者和市場營銷部門也一直如此,因?yàn)樽鳛橐豁?xiàng)主要規(guī)格,它可以輕松地區(qū)分設(shè)備。一個經(jīng)典示例就是 CPU,多年來人們一直通過時鐘速率來評判性能;幸運(yùn)的是,現(xiàn)在的設(shè)計者和消費(fèi)者已不再如此。只用一個指標(biāo)評定 CPU 性能就像是按照發(fā)動機(jī)的峰值轉(zhuǎn)速來評估汽車性能。盡管峰值轉(zhuǎn)速有一定參考意義,但幾乎無法體現(xiàn)發(fā)動機(jī)的強(qiáng)勁或汽車的駕駛性能,這些特性取決于許多其他因素。
遺憾的是,同樣的尷尬也發(fā)生在以每秒數(shù)十億次或上萬億次操作來界定的神經(jīng)網(wǎng)絡(luò)加速器(包括高性能 MPU 或微控制器中的加速器),原因一樣,簡單的數(shù)字好記。在實(shí)踐中,單獨(dú)的 GOPS 和 TOPS 只是相對無意義的指標(biāo),代表的是實(shí)驗(yàn)室而非實(shí)際操作環(huán)境中的一次測量結(jié)果(毫無疑問是最好的結(jié)果)。例如,TOPS 沒有考慮內(nèi)存帶寬的限制、所需要的 CPU 開支、預(yù)處理和后處理以及其他因素。如果將所有這些和其他因素都一并考慮在內(nèi),例如在實(shí)際操作中應(yīng)用于特定電路板時,系統(tǒng)級別的性能或許只能達(dá)到數(shù)據(jù)表上 TOPS 值的 50%或 60%。
所有這些數(shù)字都是硬件中的計算單元乘以對應(yīng)的時鐘速率所得到的數(shù)值,而不是需要運(yùn)行時數(shù)據(jù)已經(jīng)就緒的頻率。如果數(shù)據(jù)一直即時可用,也不存在功耗問題和內(nèi)存限制,并且算法能無縫映射到硬件,則這種統(tǒng)計方式更有參考價值。然而,現(xiàn)實(shí)中并沒有這樣理想的環(huán)境。
當(dāng)應(yīng)用于微控制器中的 ML 加速器時,該指標(biāo)更沒有價值。這些小型設(shè)備的 GOPS 值通常在 1-3 之間,但仍然能夠提供許多 ML 應(yīng)用中所需要的推理功能。這些設(shè)備也依賴專為低功耗 ML 應(yīng)用而設(shè)計的 Arm Cortex 處理器。除了支持整數(shù)和浮點(diǎn)運(yùn)算以及微控制器中的許多其他功能之外,TOPS 或其他任何單一指標(biāo)明顯無法充分定義性能,無論是單獨(dú)使用還是在系統(tǒng)中都是如此。
邊緣計算的未來
隨著物聯(lián)網(wǎng)領(lǐng)域進(jìn)一步發(fā)展,在邊緣執(zhí)行盡可能多的處理,逐漸出現(xiàn)一種需求,即在直接位于或附著于傳感器上的微控制器上執(zhí)行推理。也就是說,微處理器中應(yīng)用處理器和神經(jīng)網(wǎng)絡(luò)加速器的發(fā)展速度十分迅猛,更完善的解決方案也層出不窮??傮w趨勢是將更多以人工智能為中心的功能(例如神經(jīng)網(wǎng)絡(luò)處理)與應(yīng)用處理器一起整合到微處理器中,同時避免功耗或尺寸顯著增加。
如今,可以先在功能更強(qiáng)大的 CPU 或 GPU 上訓(xùn)練模型,然后在使用推理引擎(例如 TensorFlow Lite)的微控制器上實(shí)施,從而減小尺寸以滿足微控制器的資源要求??奢p松擴(kuò)展,以適應(yīng)更高的 ML 要求。相信不久之后,推理和訓(xùn)練就能在這些設(shè)備上同時執(zhí)行,讓微控制器的競爭力直追更大、更昂貴的計算解決方案。