一文讀懂即將引爆的TinyML:在邊緣側實現超低功耗機器學習

物聯網智庫 發佈 2020-02-24T18:12:31+00:00

TinyMLas a Service and the challengesof machine learning at the edgeEngineering Tiny Machine Learning forthe EdgeAI at the Very, Very EdgeTi

作者:物女王(彭昭)

物聯網智庫 原創

轉載請註明來源和出處

導 讀

分布最廣的物聯網設備往往體積很小、電量有限。它們被作為終端硬體,通過嵌入式傳感器採集各種數據;計算能力有限,對功耗極為敏感。這類設備也能實現機器學習嗎?一個趨勢是,人工智慧AI正在加快速度從「雲端」走向「邊緣」,進入到越來越小的物聯網設備中。在終端和邊緣側的微處理器上,實現的機器學習過程,被稱為微型機器學習,即TinyML。


全文字數:5500字,閱讀時間:10分鐘

物女王:微小的TinyML蘊含大機會


這是我在【物女心經】專欄寫的第166篇文章。

分布最廣的物聯網設備往往體積很小、電量有限。它們被作為終端硬體,通過嵌入式傳感器採集各種數據;計算能力有限,對功耗極為敏感。這類設備也能實現機器學習嗎?

一個趨勢是,人工智慧AI正在加快速度從「雲端」走向「邊緣」,進入到越來越小的物聯網設備中。

在終端和邊緣側的微處理器上,實現的機器學習過程,被稱為微型機器學習,即TinyML。更準確的說,TinyML是指工程師們在mW功率範圍以下的設備上,實現機器學習的方法、工具和技術。

一批企業正在利用TinyML相關的技術與產品,探索如何在這些無處不在的小型設備上,更好的搭載機器學習,以便提高設備的分析能力和運行效率。

TinyML是不同技術領域和推動因素的交集,它位於物聯網設備、機器學習和邊緣計算之間的結合部,並因為多種驅動力的綜合作用,進展很快。

在剛剛過去的2月中旬,TinyML 2020峰會在矽谷舉行。英偉達、ARM、高通、谷歌、微軟、三星等公司紛紛展示了微型機器學習的最新成果。

這是TinyML峰會的第二屆。TinyML 2019峰會共吸引了來自90多家企業的數百名工程師參與,而本屆峰會的盛況更是空前,並且得出了很多重要結論:

  • 對於很多應用場景,TinyML技術和硬體已經進化到實用性較強的階段;
  • 無論是算法、網絡,還是低於100KB的ML模型,都取得了重大突破;
  • 視覺和音頻領域的低功耗需求快速增長。

TinyML峰會的主辦方,是在2019年7月剛剛成立的TinyML基金會,成員不僅包含各大知名企業,還包含GreeWaves、Eta Compute、Esperanto、Xnor、Picovoice等優秀的初創公司。

技術的進步和生態的發展,為TinyML的發展賦予了巨大的動能。目前,TinyML的影響力正在持續發酵,2020年勢必將有大批產品和解決方案問世,是一個值得重點把握和關注的領域。因此本文將為你匯總呈現TinyML的全景:

  • 什麼是TinyML?
  • 什麼是TinyML即服務?
  • TinyML為何重要?
  • TinyML的市場規模預測
  • TinyML的最新產品有哪些?
  • TinyML有哪些應用實踐?
  • TinyML的相關組織


01

什麼是TinyML

機器學習(ML)正在變得越來越小。

正如文初所述,TinyML是機器學習在微控制器上的應用,是超低功耗邊緣側人工智慧。

無論何時何地,數據都需要即時可用,這一趨勢越來越明顯。全球各行各業都在經歷由這種需求推動的「數字化轉型」。根據IDC的分析,到2025年,全球創建的數據中,超過四分之一的數據在本質上都是實時數據,而物聯網實時數據將占這部分數據的95%以上。

大量湧現的數據催生出了一系列全新的技術,機器學習、自然語言處理和人工智慧,它們將數據分析從不常見的、追溯式的實踐,轉變成為戰略決策和行動的前攝式推動因素。這些技術可以大大提高各種行業、環境和應用數據分析的頻率、靈活性和即時性。同樣根據IDC的預測,到 2025 年,屬於數據分析的全球數據總量將增長至原來的50倍,達到 5.2ZB;而機器學習所「觸及」的分析數據總量將增長至原來的100倍,達到1.4ZB。

目前存在的機器學習可以劃分為3種形態,雲端ML、邊緣ML和TinyML。TinyML正是針對占比超過95%以上的物聯網實時數據處理場景。

