當(dāng) TinyML 小組最近召開成立大會(huì)時(shí),成員必須解決一些基本問題,首先是:什么是 TinyML?
TinyML 是一個(gè)工程師社區(qū),專注于如何在超低功耗系統(tǒng)中最好地實(shí)施機(jī)器學(xué)習(xí) (ML)。他們的第一次每月會(huì)議致力于定義問題。機(jī)器學(xué)習(xí)是否可以用于微控制器等低功耗設(shè)備?是否需要專業(yè)的超低功耗機(jī)器學(xué)習(xí)處理器?
Qualcomm AI Research 的 Evgeni Gousev 將 TinyML 定義為消耗 1mW 或以下的機(jī)器學(xué)習(xí) (ML) 方法。Gousev 表示,1mW 是智能手機(jī)中永遠(yuǎn)在線應(yīng)用的“神奇數(shù)字”。
“有很多關(guān)于云 ML 的討論,而智能手機(jī)級(jí)別的 ML 變得越來越復(fù)雜,”他說?!暗绻悴榭磾?shù)據(jù),90% 的數(shù)據(jù)都在現(xiàn)實(shí)世界中。您如何連接所有這些相機(jī)、IMU 和其他傳感器并在該級(jí)別進(jìn)行 ML?”
“微型機(jī)器學(xué)習(xí)將變得龐大,迫切需要推動(dòng)微型機(jī)器學(xué)習(xí)的整個(gè)生態(tài)系統(tǒng),包括應(yīng)用程序、軟件、工具、算法、硬件、ASIC、設(shè)備、晶圓廠和其他一切,”Gousev 說.
TensorFlow 精簡(jiǎn)版
谷歌工程師 Daniel Situnayake 介紹了 TensorFlow Lite 的概述,這是谷歌 TensorFlow 框架的一個(gè)版本,專為包括微控制器在內(nèi)的邊緣設(shè)備而設(shè)計(jì)。
“TensorFlow Lite 一直以手機(jī)為目標(biāo),但我們很高興能在更小的設(shè)備上運(yùn)行它,”他說。
在 TensorFlow 中構(gòu)建模型后,工程師可以通過 Tensor Flow Lite 轉(zhuǎn)換器運(yùn)行它,該轉(zhuǎn)換器“使其更小并執(zhí)行量化之類的操作,這使您可以將模型的大小和精度降低到合適的規(guī)模在你的目標(biāo)設(shè)備上,”他說。
Situnayake 描述了一種可用于提高電源效率的技術(shù),該技術(shù)涉及將模型鏈接在一起。
“想象一個(gè)分類器的級(jí)聯(lián)模型,其中你有一個(gè)非常低功率的模型,幾乎不使用任何功率來檢測(cè)是否有聲音發(fā)生,然后另一個(gè)模型需要更多的能量來運(yùn)行,它可以確定它是否是人類語音,”他解釋道?!叭缓螅挥性跐M足這些條件時(shí)才會(huì)喚醒一個(gè)更深層次的網(wǎng)絡(luò),它會(huì)使用更多的電力和資源。通過將這些鏈接在一起,您只需在需要時(shí)喚醒[能源密集型],因此您可以大大節(jié)省能源效率?!?
Nat Jefferies 是 Google 的“微控制器 TensorFlow Lite”團(tuán)隊(duì)的工程師,他描述了現(xiàn)代消費(fèi)電子產(chǎn)品對(duì)能源消耗的嚴(yán)格要求的趨勢(shì),盡管它具有復(fù)雜的功能和復(fù)雜的傳感器系統(tǒng)。這些小工具可能使用需要持續(xù)數(shù)月或數(shù)年的電池運(yùn)行,或者使用能量收集。
“我們認(rèn)為最好的解決方案是 Tiny ML——在微控制器上進(jìn)行深度學(xué)習(xí),”他說。“這使我們能夠進(jìn)行 CPU 周期和傳感器讀取,這 [不消耗太多功率],而不是將所有信息發(fā)送到芯片外...... TinyML 可用于將傳感器數(shù)據(jù)壓縮成幾個(gè)字節(jié),你然后可以發(fā)送……只需一小部分功率,”他說。
Jefferies 說,最近在谷歌挑戰(zhàn)中,參賽者開發(fā)了 250kbyte 的模型來進(jìn)行人員檢測(cè),收到了許多令人印象深刻的提交,并“驗(yàn)證了我們所做的事情是有意義的”。
“目前,我們能夠?qū)?TensorFlow 模型縮小到可以將它們安裝在微控制器上的程度,這就是為什么現(xiàn)在是進(jìn)入這一領(lǐng)域的絕佳時(shí)機(jī),”他說?!拔覀兒芨吲d能夠啟動(dòng)這個(gè)過程?!?
谷歌在微控制器上的 TensorFlow Lite 路線圖包括開源谷歌的一些演示、與芯片供應(yīng)商合作優(yōu)化內(nèi)核、優(yōu)化 TensorFlow Lite 的內(nèi)存使用以在相同的設(shè)備上運(yùn)行更復(fù)雜的模型,以及支持更多的開發(fā)平臺(tái)(SparkFun Edge 是唯一的到目前為止支持的板,但 Arduino 和 Mbed 板支持即將推出)。
專業(yè)設(shè)備
為機(jī)器學(xué)習(xí)提供專業(yè)低功耗應(yīng)用處理器案例的是 GreenWaves Technologies 業(yè)務(wù)開發(fā)副總裁 Martin Croome。Croome 同意業(yè)界關(guān)于如何進(jìn)行超低功耗機(jī)器學(xué)習(xí)的討論遲到了。
“我們迫切需要更多地關(guān)注這一領(lǐng)域,無論是從算法的角度還是從我們的[硬件]世界,”他說。
GreenWaves 開發(fā)了一款 RISC-V 應(yīng)用處理器 GAP8,該處理器專注于邊緣設(shè)備的推理,功耗為毫瓦,并提供超低待機(jī)電流。該公司的目標(biāo)是電池供電的設(shè)備以及使用能量收集的設(shè)備。
多種技術(shù)用于降低功耗。這包括并行化,但不是為了加快速度;使用 8 個(gè)內(nèi)核來允許較慢的時(shí)鐘速度,這允許內(nèi)核電壓下降,從而節(jié)省能源(實(shí)際上,時(shí)鐘頻率是動(dòng)態(tài)調(diào)整的,取決于工作負(fù)載)。
該芯片面向卷積神經(jīng)網(wǎng)絡(luò) (CNN),硬件加速器在單個(gè)時(shí)鐘周期內(nèi)對(duì) 16 位數(shù)據(jù)執(zhí)行 5×5 卷積(不包括回寫)。顯式內(nèi)存管理依賴于廣泛用于圖像處理的 CNN 的性質(zhì);圖像傳感器是固定大小的,推理需要相同數(shù)量的權(quán)重,結(jié)果總是相同的大小。因此,一個(gè)工具可以在編譯時(shí)為所有數(shù)據(jù)移動(dòng)生成代碼。
Croome 承認(rèn),足夠?qū)I(yè)化以有效處理 ML 工作負(fù)載,同時(shí)保持足夠的靈活性以響應(yīng)技術(shù)進(jìn)步是一個(gè)棘手的平衡。
“人工智能的范圍正在以令人難以置信的速度向前發(fā)展。今天關(guān)于如何做事的好主意可能不是明天的好主意,”克魯姆說?!叭绻覀冞^于專業(yè)化,我們將非常擅長(zhǎng)加速每個(gè)人去年所做的事情,這對(duì)公司不利。因此,我們?cè)噲D平衡靈活性、可編程性和加速之間的差異?!?
克魯姆說,GreenWaves 的芯片已經(jīng)打樣一年,將于本月開始生產(chǎn),并將在第三季度末向客戶批量發(fā)貨。
TinyML 聚會(huì)于每個(gè)月的最后一個(gè)星期四在灣區(qū)舉行,向來自工業(yè)界和學(xué)術(shù)界的與會(huì)者開放。