邊緣運算的未來:在MCU執行深度學習

作者 : Markus Levy,恩智浦半導體(NXP)人工智慧與機器學習技術總監

現在機器學習(ML)不再需要能夠提供每秒數兆次運算(TOPS)的處理器──越來越多的案例顯示,部分嵌入了ML加速器的最新微控制器(MCU),可將ML導入邊緣裝置...

幾年前一般認為機器學習(ML)甚至是深度學習(DL)只能在高階硬體執行,而訓練及推論則在邊緣由閘道器、邊緣伺服器或資料中心執行。當時這樣的假設很合理,因為在雲端和邊緣之間分配運算資源的趨勢才剛剛起步。不過產學密集的研發成果,讓這一切都徹底改變。

現在ML不再需要能夠提供每秒數兆次運算(TOPS)的處理器──越來越多的案例顯示,部分嵌入了ML加速器的最新微控制器(MCU),可將ML導入邊緣裝置。這類裝置不僅能執行ML,更能以低成本及非常低的耗電量妥善執行,僅在絕對必要時連線至雲端。

簡單來說,微控制器搭配整合式ML加速器,將是在感測器導入運算功能的下一步,例如麥克風、攝影機,以及監控環境狀況的感測器等等,以產生資料實現物聯網(IoT)的所有效益。

邊緣有多深?

一般普遍將邊緣視為IoT網路最遠的點,通常是進階閘道器或邊緣伺服器。不過實際上這並不是邊緣終點;邊緣終點是在使用者附近的感測器。因此在使用者附近盡可能設置分析能力是合理作法,而微控制器是這項任務的理想選擇。

 

 

各種寬度乘法器的 MobileNet V1 模型範例,顯示對參數數量、運算及準確度產生的重大影響。不過如果只是將寬度乘法器由 1.0 變更為 0.75,對排名第 1 的準確度影響非常小,但會對參數數量及運算造成重大影響。

(圖片來源:NXP)

 

例如單主機板電腦也可用於邊緣處理,因為這類電腦具備卓越效能,如果配置為叢集則可媲美小型超級電腦。不過這類設備仍然過於龐大及昂貴,不適合大規模應用所需的數百或數千台佈署量。這類設備也需要外部DC電源,在部分情況下可能無法因應需求,而MCU僅需耗用以毫瓦(milliwatts)為單位的電量,並可利用鈕扣型電池或甚至幾個太陽能電池供電。

所以各界對微控制器在邊緣執行ML的關注程度,使其成為非常熱門的開發領域,並不令人感到驚訝。現在這項領域甚至有了名稱,也就是微型機器學習(TinyML)。TinyML的目標是在資源受限的小型低功率裝置(特別是微控制器) 執行推論,最終目標則是執行訓練,而不是在大型平台或雲端執行。這需要縮減神經網路模型大小,以配合這類裝置相對不多的處理、儲存及頻寬資源,無須大幅減少功能及準確度。

這類資源最佳化計畫可讓裝置接收足夠的感測器資料以發揮效用,同時微調準確度及減少資源需求。雖然資料仍可能送往雲端(或是先送往邊緣閘道再送往雲端),但資料量將大幅減少,因為已經執行相當多的分析作業。

目前相當熱門的TinyML範例之一,就是以攝影機為基礎的物件偵測系統,其中雖然能夠擷取高解析度影像,但儲存容量有限,需要降低影像解析度。不過如果攝影機具備在裝置進行分析的能力,就可以僅擷取關注物件而不是完整場景,減少相關影像數量,進而維持較高的解析度。這項功能一般出現在功能更強大的大型裝置,不過TinyML技術使其在微控制器實現。

麻雀雖小五臟俱全

雖然 TinyML 還相當新,但卻已經產生令人驚訝的成果,能夠在損失最少準確度的情況下進行推論(使用相對較低階的微控制器)及訓練(使用較為強大的微控制器)。近期應用範例包括語音及臉部辨識、語音指令及自然語言處理,甚至能夠同時執行多項複雜的視覺演算法。

