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