0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

管理 ML 模型部署中的權衡

茶壺茶茶 ? 2022-07-21 09:19 ? 次閱讀

機器學習代碼放在哪里——在云中、邊緣設備上或前提上——總是需要權衡。這里有一些提示。

工程師經(jīng)常需要就代碼的放置位置做出重要決定:在云中、邊緣設備上或本地。這個決定總是涉及權衡——考慮到適用于每組情況的軟件、固件、開發(fā)工具和硬件的正確組合。在 Samsara 的機器學習和計算機視覺 (ML/CV) 團隊中,我們構建模型并開發(fā)算法,幫助我們的客戶提高其運營的安全性、效率和可持續(xù)性。例如,構建應用程序以實時檢測和警告有風險的駕駛行為,并最終降低道路事故的頻率。

在尋求構建 ML 解決方案時,運輸、倉儲或制造等行業(yè)的運營環(huán)境構成了獨特的限制。例如,遠程位置可能會因連接受限而出現(xiàn)瓶頸,或者擁有無法運行最新最好的模型的過時技術系統(tǒng)。這些限制,再加上這些應用程序的安全關鍵方面,需要低延遲、計算效率高的 ML 推理,因為往返網(wǎng)絡延遲和參差不齊的蜂窩覆蓋將消除在云中完全實現(xiàn)這些功能的可能性。因此,除了保證模型的準確性之外,模型還必須在與邊緣硬件平臺相關的更嚴格的計算、內(nèi)存和延遲范圍內(nèi)運行。

可以想象,在為此類邊緣部署選擇模型時,需要分析和考慮許多權衡。以下是您可能會遇到的一些常見問題,以及如何處理它們。

首先,您必須考慮 ML 引擎的計算吞吐量和準確性之間的權衡。同樣,由于蜂窩網(wǎng)絡覆蓋范圍參差不齊,您無法在云中實現(xiàn)所有內(nèi)容并相信數(shù)據(jù)可以可靠地交付。在車載高級駕駛員輔助系統(tǒng) (ADAS) 的情況下,您也不能讓笨重的攝像頭或處理器擋住車輛的儀表板。您需要權衡這種權衡:一個更緊湊的平臺(例如,類似于智能手機中使用的處理器),具有專門的片上系統(tǒng)硬件,可以處理圖像和信號處理,同時仍然保留大量處理ML 模型有效運行的空間。

使用這個更緊湊的平臺,您必須考慮您的功率預算,尤其是任何基于移動的應用程序。運行程序所消耗的功率越多,您必須消散的熱能就越多,電池消耗的電量就越多。某些硬件協(xié)處理器支持某些指令集,并且每個計算單元的功率效率非常高。但是,并非所有數(shù)學運算都可以在這些指令集中準確地構建。在這些情況下,您必須回退到更通用的計算平臺(如 GPUCPU),這些平臺支持更多的數(shù)學運算,但更耗電。

移動友好型架構旨在利用硬件加速(例如 DSP),可以減少整體模型大小和內(nèi)存消耗,但仍為您使用它的產(chǎn)品應用程序提供足夠好的精度。在這些架構中,您再次面臨一系列決策,包括模型準確性/延遲權衡以及是構建自己的 AI 解決方案還是利用外部 AI 服務提供商來訓練和測試您的 ML 模型。

接下來,重要的是要考慮您的模型如何集成到所選硬件中。因為所有處理器都有不同的指令集來支持特定的操作,所以查看每個硬件平臺的文檔以了解這些優(yōu)勢如何影響您的特定代碼會有所幫助。每個部署環(huán)境都有自己的一組內(nèi)置特性。例如,tflite、TensorRT、SNPE 等有不同的支持操作集,所有這些都略有不同。無論您最終使用哪種芯片組,您仍然必須將所有數(shù)學計算硬塞到將執(zhí)行這些計算的最終硬件中。

