在學習過程中,看到《TinML Deployment Workding Group White Paper #1》一文,覺得不錯,特將部分翻譯出來。文末附上本文的英文鏈接,敬請參閱。由于本人水平有限,不足之處,還請大家多多指正!
TinML Deployment Workding Group?White?Paper #1
2023年2月20日
交付TinyML產品需要的不僅僅是“擬合和預測”的開發(fā)。
這是系列白皮書的第一篇,探討在云端的邊緣部署超低功耗機器學習所面臨挑戰(zhàn)和解決方案。作者是 tinyML? Foundation 部署工作組成員。所表達的觀點并不一定代表tinyML Foundation、贊助商或作者的雇主。
數(shù)字化轉型市場正在迅速增長,到2025年將達到一萬億美元市場規(guī)模。機器學習也正在迅速獲得關注,預計在未來幾十年內將增長到數(shù)萬億美元的市場規(guī)模。這樣的市場動態(tài)導致了對相應解決方案的巨大需求,需要開發(fā)與之相匹配的解決方案。
盡管,在過去十年里,用于機器學習訓練的計算機資源每六個月翻一番,但缺少數(shù)據(jù)是導致機器學習項目失敗的主要原因之一。這個問題對于“線下業(yè)務”尤為重要,因為在這些業(yè)務中,機器學習算法需要智能傳感器才能獲得真實世界的信息。基本上,除了人類所建設的線下基礎設施外,周圍的一切都已經數(shù)字化了。
公司往往高估數(shù)據(jù)的有效性,導致項目計劃進程中斷,這需要更好數(shù)據(jù)集來支持運作。因此,硬件在軟件相關的項目進程中發(fā)揮著越來越大的作用,因為機器學習算法和數(shù)字化轉型軟件需要智能傳感器才能獲得真實世界的信息。這一重要環(huán)節(jié)的有效性和確保數(shù)據(jù)真實性的監(jiān)督者,是提供穩(wěn)定數(shù)據(jù)流以提高機器學習效率的關鍵。
tinyML社區(qū)在硬件和軟件優(yōu)化方面取得了顯著的技術和商業(yè)進展,使得在傳感器上評估和訓練機器學習模型既快速又節(jié)能。甚至有商業(yè)上成功的“無代碼”解決方案平臺,用戶無需編寫代碼即可進行模型開發(fā)。
遺憾的是,大多數(shù)工具都集中在開發(fā)過程而非部署過程,不包括機器學習模型訓練和將生成的模型加載到所選目標設備上。缺少對設備部署和管理過程的相關支持,而這是任何準備投產解決方案的重要組成部分。
做個恰當?shù)念惐?,漂亮的汽車開發(fā)好了(構建模型的算法和工具),但卻沒有適當?shù)母咚俟废到y(tǒng)(部署)跑汽車。這不是TinyML獨有的挑戰(zhàn),物聯(lián)網設備也面臨著同樣的挑戰(zhàn)。因此,我們打算利用現(xiàn)有的工作來部署物聯(lián)網,并專注于TinyML獨特的要求和功能。
本文的主要目的是就部署的最佳實踐展開討論,并在我們社區(qū)內部達成一些共識或找出不同意見。然后,我們希望將討論延伸到那些對產品開發(fā)或應用部署感興趣的人。為他們提供一個路線圖,讓他們選擇支持,或將知識運用到他們自己的工作中。最后,我們希望與更廣泛的機器學習用戶和開發(fā)者社區(qū)交流合作。
部署定義
部署是指服務準備就緒后的所有活動(云端),代碼和模型已準備就緒,物理設備已制造完成,但在裝運或現(xiàn)場安裝前尚未編程或配置。
本文討論TinyML的部署。必須認識到這些部署可能對社會產生的影響。確保TinyML部署安全、可信和合乎道德。與TinyML部署相關的問題和根據(jù)部署所采取的行動包括:公平和包容,可靠和安全,隱私與安全,透明,責任。
物聯(lián)網部署基礎
在討論TinyML部署的細節(jié)前,了解物聯(lián)網基礎知識非常重要,對所有部署都是通用的。在規(guī)劃物聯(lián)網部署時,需要考慮各種技術和運營方面的問題。在這里,我們將介紹適用于大多數(shù)物聯(lián)網部署的一些要點,這也與TinyML設備的部署相關。
物聯(lián)網部署以現(xiàn)場部署的多個設備或設備組為中心,其中可能包括終端消費產品、商業(yè)建筑安裝或智能工廠集成。設備組中的設備都將直接或通過一個或多個網關連接到云服務后臺。設備軟件和連接必須與云端配置和安全保持一致,物聯(lián)網部署才能成功地大規(guī)模運行。在典型的云原生基礎設施部署中,DevOps團隊可以即時啟動計算資源或執(zhí)行動態(tài)分配服務的進程,而物聯(lián)網部署則不同,其中包括數(shù)據(jù)中心以外的真實設備,它們并不那么短暫。考慮到這一點,我們將在下面討論物聯(lián)網部署的各種注意事項。
設備連接
物聯(lián)網部署中的邊緣設備可以通過各種方式連接到云服務。物理(PHY)層的連接方式包括:WiFi、藍牙、以太網、LoRa、IEEE 802.15.4(Zigbee或Thread),或甚至蜂窩網絡。通常,設備連接的選擇是取決于無線連接或芯片的成本、網絡覆蓋范圍要求和設備功耗(電池供電還是持續(xù)供電)。另外,期望的邊緣環(huán)境中的網絡拓撲結構也是一個重要的考慮因素。設備是通過 WiFi 路由器直接連接到互聯(lián)網,還是通過應用程序與帶藍牙的移動設備配對,還是通過商用的物聯(lián)網網關、防火墻企業(yè)網絡、偏遠地區(qū)的 LoRaWAN 網絡,或還是通過 Zigbee 或 Thread 邊界路由器作為網狀網絡的一部分?所有這些示例展示了各自的獨特的網絡連接機制。最后,一旦設備連接,就需要考慮一些數(shù)據(jù)交換協(xié)議。典型的物聯(lián)網標準協(xié)議包括:MQTT、HTTP、WebSocket和CoAP。相較于其他協(xié)議,這些協(xié)議各有優(yōu)勢和細微差別。
設備配置
對于大多數(shù)物聯(lián)網服務而言,連接到服務的設備必須經過該服務的身份認證。同樣,設備通常也會對云服務進行身份認證,以確保通信安全。這稱為雙向認證,mTLS是物聯(lián)網部署中實現(xiàn)這一目的主要方法。當使用mTLS時,設備和云服務都將出示自己的TLS證書,以便使用公鑰和私鑰進行驗證。此外,云服務通常要求設備通過證書進行唯一標識。隨著物聯(lián)網設備組部署到現(xiàn)場,證書如何一開始就安裝到設備上?這就是設備配置需要考慮的重要問題。在不可信一方管理設備之前,設備配置需要向其注入唯一證書和/或加密密鑰。這需要使用安全設施和配置過程,以確保設備不會被克隆或欺騙。通常,證書會存放在設備的安全存儲器中,設備具有安全元件或安全區(qū),以避免篡改或復制。在部署之前實施這些技術的設備比那些未實施這些技術的設備更能抵御安全攻擊和漏洞,因此這些技術被認為是重要的最佳實踐。
設備監(jiān)控
在物聯(lián)網設備部署時,通常無法對設備進行物理訪問。然而,人們通常會對設備組中每個設備的健康狀況和總體狀態(tài)有利益關切。設備連接到云服務后,設備的所有者或運營者希望設備能夠無故障運行。設備監(jiān)控有助于實現(xiàn)平穩(wěn)運行。物聯(lián)網設備可通過編程向物聯(lián)網云服務發(fā)送有關其各自狀態(tài)的遙測數(shù)據(jù),以便進行監(jiān)控。有用數(shù)據(jù)字段的一些示例包括:電池電量耗盡率、重啟事件、意外崩潰、連接問題、溫度波動、物理影響或某些代碼塊執(zhí)行時間。根據(jù)物聯(lián)網平臺不同,可能會有內置的設備監(jiān)控服務,或者也可能由物聯(lián)網部署的其他供應商提供。因為從大量設備獲取的數(shù)據(jù)可能太大而無法可視化,因此可以利用查詢或特定的事件觸發(fā)來指示何時出現(xiàn)大規(guī)模的設備問題。從設備獲取的監(jiān)控數(shù)據(jù)可用于改進設備固件的新版本或設備硬件的未來新版本。
設備升級
物聯(lián)網設備可以從連接到云服務受益的一種方式是接受升級運行的嵌入式應用程序,或接受固件升級來改進其工作。這種物聯(lián)網設備的升級通常稱為OTA(Over-The-Air)或FUOTA(Firmware Update Over-The-Air)升級。通常,這是一個全定制過程,取決于設備硬件的能力和制造商選擇的方法。首先,需要生成一個新的固件映像,該映像經過了測試并進行版本控制,部署到設備組中。許多物聯(lián)網平臺都支持OTA升級,作為其設備或設備組管理功能的一部分,管理員可以將新的固件映像上傳到物聯(lián)網平臺進行分發(fā)。更新過程中不能讓設備變成“磚”,否則它將無法連接到云端或接收任何進一步的升級。物聯(lián)網平臺將向設備組發(fā)出有更新的信號。根據(jù)設備的使用情況,設備可能會開始下載新的固件映像,或者可能需要等待,等到它處于適當?shù)墓ぷ鳡顟B(tài)或用戶同意更新。為了提高分發(fā)新固件映像的網絡效率,一些設備更新過程只會發(fā)送新舊固件映像的增量或差分包。一旦設備檢索到新映像或增量,通常需要重啟引導加載程序指向新固件。為增加安全性,固件映像可以采用數(shù)字簽名,然后要求設備驗證其真實性。最后,一旦新固件升級完成,如果發(fā)現(xiàn)問題,可能還需要固件版本回滾。由于新固件遇到問題,設備需要返回到以前的固件版本運行。值得注意的一點是,整個設備組的版本差異可能會帶來挑戰(zhàn)。如果設備仍然使用v1.0版本的固件,那么是否可以直接跳過v1.1并更新到v1.2版本?如果用戶選擇不更新怎么辦?需要一定程度的預先規(guī)劃和面向未來的考慮,才能正確地支持設備升級策略。
分析和洞察
除了前面提到的發(fā)送到云端監(jiān)控物聯(lián)網設備的遙測數(shù)據(jù)外,從設備中獲取的數(shù)據(jù),從中可以獲得商業(yè)洞察,這是企業(yè)投資物聯(lián)網部署的主要原因之一。畢竟,數(shù)據(jù)存儲本身只會增加運維成本,并沒有實際好處。要將物聯(lián)網數(shù)據(jù)轉化為資產,就必須使用數(shù)據(jù)分析技術來提供商業(yè)洞察。例如,一個智能車庫門系統(tǒng)可以獲得打開和關閉的狀態(tài),并將這些數(shù)據(jù)發(fā)送到云端。然而,如果企業(yè)想知道整個設備組的客戶每天打開和關閉車庫門的頻率,就需要使用工具來分析原始數(shù)據(jù)。物聯(lián)網分析是一個廣泛的術語,可能包括數(shù)據(jù)庫查詢、計算分析、統(tǒng)計甚至機器學習來量化物聯(lián)網設備數(shù)據(jù)的模式。
此外,通過報告或數(shù)據(jù)可視化(如儀表盤)方式對這些數(shù)據(jù)進行某種形式的展示,可以提供分析洞察。數(shù)據(jù)科學家可能會參與開發(fā)從數(shù)據(jù)集中提取有意義洞察的方法。以智能車庫門為例,分析后可能會發(fā)現(xiàn),客戶頻繁地打開和關閉車庫門遠高于制造商的預期,從而導致電機的使用壽命縮短并增加保修索賠。這樣的洞察對企業(yè)來說可能是有價值的,可以更好地了解客戶對物聯(lián)網設備的確切行為和使用情況,進而可以用來提供更好的產品和服務。在物聯(lián)網部署中,有許多技術選項和注意事項可以提供分析和洞察。在這一領域有些專業(yè)的服務,采用哪種服務主要取決于業(yè)務需求是否合適。
數(shù)據(jù)存儲
如何存儲數(shù)據(jù)是物聯(lián)網部署的一個重要方面。數(shù)據(jù)存儲有三個主要考慮因素:1) 應存儲哪些數(shù)據(jù)。2) 如何訪問這些數(shù)據(jù)。3) 存儲數(shù)據(jù)相關的成本是多少。當未連接的設備變成物聯(lián)網設備時,原來僅限于存儲在設備上的數(shù)據(jù)現(xiàn)在可以發(fā)送到云端。人們可能想要把設備上任何傳感器的所有可用的數(shù)據(jù)都發(fā)送到云端,以便進行分析。然而,在考慮隱私和效率時,還應決定發(fā)送哪些數(shù)據(jù)。由此所產生的數(shù)據(jù)傳輸和存儲成本可能超過實際需要。本地處理是降低傳輸和存儲成本的一個重要因素。例如,如果一個嵌入式應用每秒鐘從溫度傳感器讀取數(shù)據(jù),但溫度值一小時內都沒有變化,那么在這段時間內,將3600個相同的數(shù)據(jù)發(fā)送到云端可能效率并不高。相反,也許只有在溫度值發(fā)生變化時才應發(fā)送數(shù)據(jù)。
一旦確定需要發(fā)送的數(shù)據(jù),就有許多方法將數(shù)據(jù)存儲到云端。數(shù)據(jù)可以非結構化地存儲在平面文件中,也可以結構化地存儲在數(shù)據(jù)庫中。選擇存儲機制取決于數(shù)據(jù)的類型和訪問數(shù)據(jù)的方式。如果需要經常查詢數(shù)據(jù)顯示實時的統(tǒng)計數(shù)據(jù),那么時間序列數(shù)據(jù)庫可能是正確的選擇。然而,如果數(shù)據(jù)量很大,不經常訪問,并且僅用于報告或審計,那么數(shù)據(jù)湖可能是降低成本的更好選擇。
最后,數(shù)據(jù)的保留策略也是一個重要的考慮因素。數(shù)據(jù)是需要無限期存儲,還是達到目的幾天或幾個月后就停用?這也取決于數(shù)據(jù)的類型。設備組控制面(control plane)的數(shù)據(jù)與設備使用或傳感器外設的數(shù)據(jù)面(data plane)的數(shù)據(jù)保留政策可能不同。本地隱私和數(shù)據(jù)治理方面的考慮因素也可能會影響這些存儲要求。
基礎組件
物聯(lián)網部署所選擇的物聯(lián)網平臺取決于業(yè)務需求。物聯(lián)網部署甚至可能包括不同供應商平臺的多種服務,用它們作為基礎組件來構建完整的解決方案。一些專業(yè)的物聯(lián)網平臺包含可能抽象出上述某些技術細節(jié)的功能,更容易管理設備組。還值得注意的是,一些物聯(lián)網平臺可能運行在其他物聯(lián)網平臺之上,利用其服務作為基礎組件,為特定用例提供更高階的功能。例如,一個提供預制可視化儀表盤的物聯(lián)網平臺可能會運行在另一個物聯(lián)網平臺之上,另一個物聯(lián)網平臺實現(xiàn)了 MQTT 代理,可為設備組提供彈性和大規(guī)模可擴展性。因此,物聯(lián)網部署和物聯(lián)網平臺本身可以使用各種基礎組件來構建,在資源、成本和功能方面,幫助提高設備組的部署、管理和分析的效率。
TinyML和物聯(lián)網
我們不妨對 TinyML 和物聯(lián)網技術進行比較和對比,消除兩者之間的共生關系。例如,TinyML從物聯(lián)網部署基礎設施的進步中獲益匪淺,而物聯(lián)網則得益于Tiny ML在設備上執(zhí)行的能力,減少或消除了對云端和連接的依賴,這對需要始終運行的垂直市場具有吸引力,而無論網絡連接如何。在物聯(lián)網設備無法滿足連接、功耗和隱身模式運行要求的地方,TinyML 很受歡迎或有望越來越受歡迎:
??工作時無需連接互聯(lián)網
??低功耗
??改善延遲
??電池供電的獨立解決方案
??設備上運行,獨立于云計算
??可用于沒有網絡連接或供電的偏遠地區(qū)
??隱身工作模式
??增強隱私保護
??獨立設備運行,無需網絡安全保障
??減少帶寬消耗
總之,TinyML 和 物聯(lián)網在部署方面非常相似,而在 MLOps 方面則有顯著不同。
下圖(圖 1)概述了開發(fā)端到端 TinyML 解決方案的 Tiny MLOps。步驟 2、7 和 8 受益于物聯(lián)網基礎設施及其安全連接技術的進步。
設備連接
值得一提的是,物聯(lián)網的按需設備連接是其在過去十年流行的主要原因。對網絡連接的要求使其不太適合遠程和網絡連接較差的行業(yè),如農業(yè)、采礦、航運、航天、航空、國防等。TinyML技術在設備上的運行使其不僅在部署后具有吸引力,而且使其成為少數(shù)選擇的唯一選擇,如國防,其中設備的隱身模式工作至關重要。
使用物聯(lián)網進行TinyML部署
TinyML部署是指整個MLOps部署流水線(pipeline)。TinyML部署具有多個獨特因素。
??云端上的 MLDevOps 流水線(pipeline)
??設備上的 MLDevOps 流水線(pipeline)
??機器學習模型的安全性、隱私和數(shù)據(jù)治理
邊緣機器學習通常涉及對物理世界的傳感器表示進行推理。這與垃圾郵件檢測等其他機器學習應用有很大不同,如垃圾郵件檢測,涉及到固定的輸入類型(unicode)。物理世界在不斷變化和發(fā)展。這會導致概念和偏差偏移,從而降低推理結果。為了克服這些問題,小型設備上的機器學習模型通常是MLDevOps流水線(pipeline)的一部分,如上圖1所示。
流水線的云端部分如圖所示。流水線從新設備加入設備組并廣播其功能開始。AutoML 用于生成一個能最佳利用目標設備能力的模型。在TinyML領域,設備組可能是非常異構的,并使用同一基本模型的多個變體(例如,設備可能會將一部分計算卸載到本地加速器)。然后,使用OTA或通過連接的網關將模型部署到目標設備。
物聯(lián)網部署基礎設施可用于將推理結果和原始傳感器輸出(受能耗和通信限制)回傳到云端或服務器。對輸入統(tǒng)計和性能指標(如精度)的結果進行監(jiān)控,以檢測數(shù)據(jù)和概念漂移。檢測到漂移或性能下降將觸發(fā)一系列故障排除步驟和/或重新訓練模型,并將其重新部署到設備。有時,如果對應用統(tǒng)計數(shù)據(jù)有很好的理解,可以在設備上完成檢測。例如,在辦公大樓里,下班后的人數(shù)應該會減少。如果設備數(shù)據(jù)顯示下班后還有很多人,則表明操作不當。
為了實現(xiàn)穩(wěn)健的TinyML部署,需要實施模型版本管理。穩(wěn)健的ML devops部署將跟蹤以下所有的內容:訓練代碼版本(如 Tensorflow 2.11)、訓練和驗證數(shù)據(jù)集、訓練指標、TinyML模型轉換工具版本、轉換后的模型和執(zhí)行轉換后模型的二進制文件。最好使用JSON或YAML版本文件來存儲和訪問所有這些值。
與通常具有單一功能的物聯(lián)網應用不同,設備上的TinyML應用可以被設視為由多個階段組成的流水線(pipeline),如從傳感器獲取數(shù)據(jù)、數(shù)據(jù)預處理、TinyML模型推理、后處理、商業(yè)智能和其他監(jiān)控。
雖然這個流水線(pipeline)可以作為單個二進制文件部署,但為了優(yōu)化通信帶寬和功耗,我們更傾向于使用多個可單獨更新的工件。例如,當TensorFlow Micro用作運行時,模型陣列可以單獨更新,而無需更新其余代碼(假設仍能滿足激活大小和其他限制條件)。
與機器學習模型相關的安全問題有兩個方面。機器學習模型是有價值的知識產權(IP),因為它們通常是使用專有(非開源)用戶數(shù)據(jù)訓練出來的。因此,模型具有很大的價值。防止黑客從物理可訪問的設備中竊取模型是一個棘手的問題。第二個問題與黑客在不被發(fā)現(xiàn)的情況下改變模型行為有關。由于傳感器的響應可以指導健康、安全響應和決策,因此這是一個嚴重的問題。物聯(lián)網部署通常不會遇到這些安全問題。
隱私和數(shù)據(jù)治理/主權是機器學習訓練和部署面臨的其他挑戰(zhàn)。安全地存儲數(shù)據(jù)(特別是原始傳感器數(shù)據(jù))并在滿足法規(guī)要求的情況下傳輸數(shù)據(jù)尤其具有挑戰(zhàn)性。此外,有關隱私和數(shù)據(jù)治理新的政府法規(guī),要求跟蹤數(shù)據(jù)及其在云端的使用情況。負責任的人工智能還要求對來自設備的數(shù)據(jù)(用于模型再訓練),進行跟蹤、版本控制并與使用這些數(shù)據(jù)的模型相關聯(lián)。與此同時,聯(lián)合學習和設備上學習也正在不斷發(fā)展中,這可以確保單個設備上私有數(shù)據(jù)的安全,同時減少連接到云所需的帶寬和功率。
結論
本白皮書以物聯(lián)網部署和MLOps的基本原理為基礎,探討了部署TinyML應用所面臨的挑戰(zhàn)和解決方案。如上所述,由于存在共性,開發(fā)人員在很多領域可以使用現(xiàn)有的物聯(lián)網解決方案。然而,在許多其他領域,終端應用的TinyML部署需要采取與現(xiàn)有物聯(lián)網部署解決方案截然不同的方法。因此,開發(fā)人員需要了解物聯(lián)網和TinyML設備、應用和環(huán)境之間的主要異同點。
成功的TinyML應用要求開發(fā)人員有意識地選擇必要購買的組件,或開發(fā)“全?!钡拿恳粚?,以正確部署他們的產品。依賴“默認”解決方案可能適用于開發(fā)測試用例,但可能會阻礙“現(xiàn)場”的大規(guī)模部署。
引用鏈接
[1]
?https://www.tinyml.org/static/98111ec2e44e63079e10872b485777a0/tinyML_Deployment_WG_White_Paper_1.pdf