如何應對部署機器學習模型的挑戰(zhàn)
譯文【51CTO.com快譯】通過數(shù)據(jù)的可用性和可訪問性以及開源的機器學習框架,數(shù)據(jù)科學家和開發(fā)人員在構(gòu)建基于人工智能的解決方案時將會獲得更加輕松的體驗。但是,當他們需要考慮部署模型并選擇最佳策略以擴展到生產(chǎn)級系統(tǒng)時,這個過程將變得更加復雜。
以下將介紹機器學習模型部署的常見挑戰(zhàn),并對如何解決其中的一些挑戰(zhàn)進行探討:
為什么成功的模型部署對于人工智能驅(qū)動的組織至關重要?
機器學習模型部署是將機器學習算法轉(zhuǎn)換為Web服務的過程。而這種轉(zhuǎn)換過程可以稱之為可操作性:可操作性的機器學習模型意味著將其轉(zhuǎn)換為可消費服務,并將其嵌入現(xiàn)有生產(chǎn)環(huán)境中。
部署模型是機器學習模型工作流程的基本步驟。通過部署機器學習模型,組織可以開始充分利用自己構(gòu)建的預測和智能模型,根據(jù)模型結(jié)果開發(fā)業(yè)務實踐,從而將自身轉(zhuǎn)變?yōu)橛扇斯ぶ悄茯?qū)動的實際業(yè)務。
在考慮采用人工智能時,組織需要將注意力集中在機器學習工作流程的關鍵組件上,例如數(shù)據(jù)源和攝取、數(shù)據(jù)管道、機器學習模型訓練和測試、如何設計新功能,以及使用哪些變量使模型更精確。所有這些步驟都很重要。但是,考慮如何隨著時間的推移使用這些模型和數(shù)據(jù)也是每個機器學習管道中的關鍵一步。當已經(jīng)部署模型并投入運營時,才能從模型的預測中獲取實際價值和業(yè)務收益。
成功部署模型對于人工智能驅(qū)動的組織至關重要,主要原因如下:
- 通過部署機器學習模型,組織的團隊可以使用它們,向它們發(fā)送數(shù)據(jù)并獲取預測,然后將其輸入到機器學習系統(tǒng)中以提高訓練數(shù)據(jù)的質(zhì)量和數(shù)量。
- 一旦啟動這一過程,組織將開始在生產(chǎn)過程中構(gòu)建和部署更多數(shù)量的機器學習模型。他們可以掌握將模型從開發(fā)環(huán)境遷移到業(yè)務運營系統(tǒng)的可靠且可重復的方法。
為什么有些組織在模型部署上舉步維艱?
許多組織將采用人工智能視為一種技術實踐。但是,它更多是由組織內(nèi)部發(fā)起的業(yè)務驅(qū)動的計劃。為了成為人工智能驅(qū)動的組織,重要的是,組織的當前運營和了解業(yè)務的人員必須開始與負責機器學習部署工作流的團隊緊密合作。
機器學習部署工作流程的每個步驟都是基于有關需要使用不同工具和服務的特定決策,以實現(xiàn)成功部署(從模型訓練和注冊到模型部署和監(jiān)視):
在開始人工智能應用程序開發(fā)流程時,機器學習團隊應與業(yè)務對應方進行互動。必須保持不斷的交互作用,以了解與模型部署和使用步驟并行的模型實驗過程。大多數(shù)組織都在努力挖掘機器學習的潛力,以優(yōu)化其運營流程,并使數(shù)據(jù)科學家、分析師和業(yè)務團隊使用相同的語言。
此外,機器學習模型必須基于歷史數(shù)據(jù)進行訓練。需要創(chuàng)建預測數(shù)據(jù)管道,這是個需要多個任務的活動,包括數(shù)據(jù)處理、特性工程和優(yōu)化。每項任務(從數(shù)據(jù)庫的版本更新到丟失值的處理)都必須從開發(fā)環(huán)境精確地復制到生產(chǎn)環(huán)境。有時,開發(fā)和生產(chǎn)中使用的技術的差異會導致部署機器學習模型中遇到困難。
組織可以使用機器學習管道來創(chuàng)建和管理將機器學習階段結(jié)合在一起的工作流。例如,機器學習管道可能包括數(shù)據(jù)準備、模型訓練、模型部署以及推理/評分階段。每個階段可以包含多個步驟,而每個步驟都可以在無人參與的各種計算目標中運行。其管道步驟是可重用的,并且如果該步驟的輸出未更改,則可以在不再運行后續(xù)步驟的情況下運行它們。機器學習管道還允許數(shù)據(jù)科學家在機器學習工作流的各個區(qū)域工作時進行協(xié)作。
如何選擇合適的工具來成功部署模型?
對于正在尋求通過人工智能轉(zhuǎn)變運營方式的組織來說,構(gòu)建、培訓、測試以及最終部署機器學習模型通常是一個繁瑣乏味的過程。而且,即使經(jīng)過數(shù)月的開發(fā),它可以提供基于單一算法的機器學習模型,管理團隊通常并不知道他們的數(shù)據(jù)科學家是否創(chuàng)造了一個偉大的模型,或者如何對其進行擴展和操作。
以下分享一些有關組織如何選擇合適的工具成功進行部署模型的準則。將使用Azure機器學習服務來說明此工作流,但它也可以與組織選擇的機器學習產(chǎn)品一起使用。
模型部署工作流應基于以下三個簡單步驟:
1.注冊模型
已經(jīng)注冊的模型是構(gòu)成模型的一個或多個文件的邏輯容器。例如,如果組織擁有存儲在多個文件中的模型,則可以在工作空間中將它們注冊為一個模型。在注冊之后,可以下載或部署已注冊的模型,并接收所有已注冊的文件。
創(chuàng)建Azure機器學習工作區(qū)時可以注冊機器學習模型。該模型可以來自Azure機器學習,也可以來自其他地方。
2.準備部署(指定資產(chǎn)、用途、計算目標)。
要將模型部署為Web服務,必須創(chuàng)建一個推理配置和一個部署配置。推理或模型評分是將部署的模型用于預測的階段,通常用于生產(chǎn)數(shù)據(jù)。在推理配置中,組織指定服務模型所需的腳本和依賴項。在部署配置中,指定有關如何在計算目標上提供模型的詳細信息。
輸入腳本接收提交到已部署的Web服務的數(shù)據(jù),并將其傳遞給模型。然后可以獲取模型返回的響應,并將其返回給客戶端。該腳本特定于組織的模型,它必須了解模型期望并返回的數(shù)據(jù)。
該腳本包含兩個用于加載和運行模型的函數(shù):
- init():通常情況下,這一函數(shù)將模型加載到全局對象中。這一函數(shù)僅在Web服務的Docker容器啟動時運行一次。
- run(input_data):這一函數(shù)使用模型基于輸入數(shù)據(jù)預測值。要運行的輸入和輸出通常使用JSON進行序列化和反序列化。組織也可以使用原始的二進制數(shù)據(jù),可以在將數(shù)據(jù)發(fā)送到模型之前或在將其返回給客戶端之前轉(zhuǎn)換數(shù)據(jù)。
在注冊模型時,需要在注冊表中提供用于管理模型的模型名稱。組織將此名稱用于模型。 get_model_path()檢索本地文件系統(tǒng)上模型文件的路徑。如果注冊文件夾或文件集合,則這一API會將路徑返回到包含這些文件的目錄。
3.將模型部署到計算目標
最后,在部署之前,組織必須定義部署配置。部署配置特定于將托管Web服務的計算目標。例如在本地部署時,必須指定服務接受請求的端口。
結(jié)論
以上介紹了機器學習模型部署的一些常見挑戰(zhàn),還討論了成功部署模型對于釋放人工智能的潛力至關重要,組織在部署模型方面遇到的困難,以及選擇正確的工具成功部署模型。
原文標題:How to Tackle Challenges Deploying ML Models,作者:Rajasekhar Reddy Polu
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】