在邊緣實現機器學習都需要什麼?

說到機器學習,在計算方面,大多數邊緣應用程序只執行推理,然而,隨着 連邦學習(Federated Learning)等新興技術的出現,這種情況在未來可能會發生變化。

但就目前而言,在小型微控制器和其他邊緣設備上運行機器學習模型已經成爲可能,這將帶來各種各樣有趣的應用。

邊緣設備的定義在不同的應用中會有很大的差異,它包括從智能手機到自動駕駛汽車,以及介於兩者之間的各種設備。目前,數量最多的邊緣設備(也可以連接到網絡),很有可能就是智能手機。越來越多的其他設備配備了小型 MCU(microcontroller,微控制器),它們不連接任何網絡,用於家庭花園的智能噴水滅火系統等應用。

image

各種邊緣設備

具體來說,全球智能手機的總數量已達數十億部。連接的智能設備數量在不斷增加,從智能恆溫器到門鈴,再到送貨機器人。這些設備大多靠電池運行(也有像智能助理這樣的例外),並連接到 wifi、藍牙和/或移動網絡。

在這些設備上進行機器學習時,通常會將設備傳感器的數據發送回雲端進行推理,該過程具有以下特點:

  • 消耗更多的能量(通過有線或無線網絡移動數據會消耗能量)。

  • 導致應用程序受到較高延遲的影響。

  • 由於數據傳輸和雲計算的成本,導致費用更高。

  • 需要額外的工作來處理數據隱私和安全問題。

這些高層次的優勢使得機器學習模型嵌入到設備上變得至關重要,不過,這也帶來了更多的數據隱私和安全問題。

說到機器學習,在計算方面,大多數邊緣應用程序只執行推理,然而,隨着連邦學習(Federated Learning)等新興技術的出現,這種情況在未來可能會發生變化。

但就目前而言,在小型微控制器和其他邊緣設備上運行機器學習模型已經成爲可能,這將帶來各種各樣有趣的應用。請繼續閱讀本文,瞭解如何開始爲邊緣設備開發機器學習應用程序。

邊緣架構

由於邊緣產品的類型不同,它們的架構也不盡相同。目前使用的不同架構可以分爲 5~6 類,如下圖所示:

image

邊緣應用架構

基於 ARM Cortex-A 架構的處理器賦能了今天幾乎所有的智能手機,而基於 Cortex-M 的微控制器則用於鍵盤、智能手錶、安全攝像頭以及我們周圍的大量其他產品。

基於 x86 的筆記本計算機、上網本等也有數以百萬計的人使用,它們還用於 ATM 和各種其他產品。一些智能手機還搭載了高通(Qualcomm)和華爲等公司開發的定製機器學習加速器

在功耗方面,不同的產品可以分爲三類,從超低功耗的 Cortex-M 系列微控制器,到 NVIDIAMobileye德州儀器(Texas Instruments)的高性能自主汽車專用系統。

image

按功耗大致分組

ARM 公司最近推出了帶有 NPU(Neural Processing Unit,神經處理單元)的 Ethos-N 系列處理器,該處理器與 Cortex-M 處理器相結合,可用於各種低功耗應用。NDP101 是一款低功耗 SoC 芯片,用於語音應用中的關鍵詞分類。

模型動物園與模型

由於邊緣設備的算力和內存有限,因此,邊緣機器學習模型的關鍵屬性是:

  1. 模型尺寸小:可通過量化(quantization)、剪枝(pruning)等方式實現。

  2. 更少的計算:可使用更少的層和不同的操作(如深度卷積)來實現。

  3. 僅執行推理:在大多數情況下,僅在設備上執行推理。

給定模型的優化過程會因應用程序而異:在某些應用程序中,如自動駕駛汽車,對準確率要求最高,但可能不會執行量化等模型壓縮技術。

image

框架選擇的流程圖

針對特定平臺進行優化的預訓練模型可以顯著提升推理速度,也可以用於遷移學習來訓練特定應用的模型。它們還提供了一個很好的基準來比較自定義模型,並且還可以幫助開發團隊更快地達到 MVP。TensorFlowPyTorch 是兩個最流行的機器學習框架,它們可以在樹莓派(Raspberry Pi)和 NVIDIA Jetson 等任何 Linux 兼容板上運行。下面是一些專門針對邊緣模型的模型動物園和庫。

  • Intel OpenVINO Model Zoo:Intel 提供了大量針對 Intel x86 CPU 優化的預訓練模型。免費模型可用於人臉檢測、行人檢測、人體姿勢估計等用例。OpenVINO 工具箱可以用來優化 Intel 產品的自定義模型。

  • iOS Core ML:像 GPT-2 和 BERT 這樣的最先進模型的精簡版可以在 iOS 設備上使用。

  • TensorFlow Lite:是 TensorFlow 生態系統的一部分,可以用在 Android、iOS 和其他各種邊緣設備上部署機器學習模型。預訓練模型可用於對象檢測、姿勢估計,使用 mobileBert 進行問答等等,這些都是針對 Android 設備的。ML KitFirebase 生態系統的另一個選項,也可以在 iOS 上使用。ML Kit 還有一個視覺 API,可以用來識別 400 個常見物體的圖像,還可以使用 AutoML Vision Edge 來訓練自定義模型。

  • PyTorch Mobile:是 PyTorch 生態系統的一部分,支持 Android、iOS 和其他邊緣設備。PySyft 是一個用於保護機器學習隱私的庫,與 PyTorch 一起使用,可以用在一些邊緣設備上。

  • PocketFlow 是來自騰訊公司的一個開源項目,用於深度學習模型的自動壓縮和加速。

  • ARM CMSIS NN:該庫爲 ARM Cortex-M 系列微控制器的卷積等常見操作提供了高效實現。在這篇關於 CMSIS-NNN 的論文中,ARM 描述了在 Cortex-M7 MCU 上運行 CNN 所做的各種優化。這裏有幾個例子。

  • Coral Edge TPU:Edge TPU 的預訓練模型可用於圖像分類、對象檢測和圖像分割等。

  • Fritz AI:爲 iOS 和 Android 提供了預訓練模型,可免費上手和實驗。此外,Fritz AI 還有一個端到端的移動模型構建平臺,目前還處於早期訪問階段。

