將機器學習代碼放在哪里——在云中、邊緣設備上或前提上——總是需要權衡。這里有一些提示。
工程師經常需要就代碼的放置位置做出重要決定:在云中、邊緣設備上或本地。這個決定總是涉及權衡——考慮到適用于每組情況的軟件、固件、開發工具和硬件的正確組合。在 Samsara 的機器學習和計算機視覺 (ML/CV) 團隊中,我們構建模型并開發算法,幫助我們的客戶提高其運營的安全性、效率和可持續性。例如,構建應用程序以實時檢測和警告有風險的駕駛行為,并最終降低道路事故的頻率。
在尋求構建 ML 解決方案時,運輸、倉儲或制造等行業的運營環境構成了獨特的限制。例如,遠程位置可能會因連接受限而出現瓶頸,或者擁有無法運行最新最好的模型的過時技術系統。這些限制,再加上這些應用程序的安全關鍵方面,需要低延遲、計算效率高的 ML 推理,因為往返網絡延遲和參差不齊的蜂窩覆蓋將消除在云中完全實現這些功能的可能性。因此,除了保證模型的準確性之外,模型還必須在與邊緣硬件平臺相關的更嚴格的計算、內存和延遲范圍內運行。
可以想象,在為此類邊緣部署選擇模型時,需要分析和考慮許多權衡。以下是您可能會遇到的一些常見問題,以及如何處理它們。
首先,您必須考慮 ML 引擎的計算吞吐量和準確性之間的權衡。同樣,由于蜂窩網絡覆蓋范圍參差不齊,您無法在云中實現所有內容并相信數據可以可靠地交付。在車載高級駕駛員輔助系統 (ADAS) 的情況下,您也不能讓笨重的攝像頭或處理器擋住車輛的儀表板。您需要權衡這種權衡:一個更緊湊的平臺(例如,類似于智能手機中使用的處理器),具有專門的片上系統硬件,可以處理圖像和信號處理,同時仍然保留大量處理ML 模型有效運行的空間。
使用這個更緊湊的平臺,您必須考慮您的功率預算,尤其是任何基于移動的應用程序。運行程序所消耗的功率越多,您必須消散的熱能就越多,電池消耗的電量就越多。某些硬件協處理器支持某些指令集,并且每個計算單元的功率效率非常高。但是,并非所有數學運算都可以在這些指令集中準確地構建。在這些情況下,您必須回退到更通用的計算平臺(如 GPU 和 CPU),這些平臺支持更多的數學運算,但更耗電。
移動友好型架構旨在利用硬件加速(例如 DSP),可以減少整體模型大小和內存消耗,但仍為您使用它的產品應用程序提供足夠好的精度。在這些架構中,您再次面臨一系列決策,包括模型準確性/延遲權衡以及是構建自己的 AI 解決方案還是利用外部 AI 服務提供商來訓練和測試您的 ML 模型。
接下來,重要的是要考慮您的模型如何集成到所選硬件中。因為所有處理器都有不同的指令集來支持特定的操作,所以查看每個硬件平臺的文檔以了解這些優勢如何影響您的特定代碼會有所幫助。每個部署環境都有自己的一組內置特性。例如,tflite、TensorRT、SNPE 等有不同的支持操作集,所有這些都略有不同。無論您最終使用哪種芯片組,您仍然必須將所有數學計算硬塞到將執行這些計算的最終硬件中。
您可能會遇到的一個問題是部署環境可能不支持網絡訓練時使用的所有網絡操作和層。此外,某些操作沒有硬件加速實現,迫使您在 CPU 上運行這些元素,這可能會造成內存和性能瓶頸。其中一些不兼容性需要在訓練過程中通過修改模型架構本身來解決,而另一些則需要在將模型轉換為硬件兼容格式時加以解決。
最后一步是對最終模型版本進行基準測試,并將性能特征與原始規格進行比較。你必須要有創意并精簡你的模型,這樣它才能以低延遲運行。這包括刪除模型操作并將不兼容操作的子圖替換為硬件支持的操作以更快地運行。其他策略包括通道修剪、層折疊和權重量化。
歸根結底,有時您可以讓您的模型同時在設備和云中運行。但是,當您受到底層硬件性能特征、網絡延遲和準確性要求的限制時,我們應該考慮在哪里以及如何運行模型。分割模型執行以在邊緣設備或云上的后端服務中運行仍然是一門藝術,而不是科學。一個好的產品將整合對解決方案功能和客戶需求、硬件限制以及平衡行為的深刻理解,以制定滿足這些需求同時尊重物理約束的模型。
— Sharan Srinivasan 和 Brian Tuan 是 Samsara 機器學習和計算機視覺工程團隊的軟件工程師,Samsara是一家位于舊金山的全球互聯運營云公司。在 Samsara,Srinivasan 和 Tuan 負責使用 Tensorflow、OpenCV、Pyspark 和 Go 解決各種機器學習以應對計算機視覺挑戰,以構建在邊緣運行的模型。
審核編輯 黃昊宇
-
模型
+關注
關注
1文章
3178瀏覽量
48731 -
ML
+關注
關注
0文章
146瀏覽量
34612
發布評論請先 登錄
相關推薦
評論