熟女chachacha性少妇,在线新版天堂资源中文www,色妞www精品免费视频,中文字幕理伦午夜福利片,孕妇怀孕高潮潮喷视频孕妇

crm系統(tǒng)

免費試用400-821-5041


如何從實驗轉(zhuǎn)向構(gòu)建生產(chǎn)機器學習應(yīng)用程序

時間: 2019-07-01來源: Nisha Talagala

機器學習(ML)

機器學習(ML)實驗從筆記本電腦或數(shù)據(jù)科學實驗室進行到生產(chǎn)的過程并不是很多人都有過的經(jīng)驗。數(shù)據(jù)科學家們經(jīng)常肩負著這項艱巨的任務(wù),因為他們了解機器學習算法,而且很可能是他們首先提出的。

 

這篇文章描述了如何開始一個成功的生產(chǎn)機器學習業(yè)務(wù)生命周期(MLOps),通過在生產(chǎn)服務(wù)中從一個有前景的ML實驗轉(zhuǎn)移到相同算法的最小可行性產(chǎn)品(MVP)。MVP在產(chǎn)品開發(fā)中很常見,因為它們可以幫助客戶快速獲得產(chǎn)品/服務(wù),只要有足夠的特性使其可行,并推動下一個基于使用反饋的版本。在機器學習上下文中,MVPs幫助分離生產(chǎn)ML服務(wù)的關(guān)鍵需求,并幫助以更小的努力交付它。

 

我們描述的生產(chǎn)機器學習MVP的步驟是從過去幾年與數(shù)據(jù)科學家和組織的數(shù)百個用例和經(jīng)驗中總結(jié)出來的。如下圖所示:

機器學習(ML)

圖1:從開發(fā)人員實驗到生產(chǎn)ML的路徑

 

步驟1:確定您的用例:您想要做什么?

這似乎是顯而易見的,但是第一步是了解您的業(yè)務(wù)應(yīng)用程序的的更低需求是什么,以及您的實驗和更低需求之間的差距。例如,如果您的實驗假設(shè)可用的特性比業(yè)務(wù)應(yīng)用程序能夠提供的特性更多,那么這種差距可能會影響生產(chǎn)。找到這種差距的更佳方法是定義支持您的業(yè)務(wù)應(yīng)用程序的機器學習應(yīng)用程序。

 

以下是一些你需要回答的問題:

• 從ML的角度來看,這個ML應(yīng)用程序?qū)椭鉀Q什么業(yè)務(wù)問題?

• ML app需要預(yù)測什么?它將接收什么輸入?

• 是否有足夠的數(shù)據(jù)來訓練模型和度量有效性?這些數(shù)據(jù)是否干凈、可訪問等?用于實驗的數(shù)據(jù)可能是人工清理的。生產(chǎn)培訓數(shù)據(jù)也需要清理。

• 是否有初步的實驗(在開發(fā)人員/筆記本/筆記本電腦環(huán)境中)顯示出一種有前景的算法方法來交付必要的預(yù)測/質(zhì)量?

• ML應(yīng)用程序需要如何與業(yè)務(wù)應(yīng)用程序(REST、Batch等)集成?

一旦這些問題得到了回答,您就可以大致了解ML應(yīng)用程序在MVP中需要什么。這為步驟2和步驟3奠定了基礎(chǔ)。

 

步驟2:開列狀態(tài)清單:你有什么?

一旦確定了用例,下一步是整合起始狀態(tài),以便您可以將旅程映射到目的地。啟動狀態(tài)的典型特征包括以下來自所需機器學習應(yīng)用程序的開發(fā)人員級原型的構(gòu)件:

 

• 數(shù)據(jù)科學家環(huán)境中的一個軟件程序,如Jupyter筆記本、R開發(fā)人員環(huán)境、Matlab等。該代碼通常執(zhí)行初始(有前景的)機器學習模型和實驗。

