《韓非子·說林上》中有一句話,“失火而取水于海,海水雖多,火必不滅矣,遠(yuǎn)水不救近火也。”——指的是失火時用海水救火,雖然海水量大,但遠(yuǎn)離火場,起不到滅火的作用。
這句話用來形容當(dāng)今的云計算與邊緣計算同樣適用,云端人工智能(AI)相當(dāng)于大海,雖然水多、能力強(qiáng),但對于特殊的場景終究遠(yuǎn)水解不了近渴;邊緣AI則可以在如語音識別、人體數(shù)據(jù)分析等對實時性要求高的領(lǐng)域發(fā)揮重要作用。
由于物與物之間的互聯(lián)會產(chǎn)生海量的數(shù)據(jù)處理需求,只有AI強(qiáng)大的計算能力才能夠勝任,物聯(lián)網(wǎng)(IoT)技術(shù)正與AI技術(shù)深度融合,產(chǎn)生AIoT的概念。如果將物聯(lián)網(wǎng)比作遍布全身的周圍神經(jīng)網(wǎng)絡(luò),那么AI就相當(dāng)于人的大腦。要達(dá)到類似于人類的智能,設(shè)備需要進(jìn)行大量的矩陣運算,往往只有部署在云端的大型服務(wù)器才能夠勝任。
由于物聯(lián)網(wǎng)技術(shù)由于是物與物之間的互連,多數(shù)設(shè)備需要電池供電,并且數(shù)據(jù)在物與物之間的流通并不能完全依賴于云端,因此物聯(lián)網(wǎng)通常意味著低成本和低功耗。這就使得AI技術(shù)與IoT技術(shù)的融合產(chǎn)生了一定矛盾與困難。
邊緣AI也可理解為終端AI技術(shù),最早起源于20世紀(jì)90年代的邊緣計算。其中的邊緣指的是物理世界和數(shù)字世界之間的邊界,如各種傳感器連接著真實物理世界和數(shù)字世界,構(gòu)成一組組邊緣節(jié)點;智能化的AI技術(shù)則使機(jī)器能夠以之前完全不可能的方式來觀察、聆聽和感知世界。
過去,將AI推理布置到邊緣意味著從傳感器、攝像機(jī)和麥克風(fēng)收集數(shù)據(jù),然后將數(shù)據(jù)發(fā)送到云端實現(xiàn)推理算法,再將結(jié)果送回到邊緣。由于延遲和能耗較大,這種架構(gòu)對于邊緣普及極具挑戰(zhàn)。邊緣AI的目的是讓邊緣節(jié)點也具備AI推理的功能,提供高級數(shù)據(jù)分析、場景感知、實時決策、自組織與協(xié)同等服務(wù),解決上述問題的同時具備實時性好、帶寬資源要求低、隱私性高等特點。
作為邊緣端最常用的硬件,低功耗微控制器(MCU)可用于實施簡單的神經(jīng)網(wǎng)絡(luò)運算,延遲雖然降低了,但只能在邊緣執(zhí)行簡單任務(wù)。如果給MCU加上AI功能,可以將AI推理從云端推向邊緣端,從而助力電池供電的人工智能和物聯(lián)網(wǎng)設(shè)備發(fā)展。
傳統(tǒng)軟件方式對比AI MCU
“MAX78000就是一款帶有神經(jīng)網(wǎng)絡(luò)加速器的超低功耗人工智能微控制器,支持電池供電的嵌入式物聯(lián)網(wǎng)設(shè)備在邊緣通過快速、低功耗AI推理來制定復(fù)雜決策。”在日前舉辦的ADI MCU Media Workshop上,ADI中國技術(shù)支持中心高級工程師辛毅介紹了ADI最新的邊緣AI解決方案,與傳統(tǒng)的軟件AI方案相比,這種快速、低功耗的決策實施使得復(fù)雜的AI推理能耗降低到前期方案的百分之一以內(nèi),采用AI技術(shù)的電池供電系統(tǒng)可大幅延長其運行時間,有助于實現(xiàn)之前無法逾越的新一代電池供電AI應(yīng)用。

