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

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

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

機器學(xué)習(xí)部署的難點

汽車玩家 ? 來源: AI公園 ? 作者:Alexandre Gonfalonier ? 2020-05-04 12:05 ? 次閱讀

導(dǎo)讀

根據(jù)我作為顧問的經(jīng)驗,只有非常少的機器學(xué)習(xí)項目能夠投入生產(chǎn)。一個人工智能項目可能會因為多種原因而失敗,其中之一就是部署。

在做了幾個人工智能項目之后,我意識到,對于那些愿意通過人工智能創(chuàng)造價值的公司來說,大規(guī)模部署機器學(xué)習(xí)(ML)模型是最重要的挑戰(zhàn)之一。

根據(jù)我作為顧問的經(jīng)驗,只有非常少的機器學(xué)習(xí)項目能夠投入生產(chǎn)。一個人工智能項目可能會因為多種原因而失敗,其中之一就是部署。對于每個決策者來說,完全理解部署是如何工作的,以及在達到這一關(guān)鍵步驟時如何降低失敗的風(fēng)險是非常關(guān)鍵的。

部署的模型可以定義為無縫集成到生產(chǎn)環(huán)境中的任何代碼單元,并且可以接收輸入并返回輸出。

我曾經(jīng)看到,為了將他們的工作投入生產(chǎn),數(shù)據(jù)科學(xué)家通常必須將他或她的數(shù)據(jù)模型進行工程實現(xiàn)。在這一步中,出現(xiàn)了一些最常見的數(shù)據(jù)科學(xué)問題。

挑戰(zhàn)

機器學(xué)習(xí)有一些獨特的特性,使得大規(guī)模部署變得更加困難。這是我們正在處理的一些問題:

管理數(shù)據(jù)科學(xué)語言

你可能知道,機器學(xué)習(xí)應(yīng)用程序通常由使用不同的編程語言編寫組成。它們之間的相互作用并不是很好。我曾多次看到,機器學(xué)習(xí)pipeline從R開始,在Python中繼續(xù),并以另一種語言結(jié)束。

一般來說,Python和R是機器學(xué)習(xí)應(yīng)用程序中最流行的語言,但我注意到,由于各種原因(包括速度),很少使用這些語言部署生產(chǎn)模型。將Python或R模型移植到像c++Java這樣的生產(chǎn)語言中是很復(fù)雜的,并且通常會降低原始模型的性能(速度、準確性等)。

當軟件的新版本發(fā)布時,R包可能會崩潰。此外,R速度慢,無法高效地處理大數(shù)據(jù)。

對于原型設(shè)計來說,它是一種很棒的語言,因為它允許簡單的交互和解決問題,但是需要將它翻譯成Python或c++或Java來進行生產(chǎn)。

諸如Docker之類的容器化技術(shù)可以解決由大量工具引入的不兼容性和可移植性挑戰(zhàn)。然而,自動依賴項檢查、錯誤檢查、測試和構(gòu)建工具將不能解決跨越語言障礙的問題。

可復(fù)現(xiàn)性也是一個挑戰(zhàn)。實際上,數(shù)據(jù)科學(xué)家可以使用不同的編程語言、庫或同一庫的不同版本來構(gòu)建模型的多個版本。手動跟蹤這些依賴關(guān)系很困難。為了解決這些挑戰(zhàn),需要一個機器學(xué)習(xí)生命周期工具,它可以在訓(xùn)練階段自動跟蹤并記錄這些依賴項,并將它們作為代碼的配置,然后將它們與訓(xùn)練的模型一起打包到一個隨時可以部署的工件中。

我建議你使用一種工具或平臺,它可以立即將代碼從一種語言轉(zhuǎn)換為另一種語言,或者允許你的數(shù)據(jù)科學(xué)團隊在API背后部署模型,以便在任何地方集成它們。

計算能力和GPU

神經(jīng)網(wǎng)絡(luò)通常會非常深,這意味著訓(xùn)練和使用它們進行推理需要大量的計算能力。通常,我們希望我們的算法運行得更快,對于很多用戶來說,這可能是一個障礙。

此外,現(xiàn)在許多生產(chǎn)上的機器學(xué)習(xí)都依賴于GPU。然而,它們既稀缺又昂貴,這很容易給機器學(xué)習(xí)的擴展任務(wù)增加另一層復(fù)雜性。

可移植性

模型部署的另一個有趣的挑戰(zhàn)是缺乏可移植性。我注意到這通常是遺留分析系統(tǒng)的問題。由于缺乏將軟件組件輕松遷移到另一個主機環(huán)境并在那里運行的能力,組件可能會被鎖定在特定的平臺上。這可能為數(shù)據(jù)科學(xué)家在創(chuàng)建和部署模型時制造障礙。

