跳轉到主要內容
工程的博客

引入mlflow-apps: MLflow庫的示例應用程序

通過Juntai鄭

2018年8月16日 工程的博客

分享這篇文章

介紹

今年夏天,我是一個軟件工程實習生在磚機器學習(ML)平台團隊。Beplay体育安卓版本作為我的實習項目的一部分,我構建了一組MLflow應用演示MLflow社區的功能,並提供例子來學習。

在這個博客中,我將討論這個圖書館可插入毫升應用程序,所有可運行通過MLflow。此外,我將分享我如何實現兩個MLflow特性:實習期間運行MLprojects從Git目錄和TensorFlow集成。

mlflow-apps:一組示例MLflow應用程序

mlflow-apps是可插拔的存儲庫通過MLflow毫升應用程序可運行。它幫助用戶獲得啟動使用MLflow通過提供如何使用MLflow具體的例子。

通過一行MLflow API調用或CLI命令,用戶可以運行應用程序訓練TensorFlow, XGBoost和scikit-learn模型數據存儲在本地或在雲存儲。這些應用程序日誌通過常見的指標和參數MLflow的跟蹤api,允許用戶輕鬆地比較擬合模型。

目前,mlflow-apps關注模型訓練,但是我們計劃添加額外的功能特性工程/數據預處理。在這方麵我們歡迎社區的貢獻。

mlflow-apps包含三個應用程序,每個創建和火車不同模型基於你的輸入數據。模型訓練的應用有:

好奇如何使用應用程序?你可以看到應用程序的源代碼和一個簡短的教程在存儲庫中在這裏。對於深入教程演示如何使用這些應用程序與MLflow磚內,看看這個筆記本

加強開源MLflow

MLflow有能力運行MLflow項目位於遠程git存儲庫,通過CLI命令等

mlflow git運行@githubcom:例子/ example.git……

MLflow現在可以執行毫升項目描述MLproject文件位於子目錄的git存儲庫。之前,執行一個MLflow運行從一個遠程存儲庫要求MLproject和conda。yaml文件的根目錄git存儲庫。一個例子git存儲庫結構必須看起來像下麵的:

原始MLFlow Git存儲庫布局

這個git存儲庫結構會導致每個項目分享不必要的相互依賴關係(如運行sklearn_file需要conda環境中安裝了所有的三種不同框架盡管隻有sklearn需要)。實現的新功能,命令可能看起來像這樣:

mlflow運行(電子郵件保護):例子/ example.git# sklearn_project……

隨後將訪問MLproject文件位於子目錄中叫什麼sklearn_project。前麵的示例git回購上麵現在可以重組等:

改善MLflow Git項目布局

現在,項目和依賴關係模塊化和(如分離出來。sklearn_project隻需要sklearn框架創建conda環境時)。這反過來會導致一個更幹淨、更容易與MLflow用戶體驗。

TensorFlow集成MLflow

雖然MLflow允許用戶使用任何毫升庫運行和部署模型,我們也希望這個項目有內置的簡單易用的集成與流行的庫。作為實習的一部分,我開發了一個TensorFlow集成,它允許儲蓄、加載和部署TensorFlow模型。

#儲蓄TensorFlow模型。saved_estimator_path = estimator.export_savedmodel (saved_estimator_path,receiver_fn) .decode (“utf - 8”)#日誌TensorFlow模型就得救了。mlflow.tensorflow.log_saved_model (saved_model_dir = saved_estimator_path,signature_def_key =“預測”,artifact_path = tmp.path (“模型”))

除了日誌TensorFlow模型,您可以加載回並執行推理使用MLflow api。

#加載模型作為一條巨蟒函數pyfunc = mlflow.tensorflow.load_pyfunc (mlflow.tracking._get_model_log_dir (model_name =路徑,run_id = run_id))#預測或測試數據預測= pyfunc.predict (test_df)

MLflow目前內置集成TensorFlow SparkML, H2O, sklearn模型。注意更多的框架支持在不久的將來!

結論

mlflow-apps上工作的時候,我能夠體驗MLflow作為用戶和項目開發人員。我能夠更好的看到如何緊密交織在一起的社區和項目開發人員MLflow等開放源碼項目。

作為我的第一次實習,我不可能要求一個更好的體驗。我進磚渴望學習一切關於工業和新技術——我發現工程師匹配我的學習欲望。因為我是在一個環境中,完成工程師不斷推動自己學習和挑戰自我,鼓勵我,反過來,是做同樣的事情。因此,我提高了我的技能作為一個軟件工程師突飛猛進。

特別shoutout生產服務和ML平台團隊,其中包括馬泰Zaharia亞倫戴維森,安德魯·陳保羅•OBeplay体育安卓版本gilvie摩尼Parkhe,托馬斯Nykodym,安蘇,科裏Zumar和我的導師Sid默奇。謝謝你的美妙的夏天!

閱讀更多

看看其他資源學習MLflow & mlflow-apps:

免費試著磚
看到所有工程的博客的帖子
Baidu
map