網頁

2025年2月17日 星期一

【TinyML論文導讀】AIfES: A Next-Generation Edge AI Framework

Jack OmniXRI, 2025/02/17 整理製作

本論文導讀是由 NotebookLM 協助翻譯及摘要,再經由人工微調,非授權版本,僅供個人學習使用,請勿移作它用。更完整內容請參考原始論文

  • Cite:
    L. Wulfert et al., "AIfES: A Next-Generation Edge AI Framework," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 46, no. 6, pp. 4519-4533, June 2024, doi: 10.1109/TPAMI.2024.3355495.
    keywords: {Training;Data models;Artificial intelligence;Support vector machines;Hardware acceleration;Libraries;Performance evaluation;Edge AI Framework;embedded systems;machine learning framework;on-device training;resource-constrained devices;TinyML},
  • Github:
    https://github.com/Fraunhofer-IMS/AIfES_for_Arduino
  • Document:
    https://fraunhofer-ims.github.io/AIfES_for_Arduino/index.html

論文重點摘要

  • AIfES 是一個新一代的邊緣人工智慧 (AI) 框架,旨在將機器學習 (ML) 整合到最小的嵌入式裝置中,為影像或語音處理等實際應用提供本地智慧。
  • 傳統的邊緣 AI 框架在目標硬體方面的靈活性較低,且對自訂硬體加速器整合的支援有限,AIfES 旨在克服這些挑戰。
  • AIfES 具有模組化結構,遵循 ML 框架的結構,包含四個步驟:(1) 建立模型,(2) 選擇損失,(3) 選擇優化器,(4) 訓練模型。
  • AIfES 允許使用者輕鬆轉移經驗,並且其 ailayer 模組提供多種功能類型供選擇。使用者可以為每個功能指定資料類型,從而節省記憶體,或在沒有浮點運算單元 (FPU) 的裝置上實現更快的訓練或推論。
  • AIfES 是第一個在 ML 框架中以模組化方式使用硬體加速器的框架。軟體的模組化設計允許新增使用者特定的硬體加速器、功能類型、資料類型或模組,從而根據使用者的需求和偏好自訂框架。
  • AIfES 採用 C 語言和最佳化模組,無需作業系統即可實現 ML 模型的裝置上訓練和推論。
  • AIfES 支援模組化的硬體加速器新增,以提高推論和裝置上訓練的效能。它還包括用於啟動功能的軟體最佳化模組。
  • AIfES 是一個開源邊緣 AI 框架,為資源受限裝置提供推論和裝置上訓練,並且具有硬體不可知和軟體模組化的特性。
  • AIfES 允許在執行階段調整或變更網路架構。
  • AIfES 支援量化,以適應不同的硬體架構,例如沒有 FPU 的 8 位元 MCU。
  • AIfES 的主要限制在於原生矩陣乘法的實作,這導致 ANN 的效能低於 TFLM。未來將透過更先進的矩陣乘法方法和最佳化 ANN 裝置上訓練來增強 AIfES。
  • AIfES 採用模組化架構,由 ailayer、ailoss 和 aiopti 模組組成,每個模組都有不同的層級:類型、實作(使用硬體加速器)和資料類型。
  • AIfES 旨在簡單直觀,同時高效到足以在最小的 MCU 上執行,並足夠靈活以支援 ML 中的大多數使用案例。
  • AIfES 優先考慮資料類型和底層系統特性,這在資源受限裝置上至關重要。
  • AIfES 提供所有在裝置上訓練 ANN 所需的元件,例如所有層的反向實作、多個損失函數、優化器和權重初始化函數。
  • AIfES 的模組化設計使 C 編譯器可以輕鬆移除未使用的程式碼,從而縮小程式碼大小。
  • AIfES 使用記憶體排程器,可在執行網路之前計算所需的記憶體大小,並將記憶體區塊分配給模型,從而避免動態記憶體分配。
  • AIfES 包括執行階段最佳化的啟動函數和層,以及基於矩陣乘法的層。
  • AIfES 提供兩種反向傳播工作流程,以降低訓練期間的記憶體消耗:傳統方法和輕量隨機梯度下降 (L-SGD) 演算法。
  • AIfES 允許對模型進行量化,從而可以調整到不同的硬體架構
    。提供兩種量化(Q7 和 Q31),作為對稱的 8 位元/32 位元整數量化,有助於僅使用整數算術來計算實際值。
  • 在 ARM Cortex-M4 的 SoC 上進行的基準測試表明,AIfES 在執行時間和記憶體消耗方面優於 TFLM,尤其是在 FCNN 架構方面。
  • AIfES 支援在嵌入式裝置上訓練 ANN 和 CNN。
  • AIfES 的主要優勢包括模組化軟體架構、可新增自訂硬體加速器以及在資源受限裝置上進行裝置上訓練的能力。

原始論文翻譯

AIfES:下一代邊緣 AI 框架

作者:Lars Wulfert、Johannes Kühnel、Lukas Krupp、Justus Viga、Christian Wiede、Pierre Gembaczka 和 Anton Grabmaier

摘要

邊緣人工智慧 (AI) 依賴於將機器學習 (ML) 整合到最小的嵌入式設備中,從而在實際應用中實現本地智慧,例如用於影像或語音處理。 傳統的邊緣 AI 框架缺乏跟上最新和即將推出的 ML 創新的重要方面。這些方面包括關於目標硬體的低靈活性以及對自定義硬體加速器整合的有限支持。 嵌入式系統框架的人工智慧 (AIfES) 的目標是克服傳統邊緣 AI 框架面臨的這些挑戰。在本文中,我們詳細概述了 AIfES 的架構和應用的設計原則。最後,我們使用完全連接的神經網路 (FCNN) 和卷積神經網路 (CNN),在基於 ARM Cortex-M4 的系統單晶片 (SoC) 上將 AIfES 與微控制器的 TensorFlow Lite (TFLM) 進行比較。 對於 FCNN,AIfES 在執行時間和記憶體消耗方面都優於 TFLM。此外,使用 AIfES 在使用 CNN 時可減少高達 54% 的記憶體消耗。 此外,我們展示了 AIfES 在 FCNN 以及 CNN 訓練期間的性能,並證明了在資源受限的設備上訓練 CNN 的可行性,其記憶體使用量略多於 100 kB 的 RAM

索引詞(Index Terms)
邊緣 AI 框架(Edge AI Framework)、嵌入式系統(embedded systems)、機器學習框架(machine
learning framework)、設備上訓練(on-device training)、資源受限設備(resource-constrained
devices)、微型機器學習(TinyML)。

I. 緒論

近年來,機器學習 (ML) 已成為工程和科學應用創新的主要驅動力之一。目前估計有超過 2500 億個嵌入式設備在使用中,這一趨勢也擴展到嵌入式系統,使支援 ML 的計算能力更接近數據來源。 這些方法通常被稱為邊緣人工智慧 (AI) 或 TinyML,最近已進入微控制器單元 (MCU),這些 MCU 構成了物聯網 (IoT)。根據,與雲端 AI 解決方案相比,使用 TinyML 具有許多改進,包括數據保護、低處理延遲、節能和最小的連接依賴性。基於人工神經網路 (ANN) 的 TinyML 的一個經過廣泛研究的應用涉及利用智慧感測器系統進行狀態監測。** 主要目標是在感測器本身內直接檢測異常的機器行為。** 這種方法僅傳輸異常數據,從而降低了能耗,因為與本地處理相比,傳輸數據更耗能。此外,感測器系統可以直接連接到機器的控制系統,以便在發生故障時立即進行干預。因此,無需將數據發送到雲端伺服器進行故障檢測,突顯了 TinyML 的數據保護方面,並強調了減少的處理延遲。此外,該系統可以部署在連接有限或沒有連接的偏遠地區。

為了開發高效且有效的 ML 方法,有許多框架可利用高效能計算硬體,例如圖形處理單元 (GPU)。 PyTorch 和 TensorFlow 是此領域中最受歡迎和廣泛使用的兩個框架。

然而,由於嵌入式系統的硬體資源通常非常有限,因此無法使用這些框架。因此,已經開發了專門的工具和框架,可以將使用大型數據集在高階硬體上訓練的 ML 模型遷移到資源受限的設備。 這種傳統的邊緣 AI 框架,如 TensorFlow Lite for Microcontrollers (TFLM) 或 Apache TVM,主要專注於各種 ANN 的推論和優化,使深度神經網路 (DNN) 能夠部署在嵌入式平台(如 MCU)上。但是,由於訓練是在 PC 上完成的,因此在框架之間甚至程式語言之間轉換 ML 模型是不可避免的。此外,這些框架通常受限於特定的硬體平台,整合專用硬體加速的可能性有限。因此,無法直接在資源受限的系統上開發或訓練 ANN