通俗地來講,AI設(shè)備可以“看到”、“聽到”或“感知到”某個物體、聲音或事件,并且像人類一樣做出相應(yīng)的行動。此前用傳統(tǒng)的軟件方法來實現(xiàn)AI,如果要識別一只貓,往往需要程序員編寫一組規(guī)則來描述貓的特征,從而約束程序的運行,比如貓必須有尖尖的耳朵、三角形的鼻子和長長的胡須。
但實際情況和普遍規(guī)則相沖突時,大量例外情況給傳統(tǒng)軟件技術(shù)帶來了巨大的困難。辛毅舉例到,“比如從后面或者側(cè)面識別一只貓,胡須和鼻子都看不見;比如一只純黑的貓,在黑暗中無法識別;又比如貓被遮擋、品種是折耳或沒有腿,軟件方式都無法實現(xiàn)準(zhǔn)確識別。”

但是AI技術(shù)可以通過海量的、不同的貓照片進(jìn)行訓(xùn)練,進(jìn)而提取出貓的深層次抽象特征。這些用于訓(xùn)練的照片既包括貓的普遍特征,又包含大量例外,從而有助于AI技術(shù)準(zhǔn)確地識別出一張新圖片中的貓。
“傳統(tǒng)的軟件方式是閉著眼睛,相當(dāng)于盲人摸象,需要告訴軟件所有貓的特征,費時費力且不準(zhǔn)確;而AI技術(shù)相當(dāng)于海量的學(xué)習(xí)過程,可以睜開眼睛看各種各樣的貓,從而進(jìn)行學(xué)習(xí),訓(xùn)練好之后,看到新的貓圖片就能馬上判斷,可以說是洞若觀火。” 辛毅形象地形容到。
據(jù)介紹,通過集成專用的神經(jīng)網(wǎng)絡(luò)加速器,MAX78000可以在本地以低功耗實時執(zhí)行AI處理,使機(jī)器能夠看到和聽到復(fù)雜的型態(tài)。由于MAX78000執(zhí)行推理的功耗不到微控制器軟件運行功耗的百分之一,大幅提高了機(jī)器視覺、語音和面部識別等應(yīng)用的工作效率。
Arm和RISC-V核心分工明確,集成CNN大幅降低功耗
MAX78000的核心是專用硬件,其設(shè)計旨在最大程度地降低卷積神經(jīng)網(wǎng)絡(luò)(CNN)的能耗和延遲。該硬件運行時幾乎不需要任何微控制器核的介入,操作的流線化程度極高,能量和時間僅用于實施CNN的數(shù)學(xué)運算。為了將外部世界的采集數(shù)據(jù)高效輸入到CNN引擎,用戶可使用兩種集成微控制器核之一:超低功耗ARM Cortex-M4F 核,或功耗更低的RISC-V核。
ADI MCU產(chǎn)品線資深業(yè)務(wù)經(jīng)理李勇表示,兩個內(nèi)核的工作是分配好的。M4F內(nèi)部配有Flash和SRAM,主要處理應(yīng)用和通信,而RISC-V是一顆采用32位精簡指令集的小內(nèi)核,主要配合CNN工作。“由于CNN工作時需要輸入圖片、聲音、波形等原始數(shù)據(jù),RISC-V內(nèi)核會將數(shù)據(jù)搬運至存儲空間,再用于CNN。經(jīng)過硬件計算,CNN將原始數(shù)據(jù)通過矩陣乘法和加法得到特征值,再放入內(nèi)存進(jìn)行比對。”

