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