MLFlow機器學習管理平臺入門教程一覽
什麼是mlFlow?
mlFlow是一個支援機器學習生命週期的框架。這意味著它擁有在訓練和執行期間監控模型的元件、儲存模型的能力,在生產程式碼中載入模型以及建立管道。
該框架引入了3個不同的功能,每個功能都有自己的特性。
MlFlow追蹤
追蹤可能是框架最有趣的功能。它允許您圍繞模型建立廣泛的日誌記錄框架。您可以定義自定義指標,以便在執行後可以將輸出與先前的執行進行比較。
我們將主要關注這一部分,同時也讓您瞭解其他功能。
MlFlow專案
此功能允許您根據需要建立管道。此功能使用自己的模板來定義您希望如何在雲環境中執行模型。由於大多數公司都有辦法在生產環境中執行程式碼,因此您可能不太關心此功能。
MlFlow模型
最後我們有模型功能。 mlFlow Model是包裝機器學習模型的標準格式,可以在各種下游工具中進行使用 - 例如,透過REST API實時提供服務或在Apache Spark上進行批次推理。
理論完成:時間到了
那麼這個理論總是很好,但是現在是時候進行更多的實踐。首先,我們需要在實際啟動之前啟動mlFlow伺服器。為了做到這一點,我建立了一個docker容器,以便於部署。
在我們展示程式碼之前,配置儲存後端也很重要。由於我們希望將模型儲存在某個地方,我選擇了Azure blob儲存(請注意,AWS S3也受支援)。
然後,建立一個blob儲存賬戶並在裡面建立一個容器。
一旦建立它,您將需要寫下wasb連結,因為您將需要此值來啟動docker。 url通常定義如下:“wasbs:// <container> @ <storage_account_name> .blob.core.windows.net”
接下來我們可以開始構建docker了。由於mlFlow需要python,我從python影像開始,使工作更輕鬆了一些。基本上,只要確保容器中有Python可用,就可以從任何映像開始。您需要為此示例安裝的唯一2個包如下:
- 0.8.0 mlflow版本
- azure儲存0.36.0
要獲得完整的docker解決方案,只需檢視我的Github帳戶:https://github.com/Ycallaer/mlflowdocker
接下來,如果您不知道如何檢視自述檔案,則需要構建容器。
在本地計算機上啟動docker映象後,應透過以下URL獲取:http:// localhost:5000 /
如果一切順利,您的主頁可能看起來像這樣。
調整模型以使用mlFlow
一旦伺服器部件準備就緒,就可以調整我們的程式碼了。我已經建立了一個小型ARIMA模型實現來展示框架。
在開始之前,我們需要定義執行伺服器的URL。您可以透過呼叫方法“set_tracking_uri”來完成此操作。這是本演示的硬編碼,但理想情況下,這將指向一個公共端點。
接下來,我們需要建立一個實驗。這應該是唯一的識別符號,確保它唯一的一種方法是每次呼叫expirement方法時生成一個uuid。在我的例子中,我硬編碼了它以加速演示。
透過呼叫“start_run()”方法,我們告訴mlFlow這是執行的起點,這將為您的執行設定開始日期。不要忘記將實驗id傳遞給方法,以便所有日誌記錄都保持在實驗中。
省略實驗ID將導致所有日誌被寫入預設過期。
接下來,我們需要指定在執行期間要監視的值。一方面,您有“log_param()”,它記錄字串值的鍵值對。另一方面,我們有“log_metric()”,它只允許您將值定義為整數。
視覺效果
現在讓我們回到UI,看看我們的執行的可視結果是什麼。在主頁上,您會在左側找到您的實驗。
如果單擊日期,您將獲得該特定執行的概述。
在指標旁邊,您會看到一個圖形符號,如果單擊此符號,您可以看到此單個指標在執行期間的變化情況。
儲存模型
我們還希望能夠使用框架儲存模型。該框架允許您以與大多數流行框架相容的格式載入和儲存模型(例如:Scikit,Pytorch,Tensorflow,...)。有關完整列表,請檢視此處。()
將模型儲存為工件的程式碼非常簡單:
擬合的結果將作為第一個引數傳遞給函式,第二個部分是目錄。如果您導航到UI並單擊執行,您將在頁面底部找到工件資訊。
如果您是偏執狂的型別,您現在可以檢視blob儲存帳戶,以驗證模型是否已實際儲存。
如果需要,您可以檢視load特性並開始圍繞模型構建應用程式。
可以在Github上找到用於此演示的完整repo。()
問題
我在框架中發現的更大問題是,即使您已經定義了儲存後端,所有日誌記錄也只儲存在docker容器中。這意味著如果重新啟動容器,則所有日誌記錄都將丟失。我記錄了一個問題(),它得到了當前團隊正在重新設計日誌記錄功能的響應。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545819/viewspace-2286441/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spark團隊開源新作:全流程機器學習平臺MLflowSpark機器學習
- 機器學習:新手入門概覽(一)機器學習
- 壓力測試平臺(nGrinder)入門到精通教程
- 初學者的機器學習入門實戰教程!機器學習
- IsWorld收藏平臺—使用入門
- 開源函式計算平臺 OpenFunction 保姆級入門教程函式Function
- git 入門教程之分支總覽Git
- Mocha瀏覽器測試入門教程瀏覽器
- 機器學習入門機器學習
- Scala入門教程 (一)
- NSIS 入門教程 (一)
- Kafka教程(一)Kafka入門教程Kafka
- 高通MDM平臺開發入門
- Flutter狀態管理:Provider4 入門教程(一)FlutterIDE
- git 入門教程之分支管理Git
- 雲平臺服務商一覽
- 瀏覽器資料庫 IndexedDB 入門教程瀏覽器資料庫Index
- Endeavour的機器學習平臺機器學習
- Uber 機器學習平臺 — 米開朗基羅機器學習
- [入門到吐槽系列] Webix 10分鐘入門 一 管理後臺製作Web
- Docker(一):Docker入門教程Docker
- 機器學習1—入門機器學習
- MNIST機器學習入門機器學習
- 機器學習入門_從機器學習談起機器學習
- 微信公眾平臺開發入門
- .Net平臺下ActiveMQ入門例項MQ
- 度量快速開發平臺——快速入門
- Log4J入門教程(一) 入門例程
- 流批一體機器學習演算法平臺機器學習演算法
- 趣味機器學習入門小專案(附教程與資料)機器學習
- 一文帶你入門圖機器學習機器學習
- ArduinoYun快速入門教程第1章ArduinoYun概覽UI
- Arduino可穿戴開發入門教程Windows平臺下安裝Arduino IDEUIWindowsIDE
- 自媒體管理平臺,一鍵管理自媒體平臺賬號
- 一篇文章入門django開發 (測試平臺)Django
- Mac新手的入門教程(一)Mac
- Spring MVC入門教程(一)SpringMVC
- Redux 入門教程(一):基本用法Redux