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 的主要優勢包括模組化軟體架構、可新增自訂硬體加速器以及在資源受限裝置上進行裝置上訓練的能力。

2025年2月12日 星期三

Arm Cortex-M & Ethos-U55 ML開發者指南

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

完整內容: https://hackmd.io/@OmniXRI-Jack/arm_developer_cortexm55_ethosu55_guide

資料來源: ML Developers Guide for Cortex-M Processors and Ethos-U NPU Version 1.1

本網頁僅供自我學習及快速查找用,請勿移作他用。為方便閱讀,相關章節及圖示編號已作過微調。全文採用AI翻譯並以人工進行調整,非Arm授權翻譯之版本,如有翻譯不當煩請私訊告知。另外本文件原始相關著作權、權利義務及使用限制請以Arm官方英文版本為準。

  • Arm Cortex-M & Ethos-U55 ML開發者指南
    • 1.概述
      • 1.1.目標受眾
      • 1.2.邊緣設備上的機器學習
      • 1.3.ML計算要求
      • 1.4.ML開發過程的概述
      • 1.5.用於ML開發的工具和軟體
      • 1.6.針對Ethos-U NPU
    • 2.ARM Cortex-M Provor的ML軟體開發
      • 2.1.ML軟體框架選項
      • 2.2.使用TFLM的範例軟體開發流
      • 2.3.重新訓練ML模型
      • 2.4.更多資訊
    • 3.Arm Ethos-U NPU
      • 3.1.Ethos-U硬體體系結構
      • 3.2.Ethos-U系統整合
      • 3.3.Corstone參考設計
      • 3.4.ML軟體支持Ethos-U
      • 3.5.軟體體系結構方案和用例
      • 3.6.Ethos-U的其他軟體和工具
      • 3.7.將Ethos-U軟體移植到新的硬體平台
      • 3.8.自定義Ethos-U驅動程序和RTOS整合
    • 4.Arm Ethos-U NPU的工具支持
    • 5.Arm ML動物園
      • 5.1.整合Arm ML-Zoo模型
    • 6.ML嵌入式評估套件
      • 6.1.開始使用ML嵌入式評估套件
      • 6.2.超越基本知識
    • 7.基於CMSIS包裝的ML範例
      • 7.1.先決條件
      • 7.2.編譯基於CMSIS的ML範例
      • 7.3.在您自己的項目中使用TFLM CMSIS包裝
    • 8.分析和優化ML模型
      • 8.1.Ethos-U Vela優化
      • 8.2.運算子映射和用法
      • 8.3.MLIA指導優化(實驗)
      • 8.4.Ethos-U性能分析
    • 9.MLOPS系統
      • 9.1.許可證激活
      • 9.2.範例專案
      • 9.3.vcpkg
    • 10.Ethos-U的資源
      • 10.1.產品頁面
      • 10.2.產品文檔
      • 10.3.軟體和範例
      • 10.4.其他資源
      • 10.5.合作夥伴解決方案


2025年1月15日 星期三

從 CES2025 看邊緣智慧如何走進療癒商機

作者:Jack OmniXRI, 2025/1/14

20250114_Fig00.

CES 2025[1] 已於上週(1/7 - 1/11)正式落幕,各項創新技術令人眼花瞭亂,台灣亦有許多廠商投入其中,真不愧是電子業年度最大盛事。此次開幕前, NVIDIA 老黃精彩的演講吸引了全世界的目光,除了帶來更多平價、高算力的產品外,並一口氣展示了近二十個合作伙伴生產的「人形機器人」,更預言了「人形機器人」將是未來二十年最重要的產業,同時還有機會帶動數兆美元的經濟活動,想想都令人興奮不已。

不過放完煙火後,冷靜想想,那些人形機器人所需應用到的物理模擬、機電整合、人工智慧等技術,若沒有一個超大團隊、長期耕耘似乎很難在短時間內完成可上市之產品。

於是聰明的廠商不禁想起當年 SONY 為了開發多足機器人失敗後產生的娛樂用電子狗 SONY AIBO(1999)[2]的案例,即然玩不動大型專案,那就把技術用在不用長得像人、沒人會太在意推論能力的「療愈型機器人」市場。而這樣的產品不只可以療愈老人、大人、小孩的心,就連毛小孩也成了重點使用對象。

說起具有與人類互動能力的娛樂型及療癒型機器人,相信大家都不陌生,從各種電影、動漫中都可看到,而現實中也有不少,像是日本石黑浩教授的 Telenoid R1(2010)[3]、華碩的 Zenbo(2016)[4]、「女媧創造」的 Kebbi(2018)[5]等。