事實上,這代表成本不到2美元的微控制器,能夠以500MHz Arm Cortex-M7核心及28KB至128KB的記憶體提供所需效能,讓感測器真正智慧化。例如恩智浦的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 MB RAM及繪圖加速功能。在使用3.3 VDC電源的情況下,耗電量一般不會超過數毫安培(mA)。

 

機器學習應用案例。

(圖片來源:NXP)

 

淺談 TOPS

並不是只有消費者使用單一標準定義效能;設計人員一向都是如此,而行銷部門也愛好這種作法,因為這樣可以將規格作為主角,輕鬆在裝置之間做出區隔,至少表面上是如此。CPU就是典型範例,多年來都是以時脈頻率定義效能;不過還好對設計人員及消費者而言,目前已不再採用這種作法。

使用單一標準評定CPU,就像是以引擎紅線(EETT編按:即危險轉速區域)評估汽車性能一樣。這雖然不是毫無意義,但與引擎的強大程度沒什麼關係,也不代表汽車性能有多麼優越,因為這些特性是由許多其他因素共同決定。

可惜的是,神經網路加速器也日漸採取相同作法,包括高效能MPU或微控制器之中的神經網路加速器,都以每秒數十億或數兆次運算作為說明,因為這是一項容易記憶的數據。不過實際上GOPS及TOPS本身是沒有意義的標準,僅代表實驗室的測量結果(無疑是最佳結果),而不是實際作業環境中的測量結果。

舉例來說,TOPS並未考量記憶體頻寬限制、所需的CPU額外負荷、預先處理及後處理以及其他因素。如果將以上所有因素列入考量,例如實際運作時特定主機板的效能,則系統級效能可能只有資料表上TOPS值的50%或60%。

以上所有數值所呈現的內容,是硬體內部運算元件數量乘以其時脈速度的結果,而不是硬體在需要運作時能夠提供可用資料的頻率。如果資料總是立即可用、耗電量不是問題、記憶體限制不存在,且演算法能夠緊密無縫地對應至硬體,那這類數據就更具意義。不過真實世界並沒有如此理想的環境。

如果應用在微控制器內部的ML加速器,這項標準就更不具價值。這類微型裝置一般的數值為1至3TOPS,不過仍能提供許多ML應用所需的推論能力。這類裝置也仰賴專為低功率ML應用所設計的Arm Cortex處理器。除了支援整數及浮點運算,以及微控制器中的許多其他功能,顯然TOPS或任何其他單一標準,並無法適當定義裝置本身或在系統中的效能。

結論

 在感測器內建或綁定的微控制器(例如相機和攝影機)執行推論,成為目前的新興領域,因為物聯網領域正日漸朝向盡可能在邊緣執行處理作業的目標邁進。這表示微控制器內部應用處理器及神經網路加速器的開發步調將快速進行,並將經常出現更專業的解決方案。目前的趨勢是將 AI 導向程度更高的功能(例如神經網路處理),與微控制器內部的應用處理器整合,無須大幅增加耗電量或尺寸。

現今模型可於更強大的CPU或GPU進行訓練,然後在微控制器使用TensorFlow Lite等推論引擎實作,以縮小模型大小,因應微控制器的資源需求。其中可輕鬆擴充,因應更高的ML需求。相信很快這類裝置不僅能夠執行推論,也能進行訓練,讓微控制器實際成為更難纏的競爭對手,對抗更大規模且更加昂貴的運算解決方案。

 

本文同步刊登於《電子工程專輯》雜誌2020年10月號

責編:Judith Cheng

(參考原文:Deep Learning on MCUs is the Future of Edge Computing,by Markus Levy)

 

 

掃描或點擊QR Code立即加入 “EETimes技術論壇” Line 群組 !

 EET-Line技術論壇-QR

發表評論