可擴展性

對于許多AI項目來說,可擴展性是一個真正的問題。實際上,你需要確保你的模型能夠擴展并滿足生產(chǎn)中性能和應(yīng)用程序需求的增長。在項目開始時,我們通常依賴于可管理范圍內(nèi)的相對靜態(tài)數(shù)據(jù)。隨著模型進入生產(chǎn)環(huán)境,它通常會接觸到大量的數(shù)據(jù)和數(shù)據(jù)傳輸模式。你的團隊將需要一些工具來監(jiān)視和解決性能和可擴展性方面的問題,這些問題將隨著時間的推移而出現(xiàn)。

我認為,可擴展性問題可以通過采用一致的、基于微服務(wù)的方法來進行生產(chǎn)分析來解決。團隊應(yīng)該能夠通過簡單的配置更改快速地將模型從批處理遷移到隨需應(yīng)變的流處理。類似地,團隊應(yīng)該有擴展計算和內(nèi)存占用的選項,以支持更復(fù)雜的工作負載。

機器學(xué)習(xí)峰值計算

一旦你的算法被訓(xùn)練好了,它們并不是時時刻刻被使用——你的用戶只會在需要的時候調(diào)用它們。

這可能意味著你只需要支持上午8:00時的100個API調(diào)用,而在8:30時需要支持10,000個API調(diào)用。

根據(jù)我的經(jīng)驗,我可以告訴你,使用動態(tài)擴大或縮小你的服務(wù)來確保不為你不需要的服務(wù)器付費是一個挑戰(zhàn)

由于所有這些原因,只有少數(shù)數(shù)據(jù)科學(xué)項目最終真正進入生產(chǎn)系統(tǒng)。

模型的穩(wěn)定和魯棒

我們總是花很多時間準備模型。我們需要把原型變得穩(wěn)定和魯棒,這樣它就可以實際服務(wù)于大量的用戶,這通常需要大量的工作。

在許多情況下,整個模型需要用一種適合體系結(jié)構(gòu)的語言重新編碼。僅這一點往往就會導(dǎo)致大量痛苦的工作,從而導(dǎo)致幾個月的部署延遲。完成之后,必須將其集成到公司的IT體系結(jié)構(gòu)中,包括前面討論的所有庫問題。此外,在生產(chǎn)環(huán)境中訪問數(shù)據(jù)也常常是一項困難的任務(wù)。

更多的挑戰(zhàn)

在做項目的過程中,我也注意到了以下問題:

如果我們改變了一個輸入特征,那么其余特征的重要性、權(quán)重或使用可能也會改變。機器系統(tǒng)必須設(shè)計得易于跟蹤特征工程和選擇更改。

當模型被不斷迭代和微妙地改變時,跟蹤配置更新同時保持配置的清晰性和靈活性將成為額外的負擔(dān)。

有些數(shù)據(jù)輸入可能隨時間而改變。我們需要一種方法來理解和跟蹤這些變化,以便能夠完全理解我們的系統(tǒng)。

在機器學(xué)習(xí)應(yīng)用程序中會出現(xiàn)一些傳統(tǒng)的單元/集成測試無法識別的錯誤。部署錯誤的模型版本、忘記某個特征以及在過時的數(shù)據(jù)集上進行訓(xùn)練只是其中的幾個例子。

測試和驗證的問題

正如你可能已經(jīng)知道的,模型由于數(shù)據(jù)更改、新方法等而不斷發(fā)展。因此,每次發(fā)生這樣的變化時,我們都必須重新驗證模型的性能。這些驗證步驟引入了幾個挑戰(zhàn):

除了在離線測試中驗證模型外,評估生產(chǎn)模型的性能也非常重要。通常,我們在部署策略和監(jiān)視部分對此進行規(guī)劃。

與常規(guī)軟件應(yīng)用程序相比,機器學(xué)習(xí)模型需要更頻繁地更新。

自動化機器學(xué)習(xí)平臺

有些人可能聽說過自動化機器學(xué)習(xí)平臺。這可能是一個快速生成模型的好方法。此外,該平臺可以支持多個模型的開發(fā)和比較,因此企業(yè)可以選擇最適合其預(yù)測準確性、延遲和計算資源需求的模型。

多達90%的企業(yè)機器學(xué)習(xí)模型可以自動開發(fā)。數(shù)據(jù)科學(xué)家可以與業(yè)務(wù)人員合作,開發(fā)目前自動化無法實現(xiàn)的一小部分模型