您可能會遇到的一個問題是部署環(huán)境可能不支持網(wǎng)絡訓練時使用的所有網(wǎng)絡操作和層。此外,某些操作沒有硬件加速實現(xiàn),迫使您在 CPU 上運行這些元素,這可能會造成內(nèi)存和性能瓶頸。其中一些不兼容性需要在訓練過程中通過修改模型架構本身來解決,而另一些則需要在將模型轉換為硬件兼容格式時加以解決。

最后一步是對最終模型版本進行基準測試,并將性能特征與原始規(guī)格進行比較。你必須要有創(chuàng)意并精簡你的模型,這樣它才能以低延遲運行。這包括刪除模型操作并將不兼容操作的子圖替換為硬件支持的操作以更快地運行。其他策略包括通道修剪、層折疊和權重量化。

歸根結底,有時您可以讓您的模型同時在設備和云中運行。但是,當您受到底層硬件性能特征、網(wǎng)絡延遲和準確性要求的限制時,我們應該考慮在哪里以及如何運行模型。分割模型執(zhí)行以在邊緣設備或云上的后端服務中運行仍然是一門藝術,而不是科學。一個好的產(chǎn)品將整合對解決方案功能和客戶需求、硬件限制以及平衡行為的深刻理解,以制定滿足這些需求同時尊重物理約束的模型。

— Sharan Srinivasan 和 Brian Tuan 是 Samsara 機器學習和計算機視覺工程團隊的軟件工程師,Samsara是一家位于舊金山的全球互聯(lián)運營云公司。在 Samsara,Srinivasan 和 Tuan 負責使用 Tensorflow、OpenCV、Pyspark 和 Go 解決各種機器學習以應對計算機視覺挑戰(zhàn),以構建在邊緣運行的模型。


審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3058

    瀏覽量

    48572
  • ML
    ML
    +關注

    關注

    0

    文章

    143

    瀏覽量

    34525
