近幾年,因應AI與ML應用趨勢浪潮,越來越多企業開始嘗試將這樣的能力帶到靠近數據源的邊緣設備或IoT裝置,來發展各種Edge AI或AIoT應用。例如結合語音指令來控制機器人作業,或是透過AI邊緣攝影機來偵測機臺設備有無故障。但受限于CPU效能、數據吞吐量、內存及數據儲存的影響,想要在資源有限的IoT或嵌入式裝置跑AI或ML推論模型,現在仍然不是一件容易的事。
近年來,一種微型機器學習新技術TinyML順勢而起,試圖從優化硬件或模型來實現裝置上的AI或ML應用,讓ML的推論功能能夠在資源有限的終端裝置上來實現,可說是加速實現Edge AI或AIoT應用的重要關鍵。
TinyML是什么?引用GoogleTensorflow 行動部門負責人Pete Warden的定義,指的是每次執行ML模型推論時,其功耗必須小于1毫瓦(1mW)。
除了考慮到功耗,運算力不足也是實現Edge AI或AIoT應用的關鍵問題。以Inception v4深度學習模型為例,硬件能力需要的運算量就有240個GOPS(每秒執行10億次運算) 但一般singleissue處理器,僅提供個位數的GOPS,甚至不只運算能力,連在內存中存取數據也會影響功耗,例如要從SRAM高速緩存來存取1TB的數據,一顆16奈米CPU每秒所消耗的功耗就超過1瓦。這些都是TinyML的挑戰。
現階段TinyML技術發展,主要是從ML模型與硬件優化來實現低功耗裝置上的ML應用。歸納起來實現TinyML的5種常見ML模型架構和優化的方法,包括降低精度(Reduce Precision)、數據重復利用(Data re-use)、權重壓縮(Weight compression)、轉換(Transforms)、稀疏運算(Sparse computation)。
第一種作法是轉換ML模型及權重的數據單元格式,來降低推論執行所需的運算量,例如將模型的權重從高精度FP32轉成較低精度的FP16或INT8格式。因ML模型需要很多乘加法運算,而高精度ML模型又比低精度ML模型需要的運算量更高,也因此,改用較低精度的ML模型來執行運算,能大幅降低功耗,甚至因運算數據變少,也能因應更高的吞吐量需求。這是第一個可以運用到TinyML的方法。
除了從數據單元格式著手,減少數據重復使用是另一個可行方法。例如可以將CNN神經網絡模型中經常重復使用的權重參數的數值,暫時集中存放到一處,不用每次都從內存來撈取數據,減少不必要任務處理,也能達到降低功耗的作用。
由于現在神經網絡模型體積越來越大,結構越來越復雜,因推論執行需處理的模型參數數量也就越多,大量使用內存來存放這些龐大數據,也造成了不少功耗的損失,也因此有了第3種作法是,透過權重壓縮技術,對于存入內存前的權重參數先進行壓縮,需要時再解壓縮拿來使用,,這樣做好處是,一來可以減少內存的用量,二來能獲得更高的帶寬和更低功耗。
第4種作法則是采用轉換矩陣運算domain的方式,來降低乘法運算的復雜度。一般AI或ML模型運算過程有6成以上都是矩陣的乘法運算,所以只要讓乘法運算變少,就能減少運算量,這是能夠降低運算和功耗的另一種方式。例如將復雜的矩陣運算domain轉換到較簡易Winograd卷積算法的domain做運算,就能降低乘法運算的復雜度。
最后一種方法是稀疏運算,像是運用Relu的激勵函數,在CNN模型運算過程中,使其部分神經元的輸出為零,可以讓神經網絡變得稀疏,在運算時只針對激勵函數輸入數值非零部分做運算,不處理數值為零的部分,透過這樣的處理方式,同樣能達到運算量與功耗降低的效果。
除了優化ML模型和架構外,現在硬件設計過程中,也有一些新作法,來因應TinyML需求。常見3種TinyML硬件平臺,前兩種是以低功耗和AI加速或優化的硬件設計為主,包括有低功耗通用SoC、低功耗micro-NPU,可分別對應到Arm Cortex-M55與Arm Ethos-U55系列IP產品。Arm Cortex-M55最大特色是支持最新的向量擴充指令,與Cortex-M44相比,在語音模型處理性能表現高出8倍之多。Arm Ethos-U55是ARM推出的另一款神經網絡處理器IP產品,不僅省電,在AI處理效能獲得百倍提升,甚至最新一款Arm Ethos-U6產品中,其運算能力可達到1 TOPS。
其中第3種硬件平臺是采取內存運算的硬件架構平臺,如Mythic IPU處理器等,就是采用閃存內運算來執行ML推論,足以支撐113M (百萬)權重數量和每瓦4 TOPs運算能力。
目前TinyML技術上遇到的挑戰,越來越多AI與ML應用,開始追求更高準確度,需要使用資源越來越多,包括運算、內存、功耗等,「但TinyML卻又是要在有限資源下來實現或執行不同的模型或神經網絡,這就是最大的Gap?!?/p>
舉例來說,想要提高神經網絡模型準確度,除了需要有大量的數據做訓練,數據量越大需要做的矩陣運算就更多,還有大量的參數需要調整,而且隨著架構越復雜,需要做很多層神經網絡計算,使用海量存儲器存取數據、參數和每一層計算結果。
盡管TinyML發展才剛起步,隨著AIoT或Edge AI應用越來越火紅,未來將會有越來越多嵌入式裝置結合AI或ML功能,想要真正實現TinyML,這些裝置硬件必須具備每秒兆次(trillions)的乘加法運算能力,而且這樣的運算能力須考慮到硬件空間設計,還有兼顧功耗才行。
審核編輯:湯梓紅
-
ARM
+關注
關注
134文章
9094瀏覽量
367541 -
ML
+關注
關注
0文章
149瀏覽量
34656 -
機器學習
+關注
關注
66文章
8418瀏覽量
132628 -
TinyML
+關注
關注
0文章
42瀏覽量
1237
原文標題:如何優化ML模型與硬件實現TinyML?Arm歸納出5種作法
文章出處:【微信號:易心Microbit編程,微信公眾號:易心Microbit編程】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論