許多模型經(jīng)歷了漂移(性能隨時間降低)。因此,需要監(jiān)視已部署的模型。每個部署的模型都應(yīng)該記錄所有的輸入、輸出和異常。模型部署平臺需要提供日志存儲和模型性能可視化。密切關(guān)注模型性能是有效管理機器學(xué)習(xí)模型生命周期的關(guān)鍵。

必須通過部署平臺監(jiān)視的關(guān)鍵元素

發(fā)布策略

探索許多不同的方式來部署你的軟件,“shadow mode”和“Canary”部署對機器學(xué)習(xí)應(yīng)用程序特別有用。在“shadow mode”中,你捕獲生產(chǎn)中新模型的輸入和預(yù)測,而實際上并不服務(wù)于這些預(yù)測。相反,你可以自由地分析結(jié)果,如果檢測到錯誤,則不會產(chǎn)生重大后果。

當你的體系結(jié)構(gòu)成熟時,請考慮啟用漸進的或“Canary”版本。這種做法是指你可以向一小部分客戶發(fā)布產(chǎn)品,而不是“要么全部發(fā)布,要么什么都不發(fā)布”。這需要更成熟的工具,但它可以最小化錯誤。

總結(jié)

機器學(xué)習(xí)仍處于初級階段。實際上,軟件和硬件組件都在不斷發(fā)展,以滿足機器學(xué)習(xí)的當前需求。

Docker/Kubernetes和微服務(wù)體系結(jié)構(gòu)可以用來解決異構(gòu)性和基礎(chǔ)設(shè)施方面的挑戰(zhàn)?,F(xiàn)有的工具可以單獨地極大地解決一些問題。我認為,將所有這些工具結(jié)合起來以使ML運作化是當今最大的挑戰(zhàn)。