• 此代碼已通過一個或多個位于數(shù)據(jù)湖泊或數(shù)據(jù)庫等中的數(shù)據(jù)集運行。這些數(shù)據(jù)湖泊和數(shù)據(jù)庫是客戶正常數(shù)據(jù)中心基礎(chǔ)設(shè)施環(huán)境的一部分。這些數(shù)據(jù)集可能存在于筆記本電腦中,也可能需要移動到數(shù)據(jù)湖中。

• 在這些開發(fā)人員環(huán)境中運行了培訓代碼,有時還存在示例模型。

 

在許多方面,這種啟動狀態(tài)類似于其他(non-ML)域中的軟件原型。與其他軟件一樣,原型代碼可能沒有使用生產(chǎn)版本中所期望的所有連接器、規(guī)模因素和加強功能來編寫。例如,如果生產(chǎn)版本需要從云對象存儲庫讀取數(shù)據(jù),而您的實驗需要讀取存儲在筆記本電腦的數(shù)據(jù),則需要將對象存儲連接器添加到生產(chǎn)管道代碼中。類似地,如果您的實驗代碼在出現(xiàn)錯誤時退出,這對于生產(chǎn)來說可能是不可接受的。

 

還有一些特定于機器學習的挑戰(zhàn)。例如:
• 這里生成的模型可能需要導入來引導生產(chǎn)管道。

• 可能需要將特定于ML的檢測添加到代碼中,例如,報告ML統(tǒng)計信息、生成特定于ML的警報、收集檢測(執(zhí)行的統(tǒng)計數(shù)字)作長期分析等用。


步驟3:定義你的MVP產(chǎn)品
現(xiàn)在您已經(jīng)準備好定義MVP:您將在生產(chǎn)中使用的第一個基本服務(wù)。為此,您需要確定第一個生產(chǎn)位置,即代碼運行的第一個位置。

 

• 這在很大程度上取決于您的環(huán)境。一個短期的選擇可能是您為其他應(yīng)用程序(non-ML等)提供的數(shù)據(jù)中心基礎(chǔ)設(shè)施中。您可能還有一個長期的觀點,包括與軟件或云和服務(wù)策略的其他方面的集成。

除了確定第一個位置外,你還需要處理以下事項:

• 訪問數(shù)據(jù)湖等可以是通用的,除非組織(特別是企業(yè))設(shè)置了應(yīng)用于分析使用的特定數(shù)據(jù)訪問限制。

• 必須安裝機器學習引擎(Spark、TensorFlow等)。如果使用容器,這可能是非常通用的。如果使用分析引擎,它可能具有很高的機器學習特性。需要找到并包含所有依賴項(您的管道運行需要訪問哪些庫,等等)。

• 需要進行分析引擎和容器大小調(diào)整,以確保初始測試和調(diào)試的性能范圍是合理的。測試和調(diào)試將是迭代的。

• 需要定義升級過程。例如,如果您決定升級您的管道代碼,并且它需要以前沒有安裝的新庫,那么您將需要考慮如何處理它。


步驟4:為生產(chǎn)準備代碼

現(xiàn)在,您需要考慮您的實驗(如果有的話)中的哪些代碼需要在生產(chǎn)中使用。如果您不打算在生產(chǎn)中重新培訓模型,那么您需要考慮的代碼只是用于推理。在這種情況下,一個簡單的解決方案可能是部署由供應(yīng)商提供的預(yù)定義推理管道。

 

如果您計劃在生產(chǎn)環(huán)境中進行再培訓,或者有一個自定義需求,但是預(yù)構(gòu)建的推理管道不能滿足這個需求,那么您將需要為生產(chǎn)準備您的實驗代碼,或者構(gòu)建任何您的實驗代碼中沒有的新的生產(chǎn)功能。作為其中一部分,你需要考慮以下幾點:

 

• 淬火生產(chǎn)(錯誤處理等)

• 模塊化以便重用

• 調(diào)用連接器,以便在步驟3中標識的生產(chǎn)位置之間檢索和存儲數(shù)據(jù)。

• 您將把代碼保存在哪里(Git等)?

? 您應(yīng)該添加什么工具來確保您可以檢測和調(diào)試模型的生產(chǎn)問題?


步驟5:構(gòu)建一個機器學習應(yīng)用程序

既然已經(jīng)準備好了所有代碼塊,現(xiàn)在就可以構(gòu)建機器學習應(yīng)用程序了。為什么這與只是構(gòu)建管道不同?為了在生產(chǎn)中可靠地執(zhí)行,還需要確保編排管道、管理和版本模型以及其他輸出等的機制也到位。這包括如何在生成新模型時更新管道,以及如何在改進了管道代碼后將新代碼投入生產(chǎn)。

 

如果您正在讓生產(chǎn)機器學習運行,您可以在運行時中配置ML應(yīng)用程序,并將其連接到您在步驟1到4創(chuàng)建的代碼和其他構(gòu)件中。圖2顯示顯示了一個由ParallelM在MCenter運行時生成的示例ML應(yīng)用程序。

機器學習(ML)

圖2:一個ML應(yīng)用程序示例

 

步驟6:將機器學習應(yīng)用程序部署到生產(chǎn)環(huán)境中

一旦有了機器學習應(yīng)用程序,就可以部署了!要進行部署,您需要啟動ML應(yīng)用程序(或其管道)并將它們連接到您的業(yè)務(wù)應(yīng)用程序。例如,如果使用REST,您的ML應(yīng)用程序?qū)⒃趩訒r創(chuàng)建一個REST端點,您的業(yè)務(wù)應(yīng)用程序可以調(diào)用它進行任何預(yù)測(參見圖3)。

機器學習(ML)

圖3:ML應(yīng)用程序生成一個REST服務(wù)供業(yè)務(wù)應(yīng)用程序使用


請注意,部署可以被認為是MVP的“完成”,但這絕不是您旅程的終點。一個成功的機器學習服務(wù)將運行數(shù)月或數(shù)年,在此期間需要管理、維護和監(jiān)視。

 

根據(jù)您在步驟5中選擇的解決方案,部署可以是自動化的,也可以是手動的。MLOps運行時工具提供自動部署。如果您在運行機器學習應(yīng)用程序時沒有這些工具,您可能需要編寫腳本和其他軟件來幫助您部署和管理管道。您可能還需要與您的IT組織合作來完成此任務(wù)。


步驟7:做得更好

回想一下,在步驟3中,您可能選擇了一個短期位置來運行生產(chǎn)ML MVP。在步驟5和步驟6中部署MVP之后,您可能需要進一步的步驟來檢查MVP的結(jié)果,并重新考慮關(guān)鍵的基礎(chǔ)設(shè)施決策?,F(xiàn)在代碼/MVP至少在第一個基礎(chǔ)設(shè)施中測試和運行,您可以比較和對比不同的基礎(chǔ)設(shè)施,看看是否需要改進。

 

步驟8:持續(xù)優(yōu)化
注意,步驟3 - 7在此機器學習應(yīng)用程序服務(wù)的業(yè)務(wù)用例的生命周期內(nèi)不斷重復(fù)。機器學習應(yīng)用程序本身可以重新定義、返回、傳輸?shù)叫碌幕A(chǔ)設(shè)施,等等。您可以看到MVP是如何被使用的,您從您的業(yè)務(wù)中得到了什么反饋,并相應(yīng)地進行改進。


MLOps還有什么?

MLOps是在生產(chǎn)環(huán)境中部署和管理模型的綜合實踐。上面的步驟顯示了如何通過部署第一個模型開始使用MLOps。一旦您采取了上述步驟,您將在生產(chǎn)中至少有一個機器學習應(yīng)用程序,然后您將需要在其生命周期中對其進行管理。然后,您可能需要考慮ML生命周期管理的其他方面,例如管理模型的治理,遵守您的業(yè)務(wù)的任何監(jiān)管需求,制定kpi以評估ML模型為業(yè)務(wù)應(yīng)用程序帶來的好處,等等。

 

我們希望這篇文章對你有用。

 

(編譯自:How to Move from Experimentation to Building Production Machine Learning Applications,作者: Nisha Talagala)