因此,目前針對不同類型的計算平台,在不同時間創建和使用的數據量,機器學習被較為清晰的劃分為3種類型,發揮著各自差異化的作用:

  • 雲端ML:是指機器學習在企業內部或雲端特定計算數據中心的應用。這些雲伺服器涵蓋所有類型,包括公共雲、私有雲和混合雲。此外,它還包括運營控制中心,例如管理電網或電話網絡的那些運營控制中心。
  • 邊緣ML:是指機器學習在不處於核心數據中心的,企業級計算機/設備中的應用。邊緣設備包括伺服器機房,現場伺服器,以及位於各個地區以加快響應速度為目的的小型數據中心。
  • TinyML:是指超低功耗的機器學習在物聯網各種終端微控制器中的應用。TinyML通常功耗為毫瓦(mW)級別甚至更低,因此可以支持各種不同的電池驅動的設備,和需要始終在線的應用。這些設備包括智能攝像頭、遠程監控設備、可穿戴設備、音頻採集硬體以及各種傳感器等等……

再看TinyML的發展現狀,從算法、軟體、硬體這三個維度分析,TinyML已經進化到「足夠好」,可以實際應用的階段。

TinyML是一個新興領域,是快速增長的機器學習技術和應用,是一片巨大的、未被充分開發的藍海。

數以億計的微控制器和各種各樣的傳感器結合在一起,在未來可能會激發一些非常有創意、更具實用價值的TinyML應用。

對TinyML做個簡單總結:

  • What:TinyML是指超低功耗(毫瓦量級)的邊緣側機器學習應用。
  • Why:TinyML可以提升大量物聯網設備的數據分析和決策能力。
  • How:TinyML的實現需要硬體、軟體和算法的整體性協同設計。
  • When:現在是著手布局TinyML的最好時機。

TinyML蘊含巨大機會,很多剛剛浮現。未來一兩年內,這個領域很可能會出現顯著進展。


02

什麼是TinyML即服務(TinyML-as-a-Service)

接著我們再來看看什麼是TinyML即服務。

這是愛立信率先提出的一個理念。

首先,我們需要明確的區分在物聯網終端中應用機器學習的兩種方式:

  • 為物聯網終端設備提供機器學習服務
  • 在物聯網終端設備中內嵌TinyML即服務

這兩種表述看似相像,實則不同。

在第一種情況下,為物聯網終端設備提供的機器學習服務,一般將所有ML任務都「外包」給邊緣設備和雲伺服器,終端設備則以接收者的身份,「被動」執行由邊緣和雲端下發的各種任務。

在第二種情況下,物聯網終端設備中內嵌TinyML即服務,「主動」參與智能決策與執行。雖然與雲端和邊緣相比,終端設備的資源非常有限,但TinyML即服務仍舊可以提升終端設備的分析能力,以便其能更好的處理實時物聯網數據。

因此TinyML即服務,真正的實現了將機器學習帶入到物聯網終端。

看到這裡,你或許有個疑問:機器學習生態系統非常龐大,而且對資源要求很高。物聯網設備那麼小,可以執行哪些機器學習任務?


為了更好的回答這個問題,我們先來說說TinyML和雲端ML之間的差異,它們分別處於兩個截然不同的世界。



上圖是從硬體和軟體的角度,定性和定量的比較TinyML和雲端ML的差異。與TinyML可以調用的資源相比,雲端ML簡直是「富豪」。為了順利推進,TinyML必須採用與雲端ML不同的思維模式。

在本文最初的三環圖中可以看到,TinyML和Linux之間並沒有太多交集。大量的物聯網設備並沒有運行Linux的能力,TinyML無法調用很多成熟的工具、應用和基於容器的虛擬化技術,必須另闢蹊徑的解決各種軟體、硬體和算法極為缺乏的問題,部署ML服務。


很多公司圍繞TinyML付出了各種努力,在後面的部分,我們將會介紹各種TinyML的產品和最新實踐。

當然,想要在終端物聯網設備中,獲得和雲端ML同樣的體驗是不現實的。TinyML主要實現的是推理(inference),也就是把從訓練中學習到的能力,應用到實際操作中去。

TinyML想要落地,還需要一整套成熟的架構。愛立信將TinyML即服務的生態系統拆分為3個基本組件:


  • 編譯器插件接口
  • 編排協議
  • 推理模塊規格

支持這三個組件,表示物聯網硬體可以滿足實現TinyML即服務的基本要求。下圖中更詳細的展示了這3個組件之間的相互作用:綠色代表編譯器插件接口,黃色代表編排協議和推理模塊規格這兩個部分。

實現TinyML即服務,需要面對的挑戰也是無比艱巨的:

  • TinyML不僅需要面臨邊緣ML的全部困難,而且解決問題的能力更加有限;
  • 如何借鑑雲端ML的成功經驗,順利推進TinyML在終端中的部署;
  • 如何為數量巨大的物聯網設備,都能提供TinyML的良好體驗。

03

TinyML為什麼重要?