部署機器學(xué)習(xí)是并且將繼續(xù)是困難的,這只是組織將需要處理的一個現(xiàn)實。值得慶幸的是,一些新的架構(gòu)和產(chǎn)品正在幫助數(shù)據(jù)科學(xué)家。此外,隨著越來越多的公司擴展數(shù)據(jù)科學(xué)操作,他們也在實現(xiàn)使模型部署更容易的工具。

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

    評論

    相關(guān)推薦

    華為云 Flexus X 實例部署安裝 Jupyter Notebook,學(xué)習(xí) AI,機器學(xué)習(xí)算法

    前言 由于本人最近在學(xué)習(xí)一些機器算法,AI 算法的知識,需要搭建一個學(xué)習(xí)環(huán)境,所以就在最近購買的華為云 Flexus X 實例上安裝了學(xué)習(xí)環(huán)境,Jupyter Notebook。沒想到
    的頭像 發(fā)表于 01-02 13:43 ?87次閱讀
    華為云 Flexus X 實例<b class='flag-5'>部署</b>安裝 Jupyter Notebook,<b class='flag-5'>學(xué)習(xí)</b> AI,<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>算法

    傳統(tǒng)機器學(xué)習(xí)方法和應(yīng)用指導(dǎo)

    在上一篇文章中,我們介紹了機器學(xué)習(xí)的關(guān)鍵概念術(shù)語。在本文中,我們會介紹傳統(tǒng)機器學(xué)習(xí)的基礎(chǔ)知識和多種算法特征,供各位老師選擇。 01 傳統(tǒng)機器
    的頭像 發(fā)表于 12-30 09:16 ?226次閱讀
    傳統(tǒng)<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>方法和應(yīng)用指導(dǎo)

    如何選擇云原生機器學(xué)習(xí)平臺

    當今,云原生機器學(xué)習(xí)平臺因其彈性擴展、高效部署、低成本運營等優(yōu)勢,逐漸成為企業(yè)構(gòu)建和部署機器學(xué)習(xí)
    的頭像 發(fā)表于 12-25 11:54 ?117次閱讀

    構(gòu)建云原生機器學(xué)習(xí)平臺流程

    構(gòu)建云原生機器學(xué)習(xí)平臺是一個復(fù)雜而系統(tǒng)的過程,涉及數(shù)據(jù)收集、處理、特征提取、模型訓(xùn)練、評估、部署和監(jiān)控等多個環(huán)節(jié)。
    的頭像 發(fā)表于 12-14 10:34 ?142次閱讀

    什么是機器學(xué)習(xí)?通過機器學(xué)習(xí)方法能解決哪些問題?

    來源:Master編程樹“機器學(xué)習(xí)”最初的研究動機是讓計算機系統(tǒng)具有人的學(xué)習(xí)能力以便實現(xiàn)人工智能。因為沒有學(xué)習(xí)能力的系統(tǒng)很難被認為是具有智能的。目前被廣泛采用的
    的頭像 發(fā)表于 11-16 01:07 ?440次閱讀
    什么是<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>?通過<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>方法能解決哪些問題?

    NPU與機器學(xué)習(xí)算法的關(guān)系

    在人工智能領(lǐng)域,機器學(xué)習(xí)算法是實現(xiàn)智能系統(tǒng)的核心。隨著數(shù)據(jù)量的激增和算法復(fù)雜度的提升,對計算資源的需求也在不斷增長。NPU作為一種專門為深度學(xué)習(xí)機器
    的頭像 發(fā)表于 11-15 09:19 ?496次閱讀

    如何快速設(shè)計和部署 IIoT 就緒型機器

    作者:Jeff Shepard 投稿人:DigiKey 北美編輯 2024-08-14 快速設(shè)計和部署可直接集成到工業(yè)物聯(lián)網(wǎng) (IIoT) 的機器并非易事。IIoT 就緒型機器必須能為機器
    的頭像 發(fā)表于 10-02 15:51 ?371次閱讀
    如何快速設(shè)計和<b class='flag-5'>部署</b> IIoT 就緒型<b class='flag-5'>機器</b>

    深度學(xué)習(xí)算法在嵌入式平臺上的部署

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)算法在各個領(lǐng)域的應(yīng)用日益廣泛。然而,將深度學(xué)習(xí)算法部署到資源受限的嵌入式平臺上,仍然是一個具有挑戰(zhàn)性的任務(wù)。本文將從嵌入式平臺的特點、深度學(xué)習(xí)算法的
    的頭像 發(fā)表于 07-15 10:03 ?1472次閱讀

    機器學(xué)習(xí)算法原理詳解

    機器學(xué)習(xí)作為人工智能的一個重要分支,其目標是通過讓計算機自動從數(shù)據(jù)中學(xué)習(xí)并改進其性能,而無需進行明確的編程。本文將深入解讀幾種常見的機器學(xué)習(xí)
    的頭像 發(fā)表于 07-02 11:25 ?1117次閱讀

    深度學(xué)習(xí)與傳統(tǒng)機器學(xué)習(xí)的對比

    在人工智能的浪潮中,機器學(xué)習(xí)和深度學(xué)習(xí)無疑是兩大核心驅(qū)動力。它們各自以其獨特的方式推動著技術(shù)的進步,為眾多領(lǐng)域帶來了革命性的變化。然而,盡管它們都屬于機器
    的頭像 發(fā)表于 07-01 11:40 ?1422次閱讀

    鴻蒙實戰(zhàn)開發(fā)-本地部署、SmartPerf 編譯部署指導(dǎo)文檔

    telnet [部署機器ip地址] 9000。 如果顯示端口連接失敗 可能是防火墻未對9000 端口放開即可。 最后 如果大家覺得這篇內(nèi)容對學(xué)習(xí)鴻蒙開發(fā)有幫助,我想邀請大家?guī)臀胰齻€小忙: 點贊,轉(zhuǎn)發(fā),有
    發(fā)表于 05-09 14:23

    機器學(xué)習(xí)8大調(diào)參技巧

    今天給大家一篇關(guān)于機器學(xué)習(xí)調(diào)參技巧的文章。超參數(shù)調(diào)優(yōu)是機器學(xué)習(xí)例程中的基本步驟之一。該方法也稱為超參數(shù)優(yōu)化,需要搜索超參數(shù)的最佳配置以實現(xiàn)最佳性能。
    的頭像 發(fā)表于 03-23 08:26 ?640次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>8大調(diào)參技巧

    NVIDIA TAO工具套件功能與恩智浦eIQ機器學(xué)習(xí)開發(fā)環(huán)境的集成

    恩智浦半導(dǎo)體宣布與NVIDIA合作,將NVIDIA經(jīng)過訓(xùn)練的人工智能模型通過eIQ機器學(xué)習(xí)開發(fā)環(huán)境部署到恩智浦廣泛的邊緣處理產(chǎn)品組合中。
    的頭像 發(fā)表于 03-22 09:11 ?984次閱讀

    微軟推出ONNX Runtime Web,利用WebGPU優(yōu)化瀏覽器機器學(xué)習(xí)性能

    作為微軟的 JavaScript 庫,ONNX Runtime Web 使得網(wǎng)絡(luò)開發(fā)者能在瀏覽器環(huán)境下部署機器學(xué)習(xí)模型,并提供多種硬件加速的后端支持。
    的頭像 發(fā)表于 03-05 14:23 ?1136次閱讀

    如何使用TensorFlow構(gòu)建機器學(xué)習(xí)模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個簡單的機器學(xué)習(xí)模型。
    的頭像 發(fā)表于 01-08 09:25 ?1009次閱讀
    如何使用TensorFlow構(gòu)建<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>模型