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