收藏 人收藏

    評論

    相關推薦

    llm模型本地部署有用嗎

    ,將這些模型部署到本地環(huán)境可能會帶來一些挑戰(zhàn)和優(yōu)勢。 1. LLM模型概述 大型語言模型(LLM)通常是基于深度學習的神經(jīng)網(wǎng)絡模型,它們能夠
    的頭像 發(fā)表于 07-09 10:14 ?330次閱讀

    使用TVM量化部署模型報錯NameError: name \'GenerateESPConstants\' is not defined如何解決?

    各位好,我在使用TVM部署模型時,遇到一下錯誤,請問如何解決?我進esp.py文件看,有如下兩個函數(shù)是找不到定義的: GenerateESPConstants(), ExtractConstantsFromPartitionedFunction(),
    發(fā)表于 06-28 10:50

    模型端側部署加速,都有哪些芯片可支持?

    電子發(fā)燒友網(wǎng)報道(文/李彎彎)大模型在端側部署是指將大型神經(jīng)網(wǎng)絡模型部署在移動終端設備上,使這些設備能夠直接運行這些模型,從而執(zhí)行各種人工智
    的頭像 發(fā)表于 05-24 00:14 ?3759次閱讀

    基于stm32h743IIK在cubeai上部署keras模型,模型輸出結果都是同一組概率數(shù)組,為什么?

    基于stm32h743IIK,在cubeai上部署keras模型,模型輸出結果都是同一組概率數(shù)組,一點也搞不明白,看社區(qū)也有相同的問題,但沒有解決方案
    發(fā)表于 05-20 08:18

    基于 Renesas 的 RA8M1 實現(xiàn) AI 和 ML 部署

    新的工作負載會增加功耗,盡管要求設計人員盡量降低功耗并加快產(chǎn)品上市時間。 設計人員需要一個計算選項,既能保持 MCU 的效率,又能增加專為低功耗應用定制的高性能功能。這一選項還應保留與傳統(tǒng) MCU 相關的簡單部署模式,同時增加足夠的功能,以支持 AI 和 ML 帶來的復雜
    的頭像 發(fā)表于 04-23 15:04 ?1082次閱讀
    基于 Renesas 的 RA8M1 實現(xiàn) AI 和 <b class='flag-5'>ML</b> <b class='flag-5'>部署</b>

    使用CUBEAI部署tflite模型到STM32F0,模型創(chuàng)建失敗怎么解決?

    CRC IP,用MX生成工程時已經(jīng)啟用了CRC,代碼也有。 但是依舊無法生成模型。 想問問該如何解決,還是說F0還是無法部署AI模型
    發(fā)表于 03-15 08:10

    使用ml configurator進行tflite網(wǎng)絡模型的轉換不成功怎么解決?

    使用ml configurator進行tflite網(wǎng)絡模型的轉換不成功,提示錯誤,請幫忙協(xié)助謝謝 [ERROR] Failed to run QEMU
    發(fā)表于 01-31 06:56

    邊緣側部署模型優(yōu)勢多!模型量化解決邊緣設備資源限制問題

    電子發(fā)燒友網(wǎng)報道(文/李彎彎)大模型的邊緣部署是將大模型部署在邊緣設備上,以實現(xiàn)更快速、更低延遲的計算和推理。邊緣設備可以是各種終端設備,如智能手機、平板電腦、智能家居設備等。通過將大
    的頭像 發(fā)表于 01-05 00:06 ?3162次閱讀

    【愛芯派 Pro 開發(fā)板試用體驗】人體姿態(tài)估計模型部署前期準備

    部署模型的整體架構。接下來就回到最開始定的主線上了——人體姿態(tài)估計。這篇文章就是記錄對一些輕量化人體姿態(tài)估計模型的調(diào)研,和前期準備。 1、人體姿態(tài)估計任務介紹 下面對人體姿態(tài)估計任務做一個簡單的介紹
    發(fā)表于 01-01 01:04

    【愛芯派 Pro 開發(fā)板試用體驗】模型部署(以mobilenetV2為例)

    啊抱歉,上周得了一周的流感,人才活過來。。本來還想研究下sam它是怎么部署的,但是時間好像有點來不急,就講個最簡單的efficientNet吧。但是會仔細講下使用模型部署,實際也就是推理引擎的全過程
    發(fā)表于 12-10 16:34

    如何使用OpenVINO C++ API部署FastSAM模型

    FastSAM 模型 | 開發(fā)者實戰(zhàn)》,在該文章我們向大家展示了基于 OpenVINO Python API 的基本部署流程。在實際部署過程中會考慮到由效率問題,使得我們可能更傾向
    的頭像 發(fā)表于 11-17 09:53 ?782次閱讀
    如何使用OpenVINO C++ API<b class='flag-5'>部署</b>FastSAM<b class='flag-5'>模型</b>

    人工智能大模型、應用場景、應用部署教程超詳細資料

    部署過程的難度。教程中所使用的模型均為開源模型,同步提供了相應的下載鏈接,為客戶節(jié)省寶貴的時間。 Adain風格遷移模型 這是一種風格遷
    發(fā)表于 11-13 14:49

    基于OpenVINO C# API部署RT-DETR模型

    Python API 部署 RT-DETR 模型 | 開發(fā)者實戰(zhàn)》和《基于 OpenVINO C++ API 部署 RT-DETR 模型 | 開發(fā)者實戰(zhàn)》,在該文章
    的頭像 發(fā)表于 11-10 16:59 ?659次閱讀
    基于OpenVINO C# API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    PODsys:大模型AI算力平臺部署的開源“神器”

    的大模型研發(fā)工具和框架。在算力平臺的部署過程,大模型研發(fā)機構常常需要面對一系列的問題:大模型算力平臺是什么樣的?如何快速構建大
    的頭像 發(fā)表于 11-08 09:17 ?792次閱讀
    PODsys:大<b class='flag-5'>模型</b>AI算力平臺<b class='flag-5'>部署</b>的開源“神器”

    基于OpenVINO C++ API部署RT-DETR模型

    Python API 部署 RT-DETR 模型 | 開發(fā)者實戰(zhàn)》,在該文章,我們基于 OpenVINO Python API 向大家展示了包含后處理的 RT-DETR 模型
    的頭像 發(fā)表于 11-03 14:30 ?705次閱讀
    基于OpenVINO C++ API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>