20250114_Fig01.
Fig. 1 互動式娛樂型/療癒型機器人。(OmniXRI整理製作,2025/01/14)

隨著這2022年底興起的 ChatGPT 自然對話技術及最近一年多模態AI模型的快速發展,讓機器人聽得懂、看得懂已不再是困難的事情,因此賦與機器人更多互動能力,就不是三、五年前那種簡單電腦視覺(Computer Vision)及自然語言處理(NLP)的等級了,因此在去(2024)年 CES 就有推出一些陪伴機器人。[6]

20250114_Fig02.
Fig. 2 CES 2024 陪伴機器人相關產品。[6] (OmniXRI整理製作,2024/02/15)

今年 CES 會場上有展出更多療癒型機器人,以下就簡單幫大家整理一下,或許看完這篇文章觸類旁通後, AI 高手們也能自己動手做一台專屬於自己的療癒機器人,用來安慰自己因為寫不出程式被老闆痛罵後受傷的心了。

2024年12月21日 星期六

如何使用 Intel AI PC 及 OpenVINO 實現虛擬主播

作者: Jack OmniXRI 2024/12/12
20241212_Digital_Human_Fig00

2022年底 OpenAI 引爆大語言模型(Large Lauguage Model, LLM)及生成式人工智慧(Generative Artificial Intelligence, GenAI),從此有各種文字、聲音、影像及多模態的應用,其中「虛擬主播」就是很常的應用例,如像民視的「敏熙」就是很經典的案例。

說到虛擬主播,其演進歷史也有數十年,早年需由美工人員大費周章設計好 3D 人物模型,再請配音員配上固定對白,最後由動畫人員把肢體動作、對白和嘴形對好,才能完成影片輸出,常見於高階 3D 電玩中較精緻的非玩家角色(Non-Player Character, NPC)。

後來隨著傳統電腦視覺及 3D 動畫技術演進,慢慢開始有了虛擬代理人(Virtual Agent)VTuber (Video + Youtuber)出現,只要事先準備好可愛的 3D 人物模型(公仔),加上高階動作補捉器(Motion Capture),再請真人表演肢體及臉部動作來驅動 3D 公仔,這樣可大幅減少美工及動畫人員的工作。早期電腦性能較差只能採預錄加上後處理合成方式處理,像日本「初音未來」這類「虛擬偶像」及擬真 3D 電影「阿凡達」就是知名代表。

後來隨電腦性能及電腦視覺技術成熟,只需使用一般網路攝影機,就能即時偵測到表演者的動作、表情並驅動 3D 公仔,一般會稱呼表演者為 VTuber(Video Youtuber),像日本知名「絆愛」、台灣 Yahoo TV 的「虎妮」就屬此類。這樣的技術很適合哪些不露臉的表演者和真實世界的互動,但缺點也是沒有真人就無法操作了,且真人表演不流暢也會影響虛擬人物表現。

十多年前深度學習電腦視覺及自然語言處理(Natual Language Processing, NLP)技術興起,讓電腦有機會能完全控制 3D 公仔的肢體動作、語音轉文字(Speech To Text, STT)、自然語言理解(Natual Language Understanding, NLU)、對話內容產生、語音轉文字(Text To Speech, TTS),於是開始有了虛擬助理(Vitrual Assistant)和虛擬代理人(Virtual Agent)出現。而隨著大語言模型及生成式技術越來越成熟,像真人一樣互動的數位分身(大陸慣稱數字人)(Digital Human, Meta Human)也開始出現在各種場域中,如捷運站的虛擬客服。

20241212_Digital_Human_Fig01
Fig. 1 虛擬分身演進,3D人物、人臉建模,動作、表情補捉、真人驅動VTuber,大語言模型及生成式AI客服、主播。(OmniXRI整理製作, 2024/12/12)

為了使大家能更進一步理解如何實作一個簡單離線版(邊緣端)的虛擬主播,可以輸入所需文字,產生對應語音,配合閉嘴人物影片生成新的對嘴影片。接下來就分別從「推論硬體及環境建置介紹」、「MeloTTS 文字轉語音生成」、「Wav2Lip 自動對嘴影片生成」及「建置完整虛擬主播」等四大部份作更進一步說明。

完整範例程式可參考下列網址。
(註:本文範例不適用 Google Colab 執行,僅限 Intel OpenVINO Notebooks 虛擬環境下使用)
https://github.com/OmniXRI/digital_human

2024年12月18日 星期三

【vMaker Edge AI專欄】 2024 合輯

 作者:Jack OmniXRI, 2024/12/18