看到這裡,你應該對TinyML的重要性已經有了自己的評估。

我們再來統一做個梳理。

TinyML的出現,是為了更好的緩解邊緣ML和雲端ML中,無法突破的多種問題,包括數據隱私、網絡帶寬、時間延遲、可靠性和能源效率:

  • 數據隱私:大量的最終用戶非常在意數據隱私,在數據開放與共享方面保持謹慎態度。很多用戶不願意將自己的數據交由第三方雲平台和邊緣服務提供商,進行存儲和管理。很多用戶傾向於定義清晰的「本地」物理邊界,以保存其關鍵的生產和運營數據。TinyML嘗試在物聯網設備上,直接處理和分析受限的敏感數據,保護了數據隱私。
  • 網絡帶寬:很多物聯網設備通過窄帶物聯網NB-IoT或者其他低功耗廣域物聯網通信協議與網絡通信,帶寬和數據傳輸能力極為有限。這些設備有強烈的在本地處理數據的需求,以減少數據的傳輸,降低網絡帶寬和傳輸功耗的壓力,避免在終端和邊緣設備之間形成帶寬瓶頸,影響整套物聯網解決方案的性能。
  • 時間延遲:隨著5G等技術的發展,海量物聯網設備將被部署,很多應用場景都對時間延遲非常敏感,希望數據可以被實時傳輸。TinyML通過將某些機器學習任務轉移到設備本身,來進一步減少網絡延遲的可能性,
  • 可靠性:在偏遠地區、海上平台、空間站、極端環境的應用中,網絡通信有可能無法保證始終覆蓋。因此在這些物聯網設備中,具備機器學習能力是一種必要功能。TinyML可以將某些邊緣和雲端中的機器學習能力移植到本地,提升可靠性。
  • 能源效率:許多物聯網設備都是電池供電,對於功耗的要求很高。通過極低功耗TinyML的數據分析,減少網絡傳輸的數據量,可以在一定程度上,節約物聯網終端中的電量消耗。

因為具備解決多種問題的潛力,有望突破成本、帶寬和功耗的限制,因此一經提出,TinyML就獲得了廣泛關注,並被賦予了較高期待。

04

TinyML市場規模預測

海量的物聯網設備位於網絡邊緣,並且這些設備有越來越小的趨勢,因此TinyML的未來發展,具有極大的想像空間。

目前全球有2500億個微控制器在各地運行,僅2018年一年就售出了281億個單元,IC Insights預測,到2023年,微控制器的年出貨量將增長到382億個。而且這些微控制器對應的設備,都有變得越來越智能的需求。

換句話說,未來分布在煙霧傳感器、心臟起搏器、車載終端中的2500億個微控制器,有可能可以執行以前只有計算機和智慧型手機才能處理的任務。

根據SilentIntelligence的預測,在未來5年,TinyML將觸發超過700億美元的經濟價值,並且保持超過27.3%的複合年均增長率(CAGR)。

TinyML的市場規模比邊緣ML和雲端ML都要大。

但是如此巨大的市場,卻較難開發。因此TinyML涉及到不同公司的協同,公司之間的商業模式也有本質區別。以TinyML領域的人工智慧SaaS服務商SensiML為例,其商業模式如下圖所示。

2019年1月,當時成立6年的SensiML被QuickLogic公司併購。根據QuickLogic的財報披露,QuickLogic以全部股票交易方式收購其所有已發行和流通在外的普通股,總價為1,169,752美元。

05

TinyML的最新產品

上圖是由Topio Networks整理的邊緣智能產業圖譜。

邊緣ML是個相對成熟的領域,很多企業都在其中精耕細作,他們當中的很多也已經開始了TinyML的嘗試。

ARM、高通、谷歌、博世、蘋果和微軟等公司,正試圖加速推進TinyML的落地,將其搭載於各種傳感器上。

比如高通推出了超低功耗的always-on計算機視覺解決方案。

該方案具有超低功耗,始終保持開啟狀態,使用系統電源小於1mA標準鋰電池,典型幀率為1-30 fps。

對應的產品Qualcomm® QCC112,已經可以實現商用。

博世推出了用於物聯網的MEMS傳感器,可實現TinyML應用。

蘋果以2億美元收購了TinyML初創公司Xnor.ai。Xnor.ai致力於開發高效、低功耗的TinyML應用,這些應用不需要強大的處理能力,也不需要連接到雲端,而是在設備上處理本地數據。

ARM最近公布了兩款晶片設計,它們分別是ARM Cortex-M55和Ethos-U55,可以實現在沒有雲端連接的設備上,執行機器學習的能力。

ARM認為這兩款產品的推出,將會開啟終端智能的新紀元。

ARM設想的用例是在智能手杖中的360度攝像頭,可以自動識別障礙物並上報主人,或者搭載於高鐵中的智能傳感器,可以就地識別問題並及時報警,避免延誤。