因此,過去兩年中在 ML 模型的設備上訓練領域進行了多項開發。 ML 模型的設備上訓練,如支持向量機 (SVM),k 最近鄰 (K-NN) 和決策樹 (DT) 變得首先可行。但是,SVM 和 K-NN 的缺點是必須保留訓練數據才能做出穩健的預測,從而導致高記憶體需求。此外,雖然 SVM、K-NN 以及 DT 可以非常有效地學習線性關係,但在學習非線性相關性時,它們會達到極限。相反,ANN 能夠獲取和訓練數據中的非線性關係,因此適用於複雜的問題。隨著嵌入式系統數量的持續增加,人們也越來越有興趣在 MCU 上執行更複雜的任務,例如狀態監測、預測性維護或圖像中的物件檢測。由於 MCU 的資源有限,直到最近,在設備上訓練完全連接的神經網路 (FCNN) 和卷積神經網路 (CNN) 被認為是不可行的。然而,初步工作表明,在 MCU 上進行 FCNN 和 CNN 的設備上訓練是可行的。儘管這些框架和方法與不同的 MCU 兼容,例如 RISC-V、Cortex-M 或 ESP32,但許多框架缺乏開放訪問和模組化軟體結構,因此使用者可以整合自定義功能,例如啟動功能。即使現在可以在 MCU 上訓練 FCNN 和 CNN,仍然執行了複雜的算術運算(例如,矩陣乘法),這對 MCU 來說具有挑戰性。 透過自定義硬體加速器,可以更快地執行複雜的計算,從而節省資源和能源。 但是,現有的開發都沒有提供模組化結構,以便在其框架中插入自定義硬體加速器

AIfES_Fig01
圖 1:AIfES 的結構,用於構建模型和執行裝置上訓練,包括四個步驟:(1) 構建模型,(2) 選擇損失函數,(3) 選擇優化器,以及 (4) 訓練模型。AIfES 模型由可自訂的結構構建,該結構由模組 ailayer、ailoss 和 aiopti 組成。每個模組都包含層次結構:類型(模組的功能)、實現(硬體加速器的使用)和資料類型(ML 模型執行的資料類型)。

我們介紹了嵌入式系統人工智慧 (AIfES),這是一個與硬體無關的邊緣 AI 框架,彌合了資源受限的嵌入式系統和複雜的機器學習模型之間的差距。如圖 1 所示,AIfES 的模組化結構旨在遵循眾所周知的 ML 框架結構,例如 Keras 或 PyTorch。 這種結構包括四個步驟:(1) 建立模型,(2) 選擇損失,(3) 選擇優化器和 (4) 訓練模型。這種方法使使用者可以輕鬆地將他們的經驗轉移到 AIfES。此外,AIfES 的 ailayer 模組提供了多種功能類型,例如密集層。使用者可以為每個功能分配數據類型,例如 8 位元。此功能有助於節省記憶體,或在沒有浮點單元 (FPU) 的設備上實現更快的訓練或推論。此外,AIfES 是第一個提供在 ML 框架內以模組化方式使用硬體加速器的能力的框架。 該軟體的模組化設計允許新增新的使用者特定硬體加速器、功能類型、數據類型或模組。這允許根據使用者的需求和偏好自定義框架。 利用 C 和優化的模組,AIfES 能夠在無需作業系統的情況下進行 ML 模型的設備上訓練和推論。為了執行推論,AIfES 僅需要預先訓練的 ANN 模型的結構和權重。可以輕鬆整合優化的模組和自定義硬體加速器,以增強模型的推論或訓練性能。 可以載入 ANN、對其進行微調,或者可以在運行時更改網路結構。即使可以從頭開始訓練,也無需預先訓練,從而避免了將訓練數據發送到更強大且更耗能的設備的需求。 無需共享原始訓練數據即可節省能源,並提高隱私。此外,設備上訓練使新一代的自學習系統和感測器能夠適應新數據,甚至可以使用聯邦學習 (FL) 按需組合,以進一步提高性能。本文的主要貢獻是:

  • AIfES 是一個開源邊緣 AI 框架,為資源受限的設備提供推論和設備上訓練,該框架與硬體無關且軟體模組化
  • 該框架支援以模組化方式新增使用者特定的硬體加速器,以增強推論和設備上訓練的性能。它還包括用於啟動函數的軟體優化模組。
  • 模組化框架,允許在運行時調整或更改網路架構
  • 我們進行了廣泛的評估,以證明該框架的有效性和各種設置。首先使用 FCNN 進行推論,將我們的框架與使用硬體加速器、量化和設備上訓練的 TFLM 進行比較。此外,我們評估了著名數據集上的 CNN 設備上訓練。

本文的其餘部分組織如下。在第二節中,我們提供了關於設備上學習框架的背景資訊以及相關工作的概述。隨後,我們在第三節中介紹了我們提出的框架 AIfES。此外,還詳細介紹了設計原則,例如模組化架構、記憶體使用情況以及用於減少運行時的硬體和軟體優化。在第四節中,針對 FCNN 和 CNN 的不同數據集和網路結構評估了推論。此外,還介紹了 AIfES 設備上訓練的分析。最後,第五節總結了本文並展望了未來的工作。

II. 背景和相關工作

由於邊緣 AI 和 TinyML 的巨大潛力和興趣,框架、庫和工具的數量不斷增長。最常用的轉換方法依賴於將預先訓練的 ML 模型部署在嵌入式平台上,如 MCU。因此,眾所周知的 ML 庫(如 TensorFlow、Scikit-Learn 或 PyTorch)用於建立模型並對其進行訓練。隨後,預先訓練的 ML 模型可以在資源受限的系統上使用。已經開發了 TFLM 等框架,以將模型應用於 MCU。 TFLM 優化 TensorFlow 模型,以便在行動和嵌入式設備上高效運行。提供了實用程式功能來減少 ML 模型的大小和複雜性。支援多種 ANN 架構,可用於轉換後在不同平台上進行推論。這些平台包括智慧型手機、嵌入式 Linux 系統和 32 位元 MCU。 Edge Impulse 是一種服務,它使用完全不同的方法來預先訓練 ML 模型並將其部署在邊緣設備上。首先,必須將數據上傳到雲端,在那裡將執行訓練。之後,ML 模型可以轉換為所需硬體的各種庫,例如 C++、Arduino 或 Cube.AI 庫。甚至支援轉換為 WebAssembly 和二進位檔案。隨後,該庫可以部署在智慧型手機、CPU/GPU 或各種支援的 MCU 上,例如 Nordic Semi nRF52840 DK。 TFLM 用於在資源受限的設備上運行 Edge Impulse ML 模型。

還有一些製造商特定的解決方案,其運行方式類似。第一個範例是 STM32Cube.AI 工具包,適用於基於 STM32 ARM Cortex-M 的 MCU 及其用於優化的 X-Cube-AI 擴展。該工具包可以將來自 TensorFlow、Keras 或 ONNX 格式的預先訓練的 ANN 轉換為 C 程式碼。借助 NanoEdge AI Studio,也可以在 STM32 MCU 上逐步訓練 ML 模型。另一個工具是 Microsoft 的嵌入式學習庫 (ELL),它支援在資源受限的平台(如基於 Arm Cortex-A 和 Cortex-M 的架構)上開發和部署預先訓練的 ML 模型。 ELL 是一個優化的交叉編譯器,可在常規桌上型電腦上運行並輸出與 MCU 兼容的 C++ 程式碼。

已經開發了幾種技術來應對 TinyML 的低資源挑戰,包括剪枝、量化 和神經架構搜尋 (NAS)。這些方法減少了模型參數,同時保持了模型準確性,從而允許將模型應用於 MCU。儘管該框架支援量化,但其他優化(如剪枝或 NAS)尚不可用。相反,該框架強調模組化軟體架構和自定義硬體加速器的模組化添加。這種模組化方法允許單獨添加剪枝或 NAS 方法,如第 III-A 章所述。

除了僅能夠執行推論的框架之外,還有使用 MCU 進行 ML 模型設備上訓練的開發。表 I 描述了出版物的詳細列表。在審查中,確定了 19 篇進行設備上訓練的出版物。大多數支援 ARM Cortex 系列,並且 甚至支援多個 MCU 系列,如 ESP32 或 AVR MCU。這些出版物使用程式語言 C 或 C++ 來實現 ML 演算法,因為這些語言適用於硬體附近實現,並以低記憶體需求提供快速執行時間。