感謝大家一年來的支持,為方便大家查找,這裡幫大家把 2024 年發表過的 12 期清單整理如下,如果還沒看過的朋友也可順便了解一下,看過的朋友也可回味一下,希望大家都能有所收獲。

vMaker_EdgeAI_2024合輯

  1. 【vMaker Edge AI專欄 #13】 誰說單晶片沒有神經網路加速器NPU就不能玩微型AI應用?
  2. 【vMaker Edge AI專欄 #14】 從CES 2024 看Edge AI及TinyML最新發展趨勢
  3. 【vMaker Edge AI專欄 #15】 從MWC 2024看AI手機未來發展
  4. 【vMaker Edge AI專欄 #16】AIPC開箱實測 ─ Yolov8斜物件偵測
  5. 【vMaker Edge AI專欄 #17】 開發者如何選擇 Edge AI 開發方案
  6. 【vMaker Edge AI專欄 #18】從Computex 2024看邊緣智慧明日之星NPU
  7. 【vMaker Edge AI專欄 #19】 當微處理器(MCU)遇上神經網路處理器(NPU)能擦出什麼新火花?
  8. 【vMaker Edge AI專欄 #20】 單晶片也能輕鬆玩AI影像辨識?難道土耳其大叔來了?
  9. 【vMaker Edge AI專欄 #21】 從2024自動化展看智慧機器人發展趨勢
  10. 【vMaker Edge AI專欄 #22】使用Intel OpenVINO搭配YOLOv11輕鬆駕馭姿態偵測
  11. 【vMaker Edge AI專欄 #23】 邊緣端小語言模型崛起,開發板跟上了嗎?
  12. 【vMaker Edge AI專欄 #24】 如何使用 Gradio 快速搭建人工智慧應用圖形化人機介面

延伸閱讀:

[A] 許哲豪,vMaker Edge AI專欄 2023合輯
https://omnixri.blogspot.com/2023/12/vmaker-edge-ai-2023.html

本文同步發表在【台灣自造者 vMaker】

2024年12月8日 星期日

【vMaker Edge AI專欄 #24】 如何使用 Gradio 快速搭建人工智慧應用圖形化人機介面

作者:Jack OmniXRI, 2024/12/15

vMaker_EdgeAI_24_Fig00

相信很多朋友都是使用 Python 及 Jupyter Notebook 環境在開發人工智慧應用程式,不論是影像辨識、分類,還是大語言模型、影音生成應用。當只能使用命令列(Command Line)模式操作而沒有圖形化人機介面(Gaphical User Interface, GUI),那麼使用上就會變得非常不直覺且不方便。

傳統上要開發 Python GUI 大概會想到使用 Tkinter, PySide, PyQT 等工具,但這些工具比較適合開發桌機或手機版的應用,並不容易和 Jupyter Notebook 這類網頁版程式整合,包含 Google Colab, Intel OpenVINO Notebooks, Hugging Face 等。所以這裡要幫大家介紹另一項常見的 GUI 開源工具「Gradio」。[1]

Gradio 提供了很便捷的網頁型式的各種輸入和輸出模組,如下所示。[2]

  • 應用介面:Interface(簡單應用)、Blocks(客製化應用)
  • 輸出輸入:文字框(Textbox)、資料框(DataFrame)、影像(Image)、下拉盒(Dropdown)、數字(Number)、文字說明(Markdown)、檔案(File)
  • 控制元件:按鍵(Button)
  • 版面佈局:標籤頁(Tab)、列佈局(Row)、行佈局(Column)

以上內容除了可直接顯示在 Jupyter Notebook 欄位上,還可透過獨立網頁顯示,包括裝置端(本地端)網址(http://localhost:7860),或公開(雲端)網址(https://xxxx.gradio.live),方便分享結果給其它人使用。

接下來就依序介紹幾個常用模組的使用方式給大家參考。完整範例可點擊下列連結直接於 Google Colab 上啟動。

Open In Colab

建議開啟後,先點擊選單「檔案」─「在雲端硬碟中儲存複本」,方便之後可以修改及測試程式。接著點擊選單「執行階段」─「全部執行」可一口氣把所有範例都執行一遍。

vMaker_EdgeAI_24_Fig01
Fig. 1 Google Colab 工作及執行畫面。(OmniXRI整理製作, 2024/12/15)

【頂置】簡報、源碼、系列文快速連結區

常有人反應用手機瀏覽本部落格時常要捲很多頁才能找到系列發文、開源專案、課程及活動簡報,為了方便大家快速查詢,特整理連結如下,敬請參考! Edge AI Taiwan 邊緣智能交流區 全像顯示與互動交流區 台科大(NTUST) 人工智慧與邊緣運算實務 開南大學...