據(jù)辛毅介紹,MAX7800X系列的數(shù)據(jù)加載和啟動由MCU內(nèi)核負(fù)責(zé),而AI推理由CNN加速器專門負(fù)責(zé)。打個比喻,“對于AI處理而言,MAX7800X的兩個微控制器內(nèi)核就相當(dāng)于專門負(fù)責(zé)買菜的媽媽,而卷積神經(jīng)網(wǎng)絡(luò)加速器則相當(dāng)于專門做菜的爸爸。借助在芯片內(nèi)部集成的卷積神經(jīng)網(wǎng)絡(luò)加速器就可以完成AI推理,不需要再通過互聯(lián)網(wǎng)上傳云端。”
由于MCU內(nèi)核完成加載和啟動后就不需要任何操作了,原則上不介入AI推理,因此功耗很低。兩個硬件分工合作讓MAX7800X系列一不需要聯(lián)網(wǎng),二支持電池供電,滿足了邊緣AI的要求。
與通用MCU、FPGA、GPU、DSP等邊緣AI方案對比
李勇表示,MAX78000在功耗、速度、成本三個方面達(dá)成平衡。通常邊緣AI可由通用MCU完成,也可由FPGA、GPU、DSP等專門的芯片完成。
比較常見的有基于Arm Cortex-M4的MCU內(nèi)置DSP協(xié)處理器,這類方案需要數(shù)學(xué)方面的運算,適用于如屏幕分析等工業(yè)應(yīng)用;純MCU方案多采用8位、16位、32位處理器,相對較簡單也會更節(jié)約晶圓空間,適用于家電、玩具、消費品等應(yīng)用;MCU+RISC-V+FPG則適合更專業(yè)、更復(fù)雜的應(yīng)用,RISC-V內(nèi)核主要作為Sensor hub,如在可穿戴設(shè)備中,RISC-V可在Arm內(nèi)核處于sleep狀態(tài)時調(diào)取數(shù)據(jù),等Arm內(nèi)核喚醒時再對這些數(shù)據(jù)進(jìn)行處理,“這種方案往往靈活度差一些,并且由于加入太多功能,針對普通應(yīng)用時成本無法降低。”

由于獨特的架構(gòu)和分工,MAX78000與運行在低功耗MCU上的純軟件解決方案相比具備更高的數(shù)據(jù)吞吐量,速度提高了100倍,但成本只是FPGA或GPU方案的零頭;相比MCU加DSP的方案,MAX78000的功耗不到該方案的百分之一。
“我認(rèn)為這些方案各有特點,適用于不同的應(yīng)用場景,按需配置。這也是為什么市場上有很多不同的CPU被大家采用。”李勇說到。

談到ADI為何要在MCU中集成硬件CNN,而不直接采用通用MCU運行軟件神經(jīng)網(wǎng)絡(luò),李勇認(rèn)為主要是因為功耗。以采用Cortex-M7核心的通用MCU為例,雖然主頻高達(dá)200MHz,但MCU需要長時間全力運行CNN算法,導(dǎo)致功耗較高。“集成了CNN后可以很快計算出來,之后對應(yīng)的設(shè)備便進(jìn)入睡眠(sleep)狀態(tài),很大程度降低了功耗。我們認(rèn)為,在未來的一些特殊邊緣應(yīng)用中,這是非常重要的特征。”
與競品MCU的對比
目前ADI的邊緣AI解決方案MA7800X系列主要包含兩款A(yù)I MCU——MAX78000和MAX78002,二者都基于Arm Cortex-M4F和RISC-V的低功耗微處理器,搭載專用的卷積神經(jīng)網(wǎng)絡(luò)加速器執(zhí)行AI推理。MAX78000可支持多達(dá)3.5M的模型權(quán)重,MAX78002則支持多達(dá)16M的模型權(quán)重,后者不僅可以做到圖像的識別,還可以進(jìn)行復(fù)雜的視頻分析。