除了 ANN 之外,還有許多成功的嘗試在 MCU 上訓練 ML 演算法,各種演算法(如 SVM、DT、RF 或 K-NN)已應用並證明可以在 MCU 上訓練這些演算法。這些出版物包括 Edge2Train 和 Train++,它們使用 SVM 進行設備上訓練,而 僅支援訓練 K-NN 或 DT。其他論文,如,除了 FCNN 或 CNN 之外,還支援其他演算法,如 SVM。例如, 比較了 TinyML 的不同演算法的記憶體需求和推論時間,包括 FCNN、SVM、RF、LR、GNB 和 DT。 Lee 等人 提出了一種用於能量收集計算平台的間歇性學習框架,支援無監督和半監督學習演算法。儘管他們發布了他們的框架並支援軟體模組化架構,但他們忽略了支援硬體加速器,這可以節省能源,這在由能量收集器運營的節能系統中尤其相關。在微控制器和設備上訓練領域的出版物中,幾乎 80% 涉及 FCNN 或 CNN,因為這些方法可以訓練複雜的非線性相關性,從而允許在 MCU 上應用更複雜的 ML 方法。最近有七篇出版物,它們僅使用 FCNN 成功執行了設備上訓練。在 中,使用 Arduino Nano 33 BLE Sense 和 Arduino Protenta H7 研究並比較了設備上訓練,從而使 Portenta H7 的 FCNN 訓練速度提高了 4.2 倍。在 中,使用自動編碼器對有監督和無監督學習執行了增量學習。為了使用基於神經網路的自適應控制演算法作為直流馬達控制器, 從頭開始訓練 FCNN。最初在 中訓練了一個沒有異常的自動編碼器,以監測 MCU 上旋轉機器的狀況。然後,該模型用於檢測機器中的異常。隨著人們對 FL 的興趣日益濃厚,不同的設備協作來訓練 ML 模型,已經為 MCU 提出了幾種方法。 Ren 等人 提出了一種用於資源受限設備的聯邦元學習方法。但是,他們沒有具體說明他們是使用現有的庫還是從頭開始開發設備上訓練。在 中包含來自 的演算法。相反, 中的訓練是從頭開始開發的,因為當時沒有可用的框架支援它。同樣,由於可用框架中缺乏支援, 提出了一種在 MCU 上訓練 CNN 的方法。此外,Lin 等人 提出了一種訓練具有小於 256 KB 隨機存取記憶體 (RAM) 的 CNN 模型的方法,包括通過量化感知縮放 (QAS) 和微型訓練引擎 (TTE) 進行的兩項關鍵設備上訓練創新。首先,QAS 通過自動縮放具有不同位元精度的張量的梯度來穩定訓練。其次,TTE 通過在編譯時執行自動微分和稀疏更新來優化運行時。儘管 Lin 等人 證明了在小於 256 KB RAM 的情況下進行設備上訓練的可行性,但他們在實驗中預先訓練了模型並執行了訓練後量化,然後在 MCU 上運行微調。因此,不確定在這些資源限制下,是否可以在沒有預訓練和後量化的情況下進行訓練(即從頭開始訓練)。還提出了一種使用基於 RISC-V 的並行軟體方法進行並行超低功耗 (PULP) 的優化。此外,他們提出了一種策略,可以根據每個 DNN 層中的張量形狀自動選擇最快的內核。在論文 中,Opt-SGD 和 Opt-OVO 作為二進位和多類 ML 分類器訓練的優化方法提出。在 和 中,STM 的 X-Cube-AI 擴展用於設備上訓練,而在 中,Forward-Forward 訓練方法首次在 MCU 上使用,無需反向傳播。 De Vita 等人 使用該擴展在 STM32 板上訓練迴聲狀態網路,這是一種循環神經網路 (RNN)。

表 I:比較 AIFES 與使用 MCU 進行裝置上訓練的各種論文
。 √ = 真,× = 假,- = 未識別
AIfES_Table01-1
AIfES_Table01-2

儘管總共發表了 19 篇關於在 MCU 上進行設備上訓練主題的出版物,但僅針對略多於一半的論文發表了原始程式碼,因此無法驗證或進一步開發工作,這減緩了研究領域的加速和演算法的優化。此外,只有略多於一半的論文可以通過開放訪問獲得,而只有 使用模組化軟體結構。模組化軟體結構通過將實現系統地劃分為邏輯子塊來顯示。

我們注意到, 中有一些有希望的解決方案,可以在訓練 FCNN 和 CNN 以及 RNN 時處理少量資源。但是,目前的工作都沒有包括允許使用者將其硬體加速器包含到框架中的模組化硬體結構。模組化硬體結構意味著只要可以通過使用的程式語言調用任意硬體加速器,就可以將其添加到框架中。此外,在一些出版物中,訓練是從頭開始開發的,例如。因此,我們得出結論,需要一個模組化的 TinyML 框架,用於在資源受限的設備上進行設備上訓練。為了彌合這一差距,我們提出了 AIfES。

為了克服這一差距,本文介紹了開源框架 AIfES。它針對所有類型的 MCU,從小型 8 位元 MCU 到功能強大的基於 ARM Cortex-M 的 MCU,並且支援 FCNN 和 CNN 的推論和設備上訓練。但是,AIfES 也可以在 PC 上用於評估或視覺化目的。

III. 設計原則

AIfES 專為在嵌入式、低資源設備(如 MCU)上運行而設計。因此,與通常的機器學習框架相比,要求有所不同。 AIfES 的主要目標是使庫的使用盡可能簡單直觀,同時又足夠高效,即使在最小的 MCU 上也能運行,並且足夠靈活,可以支援 ML 中的大多數用例。因此,我們提出了一種 AIfES 的模組化長方體結構(如圖 2 所示),該結構旨在提供一種靈活且可自定義的結構,使用者可以在其中單獨選擇來自模組 ailayer、ailoss 和 aiopti 的可用功能。每個模組本身都具有不同的層級類型(模組的功能)、實施(使用硬體加速器)和數據類型(ML 模型執行的數據類型),這允許不同的設置和配置。例如,在 ailayer 模組中,使用者可以選擇不同的層,例如 Dense 或 Conv2D 層,以包含在其 ML 模型中。長方體結構允許使用者擴展現有模組和層級,甚至根據需要添加新模組和層級。

AIfES_Fig02
圖 2:AIfES 的模組化和可自訂的立方體結構,由模組 ailayer、ailoss 和 aiopti 組成。每個模組都包含層次結構:類型(模組的功能)、實現(硬體加速器的使用)和資料類型(ML 模型執行的資料類型),這允許不同的設定和配置。例如,在 ailayer 模組中,使用者可以選擇不同的層,例如密集層或 Conv2D 層,以包含在其 ML 模型中。立方體結構允許使用者擴展現有模組和層次結構層級,甚至根據需要新增新的模組和層級。

A. 模組化架構

AIfES 框架具有模組化架構。 ANN 模型可以由稱為層的處理塊構建,這些層連接起來形成整個模型,這也被常用的現代深度學習框架(如 Keras 和 PyTorch)採用。這使得 Keras 或 PyTorch 的經驗豐富的使用者可以更輕鬆地使用 AIfES。對於訓練,損失函數被分配給模型,並且可以使用不同的優化器對其進行訓練,以執行反向傳播演算法的梯度步。 與其他框架不同,AIfES 還將數據類型和底層系統的特殊性放在最前面,這些是在資源受限的設備上的基本要素。此外,它提供了在設備上訓練 ANN 所需的所有組件,如所有層的反向實現、多個損失函數和優化器以及權重初始化函數。支援的組件的概述在附錄中給出。這些組件遵循相同的模組化概念,並且靈活且適應任何系統和用例。

圖 3 顯示了 AIfES 中模組的層級結構。每個類別(例如層、損失、優化器)都包含定義模組功能的特定模組(例如密集層、ReLU 層)。每種類型的模組都可以處理多種數據類型的數據(例如 float32、int8)。然後,最終實現可以是系統特定的(例如 Arm Cortex M、AVR ATMega),以便在任何硬體上獲得最佳性能。

AIfES_Fig03
圖 3:AIfES 中模組的結構概念。箭頭指示子類型,類似於物件導向程式設計中的繼承。左側給出層次結構,而右側給出層次結構實現的一些範例。這些範例描述了在層次結構的每個層級設定的參數類型,以允許軟體和硬體靈活性。

因此,較高的模組將常規屬性傳遞到它們下面的模組。這是通過使用結構來完成的,這些結構是較低層級模組的結構的一部分。在層的情況下,類別 ailayer 包含常見屬性,如指向前一層和後一層的指針。此外,還提供了一些函數指針。這些函數指針在 ANN 的正向或反向傳遞期間被調用,並且表示正向傳遞期間的抽象(數據類型和實現無關 (DII))調用位置。相反,ailoss 和 aiopti 類別分別包含抽象的特定於損失和優化的屬性(例如,用於損失計算的函數指針用於 ailoss,或用於參數更新的函數指針用於 aiopti)。

模組類型描述了 DII 的常見屬性,但特定於其操作。這允許不同的函數,例如密集層與 ailayer 的啟動函數層或 ailoss 的不同損失函數。對於密集層的範例,模組類型提供諸如神經元數量、權重和偏差的張量指針等參數,並使用來自類別的函數指針初始化密集層的正向和反向傳遞的 DII 函數實現。在啟動層的情況下,正向和反向傳遞的函數指針使用啟動層的 DII 版本進行初始化。這些 DII 函數使用底層數學函數來實現所需的功能(例如,張量加法和乘法運算或矩陣乘法)。在此,數學函數也是 DII,因為它們在最終實現模組中被引用為函數指針。

因此,特定於數據類型的表示初始化層的數據類型。與最終實現模組結合使用,DII 函數指針使用數據類型和實現相關的版本進行初始化。所有需要的數學函數都由一個單獨的數學模組提供,其中需要的函數被引用以初始化 DII 函數指針。數學模組包含每種數據類型和實現的實現,例如 f32 和 q7 數據類型中的正向傳遞的矩陣乘法。 AIfES 目前提供兩種不同類型的實現。默認實現純粹基於軟體,並且在各種系統上進行了測試,以便在大多數情況下提供最佳性能。相反,通用微控制器軟體介面標準 (CMSIS) 實現使用 CMSIS 數位訊號處理器 (DSP) 函數,以便通過優化數學函數的實現來在 Arm Cortex-M MCU 上進行高效實現。

為了使用不同的硬體加速器(以現有或自定義設計的硬體單元的形式),需要將硬體優化的數學函數(如張量乘法)添加到數學模組。此外,必須將最終實現添加到所需的層。在最終實現中,需要引用專用的數學函數。無需進一步調整,因為模組類型和類別的 DII 實現會自動使用實現中給出的數學函數。通過這種設計理念,硬體開發人員無需了解神經網路即可開發硬體加速器。相反,機器學習專家可以使用硬體專家提供的加速構建模組。此外,這允許硬體/軟體協同設計工作流程,其中開發人員從默認實現開始,並逐步將它們替換為自定義加速函數。在 中可以找到自定義硬體加速器的範例。在此範例中,自定義單指令多數據 (SIMD) 指令已整合到 RISC-V MCU 中,以改善密集層的計算。在此,只需要更新密集層的實現。為此,需要將默認實現的函數指針替換為 SIMD 特定實現。無需進一步更改,突顯了 AIfES 的模組化結構。通過這種概念,硬體開發人員只需要開發用於矩陣乘法的數學函數,然後該函數由實現內部的函數指針引用。此外,啟動函數通過自定義硬體加速器進行了優化,其中也只需要更新函數指針即可自動使用優化的硬體加速器。