雲平臺

image

硬件

傳感器

在邊緣應用中,傳感器是關鍵,因爲它們幫助我們收集和測量不同類型的環境信息,如溫度、聲音、圖像、運動、溼度等。下面是一些有趣的傳感器:

  • ST LSM6DSOX Inertial Sensor:這是一個帶有三軸加速度計和三軸陀螺儀的慣性傳感器。它還有一個機器學習核心,有 8 個獨立的決策樹,可以用來對運動模式進行分類。

  • Sensor TagSensor TileSensor Puck 是帶有 BLE(Bluetooth low energy,低功耗藍牙)和溼度、溫度、環境光等多種環境傳感器的開發套件。

邊緣開發套件

有幾家公司(這裏列出了一長串這類公司的名單)正在研究深度學習加速器,用於深度神經網絡的訓練/推理;然而,目前可供開發人員開始開發的產品還很少。下面是一些現在可以購買的開發板列表,用於開發邊緣人工智能應用:

低功耗板

image

Sparkfun Edge 和 Lattice iCE40 開發板

中功耗板

image

Coral Edge TPU 開發板和 NVIDIA Jetson Nano 開發板
  • Google Edge TPU:Google 前不久宣佈的 Edge TPU,現已可購。這是 Coral 平臺的一部分。開發板還包含一個來自 NXP 的 Cortex-A53 SoC,可以獨立使用,並且有攝像頭的連接器等。它可以使用 TensorFlow Lite 進行編程。Google 提供了一些性能數據,見這裏。開發板(如上圖)可以在這裏購買。費用:149.9 美元

  • NVIDIA Jetson Nano:這是 NVIDIA 在 GTC 2019 上發佈的 Edge AI 最新深度學習開發板。Jetson Nano 的主要優勢之一是它包含了四核 ARM CPU,可以運行 Linux 系統,而 Intel 神經計算棒和 Edge TPU 加速棒需要單獨的板子,比如樹莓派等。它可以使用 TensorFlow、PyTorch 進行編程。費用:99 美元

有關 Coral Edge TPU 開發板和 NVIDIA Jetson Nano 的更詳細比較,請查看這篇博文:《Google Coral Edge TPU 開發板與 NVIDIA Jetson Nano 開發板的硬件比較》(Google Coral Edge TPU Board Vs NVIDIA Jetson Nano Dev board — Hardware Comparison)。

  • Intel Neural Compute Stick 2(Intel 神經計算棒 2):這款 USB 外觀的開發板採用了 Intel Myriad X 視覺處理單元(Vision processing unit,VPU) 。在 Myriad X 之前,Intel/Movidius 已經推出了 Myriad2,爲第一代 Intel 神經計算棒提供動力。要進行編程,必須使用 IntelOpenVino 工具包。可在這裏購買。費用:99 美元

image

Intel 神經計算棒

image

Coral USB
  • Coral USB Accelerator:這包含了 USB 外形尺寸類似於 NCS 2 的 Google Edge TPU,它可以與樹莓派或任何筆記本計算機一起使用。費用:74.99 美元

  • Sipeed MAix M1 (RISC-V + Kendryte 120):這款用於樹莓派的 Grove Hat,目前僅售 24.50 美元(預購結束後爲 28.90 美元)。它擁有雙核 600MHz RISC-V CPU 和 Kendryte K120 16 位神經網絡處理器。費用:24.50 美元

image

  • Raspberry Pi(RPi,樹莓派):樹莓派採用四核 ARM Cortex-A7 系列處理器,可與 Edge TPU 加速棒結合,打造功能強大、易於使用的邊緣人工智能平臺。費用:35 美元

image

AWS DeepLens:這是來自 AWS 的開發套件,面向計算機視覺應用的開發人員。它可以在 Intel Atom 處理器上運行推理,並可以輕鬆地與 AWS IoT 服務集成,將推理結果發送到雲端。費用:199 美元

image

結 語

在邊緣開發人工智能應用需要使用受限的資源(內存、計算等),並對費用、功耗和麪積進行優化,所有這些都使其成爲當今人工智能領域最具挑戰性的問題之一。

隨着互聯設備的興起,以及這些嵌入式設備上的應用開發軟件的發展,我們將看到更多的邊緣應用使用機器學習來解決醫療、節能和機器人等領域的新問題,這裏僅舉幾個例子。

作者介紹

Manu Suryavansh,機器學習工程師。

原文鏈接

https://heartbeat.fritz.ai/machine-learning-at-the-edge-μml-2802f1af92de

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章