MLflow 項目總覽

由於圖片放在Github上,需要的同學可以在Github上看該分享:mlflow_overview

Github項目地址: https://github.com/mlflow/mlflow

官方網站: https://www.mlflow.org/

MLflow 組成模塊

從去年6月份databricks公司開源MLflow項目至今,該項目已經從alpha版本迭代到了0.9版本,而在最近的Spark AI Summit 2019峯會上,Spark創始人Matei也公佈了正式版本1.0的realease。

  1. 什麼是MLflow?

    按照官方的字面定義:這是一個管理機器學習生命週期的開源平臺。

  2. MLflow解決了什麼問題?

    首先先從機器學習的生命週期去理解目前行業上的痛點,然後再看怎麼通過MLflow來解決。

    機器學習不是一個單向的pipeline,而是一個迭代的循環。其中包括4大部分:數據預處理、模型訓練、模型部署、數據更新。

    其中預處理過程和模型訓練都涉及到參數的調整;整個ML的過程都涉及到環節之間的配合。

    1. 參數調整的記錄問題

      現狀:對於參數調整的問題,以往我們都是手工做記錄,把對應的參數記載在excel或者其他文件中進行保存。再好一點的話就是通過git進行版本控制,在提交commit的時候把對應的參數記錄下來。通過excel記錄的數據,我們可以對比不同參數的效果;通過git版本控制,我們可以切換到對應參數的代碼版本。但是這一切的工作都費時費力,對於我來說,即使知道記錄參數很重要,但是很多時候不會每一次調參都記錄一次。

      MLflow的解決方案:如何更好地記錄相應的參數和對應參數的到的效果,MLflow通過使用tracking模塊的功能,能夠把參數、metric效果以及對應的代碼版本都記錄下來,而這一切的工作量只需要再代碼中加上一段使用tracking api的代碼即可。後續每次參數的調整都能記錄下來。(當然,tracking的功能還可以保存模型,這部分內容會在後面的模塊分享中提及)

    2. 各環節的配合問題

      現狀:在我們公司做開發模型的時候,我們算法這邊實現了最小閉環之後,拿給工程組的同事部署。這時候,並不是代碼拿過來就可用,而是需要大量的溝通工作以及代碼改寫以及環境的配置(目前機器學習相關的框架很多,不同模型可能使用不同框架),而且很多時候復現的結果也不能完全保證。

      MLflow的解決方案:爲了解決各個環節之間的配合問題,MLflow提出了MLflow Project以及MLflow Model這兩個概念,這兩個都是定義了一套慣例標準,只要你的project或者是model遵循這套配置,你就可以使用mlflow來進行一鍵式的project復現和模型部署功能,相當於你模型開發者的開發結果直接就可以一鍵式上線部署,中間不用工程改寫代碼,不需要環境的配置(具體細節在MLflow Project章節裏面詳細探討)

    Machine Learning Lifecycle

有關MLflow三個模塊的具體細節我們在其他文章分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章