此外,可以輕鬆地將框架移植到其他硬體架構。由於該框架完全用 C 語言編寫並且與 GNU 編譯器集合 (GCC) 兼容,因此默認實現可以在 GCC 支援的任何硬體上執行,並且可以如上所述包含自定義硬體加速器。

通過這種模組化概念,添加新組件和適應新用例非常簡單,無需深入研究框架程式碼,就像整合新硬體加速器一樣。可以添加其他類型,例如,支援新的啟動函數,其中需要添加其他數學函數並在新最終實現中引用。將 AIfES 結構化為不同的模組數據類型和實現的明確設計選擇導致了更高效的系統,因為可以在實現、編譯期間以及因此在部署期間排除不必要的功能。

B. 記憶體

嵌入式設備上的一個主要限制因素是有限的記憶體。一方面,用於儲存變數和可變數據的 RAM 通常只有幾千位元組(甚至幾位元組)大小,因此必須非常謹慎地使用。另一方面,用於程式碼儲存和常數變數的唯讀記憶體 (ROM) 也很重要。這與非邊緣設備形成對比,在非邊緣設備中,程式碼大小通常不被考慮。憑藉其模組化設計,AIfES 使 C 編譯器可以輕鬆刪除未使用的程式碼,從而縮小程式碼大小。 ANN 的參數(例如權重)和中間結果的記憶體可以根據應用單獨分配。常數參數(如不可訓練參數)可以儲存在 ROM(例如快閃記憶體或 EEPROM)或外部儲存組件中,而可變參數(例如梯度、誤差、動量、量化參數)需要在 RAM 中佔用空間。例如,梯度、誤差、中間結果和量化參數將放置在 RAM 中。

與 Keras 等動態記憶體分配或 PyTorch 等自定義快取記憶體分配器不同,AIfES 使用不同的方法。作為一個主要的設計概念,所有記憶體都在運行網路之前分配。為此,AIfES 提供排程器函數,以根據 FCNN 的網路結構預先計算所需的記憶體大小,並將記憶體塊分配給模型。

首先,計算每層推論的記憶體大小。因此,可變參數的數量乘以選定的數據類型。如果使用量化,也會確定量化參數的中間結果的記憶體大小。為此,將使用的數據類型的大小添加到記憶體塊。隨後,根據可變參數的數量,將記憶體塊的地址部分添加到各個層。之後,如果 FCNN 應由 AIfES 訓練,則識別訓練的記憶體大小。在此,計算正向和反向傳遞的不同層的中間結果的記憶體大小。正向和反向傳遞的記憶體大小由數據類型和 FCNN 中權重和偏差的最重要數量決定。此外,確定梯度和優化記憶體(例如,一階或二階動量)的記憶體大小。梯度的大小由張量的大小和使用的數據類型決定。優化器的記憶體大小取決於選擇的優化器,因為與 SGD 相比,Adam 需要額外的儲存空間來儲存動量。此外,如果應用,量化參數的記憶體大小由使用的數據類型計算。計算記憶體塊的大小後,排程器會根據可變參數的大小、優化大小和中間結果的記憶體大小來分配每層的位址範圍。

因此,AIfES 沒有內部動態記憶體分配(除了呼叫堆疊上的本地變數)。這確保了系統在 ANN 的推論或訓練期間不會耗盡記憶體,這在自動駕駛等安全關鍵應用中尤其重要。此外,不會發生記憶體碎片,因為記憶體排程器知道何時以及需要多少記憶體,並且可以優化分配。

C. 用於減少運行時的硬體和軟體優化

保持 ML 推論和訓練的低運行時是 AIfES 的一個關鍵目標。最新神經網路的大部分執行時間都用於矩陣運算,例如在完全連接或卷積層中。但是,由於普遍存在的資源限制,在嵌入式系統上經常使用相對較小的神經網路。隨著網路大小的減小,啟動層對於它們對執行時間的貢獻越來越重要。

因此,除了基於矩陣乘法的層之外,AIfES 還包括運行時優化的啟動函數和層。由於幾個啟動函數需要計算指數函數,這在其默認實現中可能成本高昂,因此 AIfES 包含一個優化的變體。此外,AIfES 採用啟動函數的分段線性近似 (PLA),這會引入較小的計算誤差,但會加快其執行速度。因此,AIfES 允許根據應用的精度和運行時約束來調整近似程度。 AIfES 不使用基於查找表的啟動函數,以防止庫的記憶體需求進一步增加。

對於模型的反向傳遞,不執行自動微分。因此,為每一層提供了反向傳遞的單獨實現。因此,無需對張量上執行的函數進行額外的簿記,從而減少了儲存和計算需求。

AIfES 提供了兩種互補的反向傳播工作流程,以在訓練期間實現更低的記憶體消耗。兩者都以保留結果的正向傳遞開始。傳統方法通過反向迭代所有層來進行,計算並儲存每個步驟中的梯度。所有參數僅在此過程結束時更新。輕量級隨機梯度下降 (L-SGD) 演算法 的運作方式不同,僅保留後續層所需的部分導數,並使用計算的梯度直接更新參數。因此,它在任何給定時刻僅將兩層保留在記憶體中。

我們已經擴展了此演算法以包括其他優化器,如 ADAM。此外,我們已經使輕量級反向傳播工作流程能夠用於批次學習,從而增強了其實用性。在這種情況下,我們在每次迭代中累積完整批次的梯度,並在進入下一層之前進行更新。隨著模型深度的增加,輕量級過程變得越來越高效。對於較大的批次大小,由於記憶體訪問,該演算法更快,但這會以更高的峰值記憶體使用量為代價。 AIfES 為使用者提供了靈活性,可以選擇最適合其網路架構和性能需求的工作流程。

在為嵌入式目的開發庫時,需要注意的另一個因素是底層硬體配置的巨大範圍。在只有 8 位元記憶體頻寬且沒有 FPU 的系統上,演算法的最佳實現與具有 SIMD 指令或 DSP 加速器的 32 位元系統不同。 AIfES 的模組化概念允許開發完美適合給定硬體平台和指令集的單獨組件(參見第 III-A 節和圖 3)。例如,用於基於 ARM 的 MCU 的 CMSIS 允許通過利用(除其他優化之外)SIMD 指令來加速計算。 CMSIS 可以通過額外的 CMSIS 實現用於 AIfES 中。

AIfES 允許量化您的模型。量化能夠適應不同的硬體架構,例如沒有 FPU 的上述 8 位元 MCU。量化的 ANN 轉為 Q7 可以改善計算。提供兩種量化(Q7 和 Q31)作為對稱的 8 位元/32 位元整數量化,通過遵循 的建議技術來促進僅整數的實數值計算。

以下是來源文件 "AIfES_A_Next-Generation_Edge_AI_Framework.pdf" 中第四章「評估」的完整翻譯:

IV. 評估

為了評估 AIfES 的效能,我們開發了一個基準測試,其中包括多種 ANN 架構(FCNN 和 CNN)和資料集。我們將 AIfES 在執行時間和記憶體消耗方面的效能與 TFLM 進行比較,以進行模型的推論,並評估 AIfES 在訓練場景中的表現。

A. 基準設定

A. 基準設定

實驗是在 Nordic Semiconductor 的 nRF52840 DK(基於 ARM Cortex-M4)上進行的。nRF52840 系統單晶片(SoC)以 64 MHz 的時脈速率運行。

對於 SoC 的軟體開發和程式設計,我們使用了 PlatformIO IDE。對於編譯,我們使用了 GNU ARM Embedded Toolchain 中包含的 GCC,並採用了最大優化(-O3)。推論和訓練的執行時間是使用邏輯分析儀(Digilent 的 Digital Discovery)測量的,並對結果進行了統計評估。在下文中,我們僅報告平均執行時間,因為偏差微不足道。以 RAM 和快閃記憶體形式給出的記憶體消耗值取自 PlatformIO 的編譯報告。對於推論設定,ANN 的參數使用 const 分類器宣告,以便在編譯時將它們放置在 SoC 的快閃記憶體中。我們對推論和訓練實驗使用了相同的程序,將輸入資料分別放置在 AIfES 和 TFLM 的快閃記憶體中。然而,我們從報告的快閃記憶體消耗中減去了輸入資料大小,因為我們只應比較兩個框架的儲存需求,並且輸入資料的大小隨不同的 ANN 而變化。基準測試是使用 FCNN 的兩種資料類型 F32 和 Q7 以及 CNN 的 F32 進行的。對於基於 Q7 的版本,我們量化了來自 Keras 的預訓練模型。

為了能夠控制 TFLM 的行為,我們從 GitHub 下載了官方儲存庫,並使用提供的轉換器工具來建立用於 ARM Cortex 架構的庫,無論有無優化的 CMSIS 核心。然後,該庫包含在 PlatformIO IDE 中。對於 TFLM,需要將來自 TensorFlow 的預訓練 ANN 轉換為 TensorFlow Lite 模型。然後匯出轉換後的模型並將其包含在基準測試環境中。對於每個 ANN,我們憑經驗估計了 kTensorArenaSize 的大小,因為它包含 ANN 的所有必要參數,因此會隨著每個測試的 ANN 而改變大小。執行從 Keras 到 AIfES 的預訓練模型轉換。只有權重和偏差被傳輸到 AIfES 以轉換預訓練模型。對於 AIfES 和 TFLM,我們都使用了 CMSIS 的 5.8.0 版本。

