Arm MCU在邊緣AI落地的方法
魯?冰?(《電子產(chǎn)品世界》編輯)
本文引用地址:http://butianyuan.cn/article/201909/405225.htmAI(人工智能)在M級(jí)的便宜的小器件上能不能落地?它需要什么資源,性能又怎么樣?不久前,Arm中國攜手恩智浦半導(dǎo)體在全國進(jìn)行了巡回講演。Arm中國高級(jí)市場(chǎng)經(jīng)理Eric Yang分享了AI的基礎(chǔ)知識(shí),分析認(rèn)為邊緣AI可以通過在MCU這樣的小芯片上實(shí)現(xiàn),并推介了Arm的軟件中間件NN——可以有效地對(duì)接算法和具體芯片,最后列舉出了Arm MCU的應(yīng)用案例。
1 邊緣AI潛力巨大
AI有沒有前途?
前兩年AI非常火,AI公司支付的薪水很高。不過,2019年上半年以來,很多AI公司活得并不是很好。AI到底有沒有機(jī)會(huì)?還需不需要關(guān)注?
如果借鑒歷史,大約在5億年前是單細(xì)胞生物,之后生物學(xué)上出現(xiàn)了寒武紀(jì)大爆發(fā),產(chǎn)生了大量的新生物,其中帶智能的生物慢慢進(jìn)化出來。
現(xiàn)在從嵌入式或者產(chǎn)業(yè)角度來看,有點(diǎn)類似于寒武紀(jì)的前夕。如果從身邊去觀察,會(huì)發(fā)現(xiàn)無論是生活還是工作環(huán)境安裝了很多傳感器,而且傳感器有越來越多的趨勢(shì)。Arm的孫正義先生認(rèn)為,現(xiàn)在還是百億級(jí)、千億級(jí)傳感器的量,到2025年會(huì)有約1萬億的設(shè)備連上傳感器,相當(dāng)于2025年時(shí)到了寒武紀(jì)大爆發(fā)時(shí)期。
不過,那么多傳感器相連,如果都靠傳統(tǒng)的計(jì)算方式,即完全是靠你的算法或控制去實(shí)現(xiàn)一些功能/性能的時(shí)候,是有很大的瓶頸的。所以大量傳感器可能會(huì)采用AI技術(shù),一部分AI在云端,更多的是在嵌入式端。
2 AI中遇到的概念
AI、機(jī)器學(xué)習(xí)(ML)、深度學(xué)習(xí)(DL),這些概念到底什么關(guān)系?
AI是用機(jī)器來模擬人的思維習(xí)慣,讓機(jī)器來達(dá)到人的決策的能力。要實(shí)現(xiàn)這一功能,就需要讓機(jī)器做學(xué)習(xí),這主要是通過概率論、統(tǒng)計(jì)論之類的方法,讓機(jī)器找到算法,以實(shí)現(xiàn)機(jī)器能夠?qū)W習(xí)這樣的功能(如圖1)。
實(shí)現(xiàn)機(jī)器學(xué)習(xí)里面有種方法叫深度學(xué)習(xí)。深度學(xué)習(xí)相當(dāng)于你準(zhǔn)備大量的數(shù)據(jù),然后放到那個(gè)模型里邊去,讓它學(xué)會(huì)“感知+判斷+思維”的能力。在深度學(xué)習(xí)下面,會(huì)有我們經(jīng)常聽到的算法,諸如CNN、RNN等。
3 CNN
在機(jī)器學(xué)習(xí)方面有兩個(gè)方面需要去理解:訓(xùn)練和推斷。第一是若在云端,叫訓(xùn)練,云端需要有巨大的數(shù)據(jù)量做訓(xùn)練;第二是設(shè)備端。設(shè)備端主要是做推斷,即把云端訓(xùn)練好的模型思維方式下載到設(shè)備端,設(shè)備端再根據(jù)獲得的信號(hào)得出一個(gè)推斷的結(jié)果。
訓(xùn)練需要大量的數(shù)據(jù),需要非常高的性能、大量的帶寬去實(shí)現(xiàn)。所以一般要在服務(wù)器、GPU、加速卡上運(yùn)行。
在設(shè)備端,因?yàn)橐呀?jīng)有現(xiàn)成的訓(xùn)練模型,所以只做判斷/推斷,相對(duì)來講要考慮的地方較為簡(jiǎn)單,例如性能方面,中低端的性能就可實(shí)現(xiàn);效率方面,包括成本效率、功耗效率;再有,因?yàn)樵O(shè)備端涉及到聯(lián)網(wǎng),還要有安全隱私的考慮。
那么,哪些功能適合放在設(shè)備端或服務(wù)器端/云端?如圖2,分別從AI的3個(gè)典型應(yīng)用——視覺、音頻以及健康管理來分析。圖2左都是大型的機(jī)器學(xué)習(xí),在服務(wù)器上面,圖2右是設(shè)備端可以實(shí)現(xiàn)的應(yīng)用與技術(shù)。
以視覺來看,首先,如果做具體物體的識(shí)別,例如,這是一條狗,這條是什么品種的狗,或者人臉識(shí)別,這種方式基本上放在服務(wù)器端。如果做類的識(shí)別,例如是狗、車還是飛機(jī),這種識(shí)別就可以放在設(shè)備端了。CIFAR-10就是一種常用來做的標(biāo)準(zhǔn)模型。
例如在音頻方面,如果只是做一個(gè)關(guān)鍵字的識(shí)別,或簡(jiǎn)單的一個(gè)命令的識(shí)別,可以放在設(shè)備端;如果是做語義的識(shí)別(例如你講一句話,讓機(jī)器知道你的意思,回答你下一句話),通常放在云端/服務(wù)器端。
同樣,在健康管理方面,如果讓手機(jī)、手環(huán)或智能手表做一個(gè)動(dòng)作的識(shí)別,例如解釋你是在走路、跑步還是蹲下,這可在設(shè)備端實(shí)現(xiàn);如果要是做具體的疾病識(shí)別,要放在服務(wù)器端實(shí)現(xiàn)。
在嵌入式系統(tǒng)里面,做ML要考慮哪些因素?列表如表1所示。
首先在系統(tǒng)層,你要考慮到效率,因?yàn)榍度胧皆O(shè)備一般都會(huì)有成本的考慮,因?yàn)榱糠浅4?,布設(shè)的端點(diǎn)非常多。另外是功耗的考慮,有的設(shè)備涉及到電池供電。之后還有帶寬,因?yàn)樾枰?wù)器/云去通訊。最后還需要考慮到隱私和加密。
在AI部分,可能你要考慮到的你輸入的種類、參數(shù)、轉(zhuǎn)換的效率、你要得到結(jié)果的精度、你所選用的設(shè)備的算法,或者你要達(dá)到這樣精度要消耗的內(nèi)存資源。
在ML部分經(jīng)常聽到一些算法,諸如CNN、DNN、RNN、LSTN。這些算法對(duì)應(yīng)的常用的應(yīng)用場(chǎng)景,例如CNN適合視覺識(shí)別、圖片識(shí)別,DNN比較適合語音識(shí)別。
表2是Arm做的不同ML算法在不同的內(nèi)存資源和CPU資源情況下得到的結(jié)果。
可見準(zhǔn)確度、消耗的資源跟你的系統(tǒng)呈對(duì)應(yīng)關(guān)系。例如分散式CNN算法可以達(dá)到95%的準(zhǔn)確度,最小的時(shí)候可能只占了不到40 kB內(nèi)存,消耗的CPU運(yùn)算能力只有5.4MOps,這相當(dāng)于人們常見的M0嵌入式設(shè)備就能運(yùn)行起來??梢?,在Arm生態(tài)系統(tǒng)里,從M0到M7,都可以在這些芯片上面去實(shí)現(xiàn)ML功能(如圖3)。這顛覆了人們以前的觀念——一定要有很大的GPU、服務(wù)器、手機(jī)平臺(tái)等去做。
在硬件方面,Arm推動(dòng)MCU芯片合作伙伴,加外設(shè)、加功能去做具體芯片出來。同樣,在軟件方面,Arm也提供了軟件中間件,叫。
4 CMSIS-NN
該軟件中間件的一個(gè)出發(fā)點(diǎn)是全球比較大的一些公司,包括國內(nèi)的百度、阿里等經(jīng)常無償?shù)靥峁C(jī)器學(xué)習(xí)的算法,讓免費(fèi)使用,以在其服務(wù)器上得到接口。但落地時(shí)候怎么辦?因?yàn)椴煌緯?huì)提供不同種類的算法,如果你對(duì)每種算法都去做支持,整個(gè)開發(fā)維護(hù)的工作量會(huì)非常大的,尤其對(duì)于嵌入式設(shè)備的廠家更是如此。
Arm在中間做了一個(gè)標(biāo)準(zhǔn)化的接口優(yōu)化。上面直接去對(duì)接算法,下面去對(duì)接具體的硬件。這就把AI機(jī)器學(xué)習(xí)當(dāng)做是一個(gè)以前的通訊庫,或者是API來用,就可以了。圖4是具體應(yīng)用的流程。
CMSIS-NN在Cortex-M上來實(shí)現(xiàn)的軟件庫,是在2018年1月發(fā)布的,是開源的,你可以看到所有源代碼,因此不會(huì)存在安全、自主可控的困惑。
不僅如此,現(xiàn)在NN 還 針 對(duì) 大 核 , 例 如系列以及Mali GPU,也是開源的,于2018年年中發(fā)布。
至此,CMSIS-NN可以運(yùn)行在Arm所有CPU上。
相比只從那些算法公司下載開源程序、把它移植到Arm CPU上去運(yùn)行,分別對(duì)卷積、池化以及激活函數(shù)方面做對(duì)比,對(duì)比圖如圖5??梢娫诔鼗瘯r(shí),用CMSIS-NN,可以達(dá)到4.6倍性能的提升。
CMSIS-NN效率很高。恩智浦半導(dǎo)體做的一個(gè)在相同的硬件環(huán)境下,CMSIS-NN與的性能對(duì)比。采用的芯片分別是Cortex-M4和的 芯 片 , 在 做 C I F A R - 1 0 時(shí) ,(注:提供的嵌入式版本的CNN模型)用約120 ms才能完成某個(gè)識(shí)別;只需要20 ms左右。
CMSIS-NN一直在更新,基本上每個(gè)季度有優(yōu)化版。
5 用CMSIS-NN做ML的應(yīng)用案例
第一個(gè)應(yīng)用是CMSIS-NN如何與恩智浦半導(dǎo)體的AI平臺(tái)——eIQ平臺(tái)對(duì)接(如圖6)。它是把算法集成好,對(duì)用戶來講,首先是找到一個(gè)事先做好的模型,選擇是否也需要做壓縮的算法。如果不做壓縮,就把它做模型轉(zhuǎn)換到Cortex-M系列里的語言里。只需要把傳感器的信號(hào)輸入,恩智浦的芯片(例如:i.MX RT)就會(huì)做出一個(gè)決策。
實(shí)際上,用Arm MCU芯片做成的產(chǎn)品已有商用化的案例。美國的Amiko公司做的哮喘治療器(如圖7)采用ML算法來做監(jiān)測(cè)、統(tǒng)計(jì)。它的原理比較簡(jiǎn)單,其中的傳感器可以識(shí)別幾個(gè)內(nèi)容。第一,把設(shè)備從正常的狀態(tài)顛倒過來,變成放到嘴里的狀態(tài)。其次,它可以監(jiān)測(cè)到吸入的流量大小。實(shí)現(xiàn)方法是:在云端做好了一個(gè)模型之后,它可以通過這模型來指導(dǎo)這個(gè)吸入哮喘劑是否正確,以及吸的量夠不夠。
本文來源于科技期刊《電子產(chǎn)品世界》2019年第10期第87頁,歡迎您寫論文時(shí)引用,并注明出處。
評(píng)論