MAX7800X系列的相關(guān)特性總結(jié)如下:
主要優(yōu)勢
- 低能耗:硬件加速器與超低功耗ARM M4F及RISC-V微控制器相結(jié)合,將智能化實施推進(jìn)到邊緣,能耗不足嵌入式競爭方案的百分之一。
- 低延遲:在邊緣執(zhí)行AI功能,實現(xiàn)復(fù)雜的認(rèn)知,使IoT應(yīng)用減少或省去云端事務(wù)處理,速度提高到軟件方案的100倍。
- 高度集成:帶有神經(jīng)網(wǎng)絡(luò)加速器的低功耗微控制器使得在電池供電的IoT設(shè)備中是實現(xiàn)復(fù)雜、實時認(rèn)知成為可能。
應(yīng)用場景
- 人臉識別:不僅可以識別人臉,也可以識別物體、寵物等;
- 災(zāi)難檢測:煙感、煙霧監(jiān)測;火災(zāi)監(jiān)測;泥石流監(jiān)測;震動監(jiān)測;
- 醫(yī)療應(yīng)用:心電圖;心率、血液數(shù)據(jù);
- 指令識別:語音指令控制智能家居;
- Speaker識別:可以識別指令的發(fā)出人
以MAX78000為例,辛毅將MAX78000、ADI通用MCU MAX32650和某競品MCU執(zhí)行相同AI推理所花費的時間和功耗做了對比,分別評估了MAX78000的人臉識別(圖像識別、視覺識別)和關(guān)鍵字識別(音頻識別、聽覺識別)性能。從下圖可以看到,不論是推理速度還是推理功耗,MAX78000在兩項識別上的表現(xiàn)均優(yōu)于MAX32650和競品MCU。

已有大量應(yīng)用實例
鑒于AI開發(fā)的挑戰(zhàn)性,ADI還提供支持資源和工具以實現(xiàn)平穩(wěn)的評估和開發(fā)體驗,包括數(shù)據(jù)手冊、應(yīng)用筆記、評估套件、參考設(shè)計、教學(xué)視頻、工具和例程等。MAX78000 EVKIT#包括音頻和攝像頭輸入,開箱即用的演示平臺支持大字表關(guān)鍵詞檢索和面部識別。完備的文檔可幫助工程師訓(xùn)練MAX78000神經(jīng)網(wǎng)絡(luò),且采用其日常使用的工具TensorFlow或PyTorch。
在硬件方面,ADI已經(jīng)發(fā)布了許多有關(guān)MCU的評估板、最小板和參考設(shè)計,支持KEIL、IAR、mbed、eclipse等專門的平臺。

根據(jù)預(yù)測,2025年將有75%的數(shù)據(jù)產(chǎn)生在邊緣側(cè)進(jìn)行處理,因此邊緣AI可以在許多方面大顯身手。李勇和辛毅介紹了MAX7800X在物聯(lián)網(wǎng)設(shè)備上的各類應(yīng)用。
實現(xiàn)視覺識別方面,可以用在考勤打卡、智能門鎖等電池供電的物聯(lián)網(wǎng)設(shè)備上的人臉識別;攝像頭上集成MAX78002,可以實現(xiàn)垃圾分類、產(chǎn)品分裝、快遞分揀等功能,相關(guān)案例有雞蛋計數(shù)相機(jī)、可識別冰箱內(nèi)飲料數(shù)量的車載冰箱以及用于山火監(jiān)測等。

MAX7800X系列的關(guān)鍵字識別功能,可以識別出用戶的語音指示來進(jìn)行操作,可以用在語音控制的物聯(lián)網(wǎng)設(shè)備上,比如智能音箱、電動窗簾、智能照明等等。由于聲音就是一種振動,MAX7800X還可以用于振動識別,比如工業(yè)檢測領(lǐng)域。相關(guān)案例有可提取用戶語音指令關(guān)鍵字的智能頭盔、工業(yè)中的管道震動分析是否發(fā)生泄漏等。