B. 推論基準

  1. FCNN: 為了評估 FCNN,我們採用了現有 TinyML 基準測試中的模型架構
    。我們選擇了三個具有多個輸入特徵(4 - 64 個特徵)的代表性資料集。此外,我們還基於 MNIST 資料集,使用完整且扁平化的圖像(784 個特徵)評估了兩個較大的全連接深度神經網路(FCDNN)架構。表 II 總結了與相應評估資料集和模型一起進行的實驗。首先進行實驗 1 到 3。結果如圖 4、5 和 6 所示。

圖 4(a) 顯示,在大多數情況下,AIfES 模型的執行時間超過了 TFLM 模型。在沒有 CMSIS 的情況下,測得 F32 的加速因子高達 2.1,Q7 的加速因子高達 2.2。較慢的 F32-AIfES 模型(MNIST 1x10 和 MNIST 10 + 50)的執行時間在 TFLM 模型的 17% 範圍內。同時,基於 Q7 的 MNIST 1x10 版本略快(加速因子為 1.2),而 Cancer 10 + 50 模型略慢(慢 2 %)。MNIST F32 ANN 效能較低的一個解釋可能是 TFLM 的優化矩陣乘法實現,它對具有較多參數的全連接層產生影響。這與 Q7 Cancer 10 + 50 的結果相符,因為對於 Cancer 10 + 50,AIfES 的執行時間略長於 TFLM。同時,Q7 的優化使 AIfES 在 Q7 MNIST 1 x 10 設定中略快於 TFLM。圖 4(b) 顯示,在所有情況下,具有 CMSIS 的 AIfES 模型都比 TFLM 模型快,F32 的加速因子高達 2.4,Q7 的加速因子高達 2.3。TFLM 基於 F32 的版本的效能較慢,原因可能是 TFLM 對於 F32 使用預設實現,而不使用 CMSIS 中的任何功能。這導致與沒有 CMSIS 的 F32 幾乎相同的結果。對於 Q7 設定,TFLM 使用基於 CMSIS 的實現,顯示出效能提升,與沒有 CMSIS 的 Q7 實現相比,加速因子高達 1.6(平均 1.4)。同時,與沒有 CMSIS 相比,TFLM 可以使用 CMSIS 將 Q7 ANN 的執行時間進一步縮短,加速因子高達 2.7(平均 2.1)。這些結果證明了模組化和開放 AIfES 架構的有效性,從而能夠整合任意加速或優化的 ANN 功能實現。

AIfES_Fig04
圖 4:比較 AIfES 和 TFLM 之間針對不同 FCNN 的執行時間(實驗 1 到 3),兩個子圖中都說明了 F32 和 Q7 版本之間的比較。(a) 表示使用標準實現的推論時間,(b) 表示使用 CMSIS 實現的推論時間。

圖 5 和 6 顯示,AIfES 模型總體上比 TFLM 模型需要更少的記憶體,加速因子高達 3.9(起始加速因子為 2.1,平均為 2.7)。在大多數情況下,兩個框架的 RAM 需求相似,而顯著差異是由於快閃記憶體的消耗。我們將此結果歸因於 AIfES 在程式碼和常數變數方面的記憶體高效實現,這些程式碼和常數變數通常放置在快閃記憶體中。此外,值得注意的是,啟用了 CMSIS 的 TFLM 模型的快閃記憶體消耗增加了,而 F32 AIfES 模型的快閃記憶體消耗略有減少。原因是 AIfES 僅整合了 CMSIS 模組的一個子集。這也可以在基於 Q7 的實現中看到,其中兩個框架的快閃記憶體消耗都增加了,但 TFLM 的增加量更大。TFLM 要么使用更多或其他具有增加程式碼大小或更多常數變數的 CMSIS 模組。F32 AIfES 模型記憶體消耗減少的一個解釋是,與 AIfES 本機實現相比,CMSIS 功能在程式碼大小方面的效率更高。

AIfES_Fig05-1
AIfES_Fig05-2
圖 5:顯示了使用不同 FCNN 的 F32 版本中框架 AIfES 和 TFLM 的記憶體比較(實驗 1 到 3)。此外,還描述了標準和 CMSIS 實現的 RAM 和快閃記憶體消耗。(a) 顯示了標準實現,(b) 說明了使用 CMSIS 的實現。

AIfES_Fig06-1
AIfES_Fig06-2
圖 6:顯示了使用不同 FCNN 的 Q7 版本中框架 AIfES 和 TFLM 的記憶體比較(實驗 1 到 3)。此外,還描述了標準和 CMSIS 實現的 RAM 和快閃記憶體消耗。(a) 顯示了標準實現,(b) 說明了使用 CMSIS 的實現。

表 III 顯示了 FCDNN 架構的結果(表 II 中的實驗 4)
。在沒有 CMSIS 的情況下,TFLM 模型的執行時間比 AIfES 模型低 17% 和 16%。此結果支援了我們關於 TFLM 針對具有較多參數的全連接層進行優化的本機矩陣乘法實現的假設。使用 CMSIS 時,AIfES 模型的執行時間超過了 TFLM 模型,加速因子分別為 1.4 和 1.3。儘管如此,TFLM 模型的 RAM 需求略低(FCDNN 1 低 12%,FCDNN 2 低 5%)。AIfES 模型的快閃記憶體消耗低於 TFLM 模型,其絕對差異與之前的實驗 1 到 3 相同(在有無 CMSIS 的情況下,平均分別為 31 kB 和 41 kB)。總體而言,這些結果再次證明了 AIfES 架構在整合外部優化 ANN 模組方面的有效性及其在快閃記憶體儲存方面的記憶體效率。

表 III:FCDNN 的執行時間和記憶體消耗評估(實驗 4)
AIfES_Table03

  1. CNN: 隨後,我們評估了使用 MNIST、CIFAR-10
    和 Visual Wake Words (VWW) 資料集的 2D-CNN 架構。每個資料集的網路架構都會發生變化,因為資料集的輸入通道數量和輸出數量都不同。對於 CIFAR-10 和 VWW,我們使用了 3×32×32 的輸入,因為資料集包含 RGB 圖像。VWW 的圖像先前已調整大小以適合 CNN 的輸入形狀。對於 MNIST 資料集,我們使用了 1×28×28 的輸入。但是,所有資料集的基本架構都是相同的。每個網路都有兩個卷積層,第一層使用四個核心,第二層使用八個大小為 3×3 的核心,不使用填充,步幅為 1。ReLU 用於兩個層,並且在每個卷積層之後使用 2×2 的核心執行最大池化。由於 AIfES 尚未包含對 CNN 的 CMSIS 支援,因此我們僅比較了本機實現。

表 IV 中的結果顯示,在最差情況的評估中,TFLM CNN 在執行時間和 RAM 需求方面超過了 AIfES 模型,加速因子分別高達 1.74 (VWW) 和 1.63 (MNIST)
。執行時間差異的一個解釋是 TFLM 中優化的矩陣乘法實現。AIfES 目前使用簡單的直接卷積。尚未包含基於通用矩陣乘法 (GEMM) 或快速傅立葉變換 (FFT) 的複雜方法。與之前的實驗類似,AIfES CNN 的快閃記憶體消耗低於 TFLM 模型,所有資料集的最大絕對差異為 32 kB。因此,在 VWW 資料集的最差情況下,快閃記憶體佔用率最多增加了 53%。顯著差異與用於儲存權重、網路結構和啟動函數的平面緩衝區有關,以便可以在 TFLM 的執行時建立神經網路。

表 IV:2D-CNN 的執行時間和記憶體消耗評估
AIfES_Table04

C. 訓練基準

隨後,我們使用 AIfES 研究了 FCNN 和 CNN 的裝置上訓練**。為了評估 FCNN,我們使用了與表 II 所示的推論基準測試的實驗 1 到 3 相同的架構。對於 CNN,我們選擇了與第 IV-B2 節中推論基準測試相同的架構。所有模型都使用交叉熵損失和 Adam 優化器進行訓練,其中 η = 0.01,β1 = 0.9,β2 = 0.999,FCNN 使用 ε = 1e−7,CNN 使用 ε = 1e−5。我們僅顯示使用預設實現(即沒有 CMSIS)的訓練。我們測量了每個 epoch 的執行時間。

  1. FCNN: 表 V 顯示,使用 AIfES 可以在資源受限的嵌入式設備上訓練 FCNN,同時保持執行時間和記憶體消耗在可接受的水平。這意味著該平台沒有被完全利用,並且仍然有足夠的資源。例如,在基於 nRF52840 SoC 的實驗平台上,在最差的評估案例(MNIST 10 × 10)中,AIfES 利用了 15% 的 RAM 和 2% 的快閃記憶體。因此,其他任務(如通訊、感測器採樣或訊號預處理)也可以在嵌入式系統上運行。實驗平台上評估模型的總訓練執行時間在幾毫秒到幾秒的範圍內。

儘管有這些結果,但必須考慮到模型架構,尤其是訓練過程的記憶體需求,可能是使用 AIfES 進行裝置上訓練的主要限制。我們還在附錄 B 中包含了一個複雜的深度自動編碼器的訓練。

表 V:在 NRF52840 DK 上使用 AIFES 進行 FCNN 的評估(批次大小:5)
AIfES_Table05-1
AIfES_Table05-2

  1. CNN: CNN 的裝置上訓練基準測試結果如表 VI 所示,我們使用了與推論評估相同的資料集
    。此外,我們使用了與推論分析中相似的架構。透過在兩個卷積層後新增一個批次正規化層,其中 momentum = 0.9 和 ε = 1e−6,擴展了這些架構,這根據 加速了訓練。與 FCNN 的評估相比,每次批次的訓練時間和 RAM 消耗顯著增加。使用 CIFAR-10 資料集訓練的 CNN 花費了最多的訓練時間,為 2.61 秒,而 RAM 記憶體消耗幾乎為 150 kB。由於 CNN 中可訓練參數的數量也增加了,因此訓練時間和 RAM 的記憶體消耗都增加了。例如,使用 CIFAR-10 資料集進行分析的 CNN 使用的參數數量是使用 10×10 架構的 MNIST 資料集的 FCNN 的四倍。因此,記憶體需求大約大了 3.8 倍。

基準測試表明,使用 AIfES 訓練 CNN 是可行的,但與 FCNN 訓練相比,訓練時間以及記憶體消耗都有所增加。儘管如此,訓練時間仍保持在可接受的時間範圍內。但是,訓練深度 CNN 將具有挑戰性。此外,訓練深度 CNN 所需的資料量無法直接儲存在 MCU 上。

表 VI:在 NRF52840 DK 上使用 AIFES 進行 2D-CNN 的評估(批次大小:5)
AIfES_Table06

D. 近似基準

由於 AIfES 使用近似值,因此一個重要的方面是檢查這些近似值的相對誤差。為此,我們使用了 TinyML Perf Benchmark 中包含的深度自動編碼器。我們用 sigmoid 啟動函數替換了 ReLU 啟動函數,以啟用 AIfES 中啟動函數的整合近似。首先,我們在 Tensorflow 中訓練了自動編碼器。然後,我們將模型匯出到 Tensorflow Lite 和 AIfES。然後在 PC 上執行這兩個模型,並計算輸入值的均方誤差。根據 2459 個測試資料集,我們使用 Tensorflow 確定了參考值。之後,我們使用相同的測試資料來測量使用 Tensorflow Lite 和 AIfES 的自動編碼器的均方誤差。隨後,我們確定了 Tensorflow Lite 和 AIfES 相對於 Tensorflow 參考值的平均相對誤差。Tensorflow Lite 的平均相對誤差為 1200.95588 ‰,而 AIfES 的誤差為 38.4283‰。因此,AIfES 的平均相對偏差可以忽略不計。與 Tensorflow 相比,應用範例中的應用近似值在 pAUC 值中沒有顯著差異(−0.027),並且 AUC 的平均值差異最小,為 −0.032。

V. 結論及未來方向

在本文中,我們介紹了下一代邊緣AI框架AIfES。它的專門設計旨在充分利用ML在資源受限的嵌入式設備上的潛力。與其他傳統邊緣AI框架相比,AIfES不僅支持在嵌入式系統上進行推論,還支持片上訓練。這允許在實際應用中使用聯邦學習(FL)和線上學習(OL)技術。此外,由於其模組化的架構,AIfES能夠輕鬆整合任意經過優化和硬體加速的ANN功能。我們在基於ARM Cortex-M4的SoC上,在多個推論場景中進行了AIfES與TFLM的基準測試比較。特別是對於FCNN架構,我們證明了AIfES在執行時間和記憶體消耗方面都優於TFLM。此外,我們展示了使用AIfES在嵌入式設備上訓練ANN和CNN的可行性。AIfES目前的主要限制是本機矩陣乘法的實現,這導致ANN的性能低於TFLM。未來,我們將加強AIfES的ANN更高級矩陣乘法方法,並優化ANN的整體片上訓練,例如透過剪枝。此外,我們將新增新的ANN架構,例如轉換器,我們將專注於使用AIfES進一步開發FL和OL技術。

參考文獻