新品的推出將會極大的提升ML推理速度和能源效率。

不過預計相關的晶片,最早要到2021年初才能問世。

除了巨頭之外,初創公司在TinyML領域也非常活躍。

GreenWaves公司採用多個RISC-V內核,在超低功耗下實現TinyML應用。其第二代產品GAP9,擁有10個RISC-V核心。其中,一個作為結構控制器,另外9個形成計算集群。這些控制器和計算集群,運行於獨立的電壓和頻率域。並通過支持最先進的FD-SOL處理技術,進一步降低了功耗。

Eta Compute公司的ECM3532適用於低功耗IoT,擁有兩個核心,Arm Cortext-M3和DSP。可實現長待機狀態下的圖像處理和傳感聚合,功耗僅為100微瓦。該晶片具有512KB快閃記憶體和256KB SRAM,Eta Compute展示的案例包括語音、圖像和視頻識別,以及在工業傳感場景中的應用。


06

TinyML的應用實踐

TinyML尚處於應用的早期,在一些領域有了初步實踐:

車載應用:Swim.AI在實時數據傳輸的過程中使用TinyML,通過有效提升傳感器中對於實時交通數據的智能化處理能力,減少了乘客的等候時間、交通擁堵的機率、改善汽車的排放並提升乘車安全。

智能工廠:在製造業中,TinyML可以通過啟用實時決策,減少由於設備故障而導致的非計劃性停機。它可以根據設備狀況提醒工人必要時進行預防性維護。

QuickLogic的子公司SensiML在這個領域進行了不錯的嘗試,基於他們的產品可以快速構建智能傳感方案。

並且SensiML已經將TinyML用於工業預測性維護的相關場景中。

對於預測性維護應用的開發人員,SensiML智能化軟體工具包的優勢在於,它使開發人員能夠在數天、數周內構建智能物聯網傳感設備,而無需數據科學或嵌入式固件專業知識。

該軟體包括SensiMLData Capture Lab(數據捕獲實驗室),這是一個用於收集和整理訓練數據集的集成工具。

對於預測性維護,數據集是來自各類傳感器的時間序列數據。SensiML人工智慧軟體工具包分析標記數據,以生成可實施異常檢測的分類器算法。然後使用同一工具編譯算法以在所選硬體目標上運行,例如微控制器或QuickLogic自己的QuickAI片上系統平台。

智能零售:通過監控店內貨架,並在商品數量低於一定水平時,立即發送警報,TinyML可以防止零售端的商品脫銷。

智慧農業:農民可能因動物疾病而遭受嚴重損失。利用搭載TinyML的遠程監控設備,實時監測牲畜的心臟、血壓、體溫,土壤的溫濕度等狀況,可以幫助農民預測和預防養植物和牲畜流行病的發作。


07

TinyML的相關組織

每項成功的技術,都離不開核心團隊和相關組織的推進。

TinyML領域最活躍的組織是TinyML基金會,這是一個由工程師們自發構建的社群,成立於2019年7月,經常進行小型交流,並且每年舉辦TinyML峰會。

如果感興趣,你可以通過登錄下面的網站,了解關於TinyML基金會和峰會的更多信息:

https://tinymlsummit.org/

----寫在最後----

微小的TinyML將會變得很大,這個新生事物正在逐步成型的過程中,需要來自軟體側、硬體側、算法側、應用側等涉及多方的通力協作,才能有效構建完整的生態系統。

關於這個領域的最新進展,我還會持續追蹤。

本文小結:

1.TinyML是機器學習在微控制器上的應用,是超低功耗邊緣側人工智慧。TinyML通常功耗為毫瓦(mW)級別甚至更低,因此可以支持各種不同的電池驅動的設備,和需要始終在線的應用。

2.想要在終端物聯網設備中,獲得和雲端ML同樣的體驗是不現實的。TinyML主要實現的是推理(inference),也就是把從訓練中學習到的能力,應用到實際操作中去。

3.TinyML是一個新興領域,是快速增長的機器學習技術和應用,是一片巨大的、未被充分開發的藍海。


參考資料:

How Engineers Are Using TinyML to BuildSmarter Edge Devices

Engineers are Pushing Machine Learningto the World’s Humblest Microprocessors

How can we democratize machine learningon IoT devices?

TinyML as-a-Service: What is it and whatdoes it mean for the IoT Edge?

TinyML as a Service and the challengesof machine learning at the edge

Engineering Tiny Machine Learning forthe Edge

AI at the Very, Very Edge

TinyML: The challenges and opportunitiesof low-power ML applications

TinyML Sees Big Hopes for Small AI

Adapting the Microcontroller for AI inthe Endpoint

AI for Edge landscape

關鍵字: