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,...)。有關完整列表,請檢視此處。(https://mlflow.org/docs/latest/models.html)
將模型儲存為工件的程式碼非常簡單:
擬合的結果將作為第一個引數傳遞給函式,第二個部分是目錄。如果您導航到UI並單擊執行,您將在頁面底部找到工件資訊。
如果您是偏執狂的型別,您現在可以檢視blob儲存帳戶,以驗證模型是否已實際儲存。
如果需要,您可以檢視load特性並開始圍繞模型構建應用程式。
可以在Github上找到用於此演示的完整repo。(https://github.com/Ycallaer/ArimaMlfowExample)
問題
我在框架中發現的更大問題是,即使您已經定義了儲存後端,所有日誌記錄也只儲存在docker容器中。這意味著如果重新啟動容器,則所有日誌記錄都將丟失。我記錄了一個問題(https://github.com/mlflow/mlflow/issues/613),它得到了當前團隊正在重新設計日誌記錄功能的響應。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545819/viewspace-2286441/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spark團隊開源新作:全流程機器學習平臺MLflowSpark機器學習
- 初學者的機器學習入門實戰教程!機器學習
- Endeavour的機器學習平臺機器學習
- 機器學習入門準備機器學習
- 機器學習之小白入門機器學習
- 機器學習入門規劃機器學習
- 機器學習PAI快速入門機器學習AI
- 機器學習01-入門機器學習
- 機器學習和深度學習概念入門機器學習深度學習
- 一文帶你入門圖機器學習機器學習
- 機器學習入門系列(2)--如何構建一個完整的機器學習專案(一)機器學習
- 流批一體機器學習演算法平臺機器學習演算法
- Nestjs入門學習教程JS
- 聊聊經典機器學習入門機器學習
- Mocha瀏覽器測試入門教程瀏覽器
- 機器學習演算法一覽機器學習演算法
- 【乾貨】機器學習和深度學習概念入門機器學習深度學習
- 【機器學習】深度學習與經典機器學習的優劣勢一覽機器學習深度學習
- 機器學習概覽機器學習
- 機器學習入門實戰疑問機器學習
- 機器學習入門之sklearn介紹機器學習
- 瀏覽器資料庫 IndexedDB 入門教程瀏覽器資料庫Index
- 入門教程的一些學習體會
- 用一個小例子教你入門機器學習框架TensorFlow機器學習框架
- 滴滴機器學習平臺架構演進機器學習架構
- 揭秘FACEBOOK未來的機器學習平臺機器學習
- 從零開始學機器學習——入門NLP機器學習
- 機器學習崗位年薪50萬+,現在有個提供免費學習實操的入門平臺,你不瞭解下?機器學習
- 瀏覽器裡玩機器學習、深度學習瀏覽器機器學習深度學習
- 機器學習工具總覽機器學習
- 我的機器學習入門路線圖機器學習
- Java機器學習VisRec API快速入門 - foojayJava機器學習API
- 包郵送書啦 |《機器學習入門》機器學習
- 快應用學習教程-入門
- 機器學習入門第一課:從高中課本談起機器學習
- Python機器學習會應用到哪些庫?Python入門學習Python機器學習
- 滴滴機器學習平臺架構演進之路機器學習架構
- 揭祕FACEBOOK未來的機器學習平臺機器學習