[1] M. Frank, D. Drikakis, and V. Charissis, “Machine-learning methods for
computational science and engineering,” Computation, vol. 8, no. 1, pp. 15,
2020, doi: 10.3390/computation8010015.
[2] R. Cioffi, M. Travaglioni, G. Piscitelli, A. Petrillo, and F. de Felice, “Artificial
intelligence and machine learning applications in smart production:
Progress, trends, and directions,” Sustainability, vol. 12, no. 2, 2020,
Art. no. 492.
[3] H.Ren,D.Anicic, andT.A.Runkler, “TinyReptile:TinyMLwith federated
meta-learning,” in Proc. Int. Joint Conf. Neural Netw., 2023, pp. 1–9.
[4] P. P. Ray, “A review on tinyML: State-of-the-art and prospects,” J.
King Saud Univ. - Comput. Inf. Sci., vol. 34, no. 4, pp. 1595–1623,
2022. [Online].Available: https://www.sciencedirect.com/science/article/
pii/S1319157821003335
[5] A. Mostafavi and A. Sadighi, “A novel online machine learning approach
for real-time condition monitoring of rotating machines,” in Proc. 9th RSI
Int. Conf. Robot. Mechatronics, 2021, pp. 267–273.
[6] D. Pau, A. Khiari, and D. Denaro, “Online learning on tiny microcontrollers
for anomaly detection in water distribution systems,” in Proc.
IEEE 11th Int. Conf. Consum. Electron., 2021, pp. 1–6.
[7] K. Sai Charan, “An auto-encoder based TinyML approach for real-time
anomaly detection,” in Proc. 10th SAE India Int. Mobility Conf., 2022,
pp. 2022–28-0406.
[8] T. Kohlheb, M. Sinapius, C. Pommer, and A. Boschmann, “Embedded
autoencoder-based condition monitoring of rotating machinery,” in
Proc. IEEE 26th Int. Conf. Emerg. Technol. Factory Automat., 2021,
pp. 1–4.
[9] H. Bosman, A. Liotta, G. Iacca, and H. Wörtche, “Anomaly detection in
sensor systems using lightweight machine learning,” in Proc. IEEE Int.
Conf. Syst., Man, Cybern., 2013, pp. 7–13.
[10] C. Antonopoulos, A. Prayati, T. Stoyanova, C. Koulamas, and G. Papadopoulos,
“Experimental evaluation of a WSN platform power consumption,”
in Proc. IEEE Int. Symp. Parallel Distrib. Process., 2009,
pp. 1–8.
[11] A. Paszke et al., “PyTorch: An imperative style, high-performance deep
learning library,” in Proc. Adv. Neural Inf. Process. Syst., H. Wallach, H.
Larochelle, A. Beygelzimer, F. d Alché-Buc, E. Fox, and R. Garnett, Eds.,
Curran Associates, Inc., 2019, pp. 8024–8035.
[12] M. Abadi et al., “TensorFlow: Large-scale machine learning on heterogeneous
systems,” 2015. [Online]. Available: https://www.tensorflow.org/
[13] R. David et al., “TensorFlow lite micro: Embedded machine learning on
TinyML systems,” 2020, arXiv: 2010.08678. [Online]. Available: https:
//arxiv.org/abs/2010.08678
[14] T. Chen et al., “TVM: End-to-end optimization stack for deep learning,”
vol. 11, 2018, arXiv: 1802.04799.
[15] D. Nadalini, M. Rusci, G. Tagliavini, L. Ravaglia, L. Benini, and F.
Conti, “PULP-trainlib: Enabling on-device training for RISC-V multi-core
MCUs through performance-driven autotuning,” in Proc. Int. Conf. Embedded
Comput. Syst.: Architectures, Modeling, Simul., A. Orailoglu, M.
Reichenbach, and M. Jung, Eds., Cham, Springer International Publishing,
2022, pp. 200–216.
[16] F. Sakr, R. Berta, J. Doyle, A. De Gloria, and F. Bellotti, “Self-learning
pipeline for low-energy resource-constrained devices,” Energies, vol. 14,
no. 20, pp. 1–19, 2021. [Online]. Available: https://www.mdpi.com/
19961073/14/20/6636
[17] N. L. Giménez, F. Freitag, J. Lee, and H. Vandierendonck, “Comparison
of two microcontroller boards for on-device model training in a keyword
spotting task,” in Proc. 11th Mediterranean Conf. Embedded Comput.,
2022, pp. 1–4.
[18] H. Ren, D. Anicic, and T. A. Runkler, “TinyOL: TinyML with onlinelearning
on microcontrollers,” in Proc. Int. Joint Conf. Neural Netw., 2021,
pp. 1–8.
[19] S. Lee, B. Islam, Y. Luo, and S. Nirjon, “Intermittent learning: On-device
machine learning on intermittently powered system,” Proc. ACM Interact.
Mob. Wearable Ubiquitous Technol., vol. 3, no. 4, pp. 1–30, Dec. 2019.
[20] J. Lin, L. Zhu,W.-M. Chen,W.-C.Wang, C. Gan, and S. Han, “On-device
training under 256KB memory,” in Proc. Adv. Neural Inf. Process. Syst.,
S. Koyejo, S. Mohamed, A. Agarwal, D. Belgrave, K. Cho, and A. Oh,
Eds., Curran Associates, Inc., vol. 35, 2022, pp. 22941–22954. [Online].
Available: https://proceedings.neurips.cc/paper_files/paper/2022/
file/90c56c77c6df45fc8e556a096b7a2b2e-Paper-Conference.pdf
[21] B. Sudharsan, J. G. Breslin, and M. I. Ali, “Edge2Train: A framework
to train machine learning models (SVMs) on resource-constrained IoT
edge devices,” in Proc. 10th Int. Conf. Internet Things, New York,
NY, USA, 2020, pp. 1–8. [Online]. Available: https://doi.org/10.1145/
3410992.3411014
[22] G. Delnevo, S. Mirri, C. Prandi, and P. Manzoni, “An evaluation methodology
to determine the actual limitations of a tinyml-based solution,”
Internet Things, vol. 22, 2023, Art. no. 100729. [Online]. Available:
https://www.sciencedirect.com/science/article/pii/S2542660523000525
[23] Y. LeCun, Y. Bengio, and G. Hinton, “Deep learning,” Nature, vol. 521,
no. 7553, pp. 436–444, May 2015. [Online]. Available: https://doi.org/10.
1038/nature14539
[24] B. Sudharsan, P. Yadav, J. G. Breslin, and M. Intizar Ali, “Train : An
incremental ML model training algorithm to create self-learning IoT
devices,” in Proc. IEEE SmartWorld, Ubiquitous Intell. Comput., Adv.
Trusted Comput., Scalable Comput. Commun., Internet People Smart City
Innov., 2021, pp. 97–106.
[25] I. Hoyer, A. Utz, A. Lüdecke, M. Rohr, C. H. Antink, and K. Seidl, “Inference
runtime of a neural network to detect atrial fibrillation on customized
RISC-V-based hardware,” Curr. Directions Biomed. Eng., vol. 8, no. 2,
pp. 703–706, 2022. [Online]. Available: https://doi.org/10.1515/cdbme-
20221179
[26] A. Moss, H. Lee, L. Xun, C. Min, F. Kawsar, and A. Montanari, “Ultralow
power DNN accelerators for IoT: Resource characterization of the
max78000,” in Proc. 20th ACM Conf. Embedded Netw. Sensor Syst., New
York, NY, USA, Association for Computing Machinery, 2023, pp. 934–
940. [Online]. Available: https://doi.org/10.1145/3560905.3568300
[27] D.-M. Ngo et al., “HH-NIDS: Heterogeneous hardware-based network
intrusion detection framework for IoT security,” Future Internet, vol. 15,
no. 1, pp. 1–20, 2023. [Online]. Available: https://www.mdpi.com/1999
5903/15/1/9
[28] L. Wulfert, C. Wiede, and A. Grabmaier, “TinyFL: On-device training,
communication and aggregation on a microcontroller for federated
learning,” in Proc. IEEE 21st Interregional NEWCAS Conf., 2023,
pp. 1–5.
[29] A. Osman, U. Abid, L. Gemma, M. Perotto, and D. Brunelli, “TinyML
platforms benchmarking,” 2021, arXiv:2112.01319.
[30] F. Pedregosa et al., “Scikit-learn: Machine learning in Python,” J. Mach.
Learn. Res., vol. 12, pp. 2825–2830, 2011.
[31] EdgeImpuls, “Edgeimpuls,” 2022, Accessed: Oct. 10, 2022. [Online].
Available: https://www.edgeimpulse.com/
[32] STMicroelectronics, “STM32cube.AI,” 2022, Accessed: May 17, 2022.
[Online]. Available: https://www.st.com/content/st_com/en/ecosystems/
artificial-intelligence-ecosystem-stm32.html
[33] STMicroelectronics, “X-cube-AI,” 2023, Accessed: Oct. 11, 2023. [Online].
Available: https://www.st.com/en/embedded-software/x-cube-ai.
html
[34] F. Chollet et al., “Keras,” 2015. [Online]. Available: https://keras.io
[35] O. R. Developers, “ONNX runtime,” 2021. [Online]. Available: https://
onnxruntime.ai/
[36] Cartesiam, “Nanoedge AI studio,” 2022, Accessed: Oct. 10, 2022. [Online].
Available: https://cartesiam-neai-docs.readthedocs-hosted.com/
index.html
[37] Microsoft, “Embedded learning library,” 2020, Accessed: Nov. 15, 2022.
[Online]. Available: https://github.com/microsoft/ELL
[38] S. Han, H. Mao, and W. J. Dally, “Deep compression: Compressing deep
neural network with pruning, trained quantization and Huffman coding,”
in Proc. 4th Int. Conf. Learn. Representations, San Juan, Puerto Rico, Y.
Bengio and Y. LeCun, Eds., 2016. [Online]. Available: http://arxiv.org/
abs/1510.00149
[39] Y. He et al., “AMC: AutoML for model compression and acceleration
on mobile devices,” in Proc. 15th Eur. Conf. Comput. Vis., V. Ferrari, M.
Hebert,C. Sminchisescu, andY.Weiss, Eds.,Cham, Springer International
Publishing, 2018, pp. 815–832.
[40] Y. He, X. Zhang, and J. Sun, “Channel pruning for accelerating very
deep neural networks,” in Proc. IEEE Int. Conf. Comput. Vis., 2017,
pp. 1398–1406.
[41] E. Liberis and N. D. Lane, “Differentiable neural network pruning to enable
smart applications on microcontrollers,” vol. 6, no. 4, Jan.pp. 1–19, 2023.
[Online]. Available: https://doi.org/10.1145/3569468
[42] J. Lin et al., “Runtime neural pruning,” in Proc. Adv. Neural Inf. Process.
Syst., I. Guyon, U. V. Luxburg, S. Bengio, H.Wallach, R. Fergus, S. Vishwanathan,
and R. Garnett, Eds., Curran Associates, Inc., 2017, pp. 2181–
2191. [Online]. Available: https://proceedings.neurips.cc/paper_files/
paper/2017/file/a51fb975227d6640e4fe47854476d133-Paper.pdf
[43] J. Liu et al., “Discrimination-aware network pruning for deep model
compression,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 44, no. 8,
pp. 4035–4051, Aug. 2022.
[44] X. Ding et al., “ResRep: Lossless CNN pruning via decoupling remembering
and orgetting,” in Proc. IEEE/CVF Int. Conf. Comput. Vis., 2021,
pp. 4490–4500.
[45] J. Choi et al., “PACT: Parameterized clipping activation for quantized
neural networks,” 2018, arXiv: 1805.06085. [Online]. Available: https:
//api.semanticscholar.org/CorpusID:21721698
[46] M. Rastegari, V. Ordonez, J. Redmon, and A. Farhadi, “XNOR-Net:
ImageNet classification using binary convolutional neural networks,” in
Proc. Eur. Conf. Comput. Vis., B. Leibe, J. Matas,N. Sebe, andM.Welling,
Eds., Cham, Springer International Publishing, 2016, pp. 525–542.
[47] F. Daghero et al., “Human activity recognition on microcontrollers with
quantized and adaptive deep neural networks,” ACM Trans. Embed. Comput.
Syst., vol. 21, no. 4, pp. 1–28, Aug. 2022. [Online]. Available:
https://doi.org/10.1145/3542819
[48] M. Rusci, A. Capotondi, and L. Benini, “Memory-driven mixed low
precision quantization for enabling deep network inference on microcontrollers,”
2019, arXiv: 1905.13082. [Online]. Available: http://arxiv.org/
abs/1905.13082
[49] K.Wang, Z. Liu, Y. Lin, J. Lin, and S. Han, “HAQ: Hardware-aware automated
quantization with mixed precision,” in Proc. IEEE Conf. Comput.
Vis. Pattern Recognit., 2019, pp. 8612–8620.
[50] B. Jacob et al., “Quantization and training of neural networks for efficient
integer-arithmetic-only inference,” in Proc. IEEE/CVF Conf. Comput. Vis.
Pattern Recognit., 2018, pp. 2704–2713, doi: 10.1109/CVPR.2018.00286.
[51] W. Chen et al., “Quantization of deep neural networks for accurate
edge computing,” J. Emerg. Technol. Comput. Syst., vol. 17, no. 4,
pp. 54:1–54:11, Jun. 2021. [Online]. Available: https://doi.org/10.1145/
3451211
[52] J. Lin, W.-M. Chen, Y. Lin, J. Cohn, C. Gan, and S. Han, “MCUNet:
Tiny deep learning on IoT devices,” in Proc. Adv. Neural Inf. Process.
Syst., H. Larochelle, M. Ranzato, R. Hadsell, M. Balcan, and
H.Lin, Eds., Curran Associates, Inc., 2020, pp. 11711–11722. [Online].
Available: https://proceedings.neurips.cc/paper_files/paper/2020/
file/86c51678350f656dcc7f490a43946ee5-Paper.pdf
[53] S. Xu, H.B. LiJ. ZhuangJ. LiuC. CaoLiang, andM. Tan, “Generative lowbitwidth
data free quantization,” in Proc. 16th Eur. Conf. Comput. Vis.,
A.H. VedaldiBischof, T. Brox, and J.-M. Frahm, Eds., Cham, Springer
International Publishing, 2020, pp. 1–17.
[54] Z. Xie, Z. Wen, J. Liu, Z. Liu, X. Wu, and M. Tan, “Deep transferring
quantization,” in Proc. Eur. Conf. Comput. Vis., A. Vedaldi, H. Bischof,
T. Brox, and J.-M. Frahm, Eds., Cham, Springer International Publishing,
2020, pp. 625–642.
[55] J. Lin, W.-M. Chen, H. Cai, C. Gan, and S. Han, “MCUNetV2:
Memory-efficient patch-based inference for tiny deep learning,” 2021,
arXiv:2110.15352, doi: 10.48550/arXiv.2110.15352.
[56] Z. Sun et al., “Entropy-driven mixed-precision quantization for
deep network design,” in Proc. Ad. Neural Inf. Process. Syst., S.
Koyejo, S. Mohamed, A. Agarwal, D. Belgrave, K. Cho, and A.
Oh, Eds., Curran Associates, Inc., 2022, pp. 21508–21520. [Online].
Available: https://proceedings.neurips.cc/paper_files/paper/2022/
file/86e7ebb16d33d59e62d1b0a079ea058d-Paper-Conference.pdf
[57] B. Zoph, V. Vasudevan, J. Shlens, and Q. Le, “Learning transferable
architectures for scalable image recognition,” in Proc. IEEE/CVF Conf.
Comput. Vis. Pattern Recognit., 2018, pp. 8697–8710.
[58] B. Zoph and Q. V. Le, “Neural architecture search with reinforcement
learning,” in Proc. 5th Int. Conf. Learn. Representations, Toulon, France,
2017. [Online]. Available: https://openreview.net/forum?id=r1Ue8Hcxg
[59] Y. Geifman and R. El-Yaniv, “Deep active learning with a neural
architecture search,” in Proc. Adv. Neural Inf. Process. Syst.,
H.H. WallachA. LarochelleF. Beygelzimer d E. Alché-BucFox, and
R.Garnett, Eds., Curran Associates, Inc., 2019, pp. 5974–5984. [Online].
Available: https://proceedings.neurips.cc/paper_files/paper/2019/
file/b59307fdacf7b2db12ec4bd5ca1caba8-Paper.pdf
[60] C. LiP. HaoLi, J. Xiong, and D. Chen, “Generic neural architecture
search via regression,” in Proc. Adv. Neural Inf. Process.
Syst., M.A. RanzatoY. BeygelzimerDauphin, P.Liang, and J. W.
Vaughan, Eds., Curran Associates, Inc., 2021, pp. 20476–20490. [Online].
Available: https://proceedings.neurips.cc/paper_files/paper/2021/
file/aba53da2f6340a8b89dc96d09d0d0430-Paper.pdf
[61] H. Benmeziane, K. E. Maghraoui,H.Ouarnoughi, S.Niar,M.Wistuba, and
N.Wang, “A comprehensive survey on hardware-aware neural architecture
search,” 2021. [Online]. Available: https://arxiv.org/abs/2101.09336
[62] Y. Guo et al., “Towards accurate and compact architectures via neural
architecture transformer,” IEEE Trans. Pattern Anal.Mach. Intell., vol. 44,
no. 10, pp. 6501–6516, Oct. 2022.
[63] F. De Vita, G. Nocera, D. Bruneo, V. Tomaselli, and M. Falchetto, “Ondevice
training of deep learning models on edge microcontrollers,” in Proc.
IEEE Int. Conf. Internet Things IEEE Green Comput. Commun. IEEE
Cyber, Phys. Soc. Comput. IEEE Smart Data IEEE Congr. Cybermatics,
2022, pp. 62–69.
[64] B. Sudharsan, J.G.Breslin, and M. I. Ali,“ML-MCU:Aframework to train
ML classifiers on MCU-based IoT edge devices,” IEEE Internet Things
J., vol. 9, no. 16, pp. 15007–15017, Aug. 2022.
[65] F. De Vita, R. M. A. Nawaiseh, D. Bruneo, V. Tomaselli, M. Lattuada, and
M. Falchetto, “-ff: On-device forward-forward training algorithm for microcontrollers,”
in Proc. IEEE Int. Conf. Smart Comput. (SMARTCOMP),
2023, pp. 49–56.
[66] N. Reddy KP, Y. Geyavalli, D. Sujani, and M. S. Rajesh, “Comparison of
programming languages: Review,” Int. J. Comput. Sci. Commun., vol. 9,
pp. 113–122, Jul. 2018.
[67] T. FunkBucksch and D. Mueller-Gritschneder, “ML training on a tiny
microcontroller for a self-adaptive neural network-based dc motor speed
controller,” in Proc. Int. Workshop IoT Streams Data-Driven Predictive
Maintenance IoT, Edge, Mobile Embedded Mach. Learn., J.S. GamaA.
PashamiM. BifetH. Sayed-MouchaweF. FröningPernkopf, G. Schiele,
and M. Blott, Eds., Cham, Springer International Publishing, 2020,
pp. 268–279.
[68] A. Mostafavi and A. Sadighi, “A novel online machine learning approach
for real-time condition monitoring of rotating machines,” in Proc. 9th RSI
Int. Conf. Robot. Mechatronics, 2021, pp. 267–273.
[69] J. Guan and G. Liang, “A research of convolutional neural network model
deployment in low- to medium-performance microcontrollers,” in Proc.
10th Int. Conf. Wireless Commun. Sensor Netw., New York, NY, USA,
2023, pp. 44–50. [Online]. Available: https://doi.org/10.1145/3585967.
3585975
[70] R. Heymsfeld, Arduinoann. 2022, Accessed: Oct. 10, 2022. [Online].
Available: http://robotics.hobbizine.com/arduinoann.html
[71] K. Kopparapu, E. Lin, J. G. Breslin, and B. Sudharsan, “TinyFedTL:
Federated transfer learning on ubiquitous tiny IoT devices,” in Proc. IEEE
Int. Conf. Pervasive Comput. Commun.Workshops other Affiliated Events,
2022, pp. 79–81.
[72] N. Llisterri Giménez, J. Miquel Solé, and F. Freitag, “Embedded federated
learning over a LoRa mesh network,” Pervasive Mobile Comput., vol. 93,
2023, Art. no. 101819. [Online]. Available: https://www.sciencedirect.
com/science/article/pii/S1574119223000779
[73] N. Llisterri Giménez, M. MonfortGrau, R. PueyoCentelles, and F. Freitag,
“On-device training of machine learning models on microcontrollers with
federated learning,” Electronics, vol. 11, no. 4, 2022, Art. no. 573.
[74] G. Hinton, “The forward-forward algorithm: Some preliminary investigations,”
2022, arXiv:2212.13345, doi: 10.48550/arXiv.2212.13345.
[75] H. Jaeger, “The “echo state” approach to analysing and training recurrent
neural networks-with an erratum note’,” GermanNationalResearch Center
for Information Technology, Bonn, Germany,GMDTech. Rep. 148, 2001.
[76] N. N. Schraudolph, “A fast, compact approximation of the exponential
function,” Neural Comput., vol. 11, no. 4, pp. 853–862,
1999.
[77] D. Costa, M. Costa, and S. Pinto, “Train me if you can: Decentralized
learning on the deep edge,” Appl. Sci., vol. 12, no. 9, 2022. [Online].
Available: https://www.mdpi.com/20763417/12/9/4653
[78] N. Schraudolph, “A fast, compact approximation of the exponential
function,” Neural Computat., vol. 11, pp. 853–62, Jun. 1999,
doi: 10.1162/089976699300016467.
[79] PlatformIO, “PlatformIO core,” 2022. [Online]. Available: https://
platformio.org/
[80] ARM. GNU arm embedded toolchain, 2021. Accessed: Nov. 15, 2022.
[Online]. Available: https://developer.arm.com/downloads/-/gnu-rm
[81] TensorFlow, “TensorFlowlite formicrocontrollers,” 2022. [Online].Available:
https://github.com/tensorflow/tflite-micro
[82] L. Lai, N. Suda, and V. Chandra, “CMSIS-NN: Efficient neural network
kernels for arm cortex-M CPUs,” 2018, arXiv: 1801.06601.
[83] B. Sudharsan et al., “TinyML benchmark: Executing fully connected
neural networks on commodity microcontrollers,” in Proc. IEEE 7thWorld
Forum Internet Things, 2021, pp. 883–884.
[84] Y. LeCun, C. Cortes, and C. J. Burges, “The MNIST database of handwritten
digits,” [Online]. Available: http://yann.lecun.com/exdb/mnist/
[85] R. Fisher, “Iris,” 1988. [Online]. Available: https://archive.ics.uci.edu/ml/
datasets/iris
[86] W. Wolberg, W. Street, and O. Mangasarian, “Breast cancer wisconsin
(diagnostic),” 1995. [Online]. Available: https://archive.ics.uci.edu/ml/
datasets/Breast_Cancer_Wisconsin%28Diagnostic%29
[87] A. Krizhevsky, Learning multiple layers of features from tiny images.
2009, Accessed: Nov. 17, 2022. [Online]. Available: https://www.cs.
toronto.edu/kriz/learning-features-2009-TR.pdf
[88] A. Chowdhery, P. Warden, J. Shlens, A. Howard, and R. Rhodes, “Visual
wake words dataset,” 2019, arXiv: 1906.05721. [Online]. Available: http:
//arxiv.org/abs/1906.05721
[89] S. Ioffe and C. Szegedy, “Batch normalization: Accelerating deep network
training by reducing internal covariate shift,” in Proc. 32nd Int. Conf. Int.
Conf. Mach. Learn., 2015, pp. 448–456.
[90] C. R. Banbury et al., “MLPerf tiny benchmark,” 2021, arXiv:2106.07597.
[Online]. Available: https://arxiv.org/abs/2106.07597


沒有留言:

張貼留言