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

Raspberry Pi Pico 2 上實(shí)現(xiàn):實(shí)時(shí)機(jī)器學(xué)習(xí)(ML)音頻噪音抑制功能

使用OpenVINO?進(jìn)行優(yōu)化后,為什么DETR模型在不同的硬件上測(cè)試時(shí)顯示不同的結(jié)果?
熵基科技實(shí)現(xiàn)BioCV TinyML與DeepSeek大模型融合
ARM主板定制:打造專(zhuān)屬智能硬件

【「基于大模型的RAG應(yīng)用開(kāi)發(fā)與優(yōu)化」閱讀體驗(yàn)】+Embedding技術(shù)解讀
【「基于大模型的RAG應(yīng)用開(kāi)發(fā)與優(yōu)化」閱讀體驗(yàn)】+大模型微調(diào)技術(shù)解讀
Arm Corstone-320 FVP仿真平臺(tái)介紹
利用Arm Kleidi技術(shù)實(shí)現(xiàn)PyTorch優(yōu)化

如何通過(guò)OSI七層模型優(yōu)化網(wǎng)絡(luò)性能
AI大模型的性能優(yōu)化方法
如何利用ARMxy ARM嵌入式計(jì)算機(jī)的NPU進(jìn)行深度學(xué)習(xí)模型的訓(xùn)練和優(yōu)化?

評(píng)論