新特性MLflow v0.5.2釋放
今天,我們很高興宣布MLflow v0.5.0, MLflow v0.5.1,和MLflow v0.5.2,上周公布了一些新特性。MLflow 0.5.2已經可以在PyPI和文檔更新。如果你做pip安裝mlflow
按照MLflow快速入門指南,你會得到最近的版本。
在這篇文章中,我們將描述這些版本新特性和修複。
Keras PyTorch模型集成
作為MLflow 0.5.2以及持續努力的一部分提供一係列的機器學習框架,我們擴展支持保存和加載Keras PyTorch模型使用log_modelapi。這些模型口味api出口他們的模型在各自的格式,所以Keras或PyTorch應用程序可以重用他們,不僅從本地MLflow但Keras或PyTorch代碼。
使用Keras模型api
一旦你已經定義了,訓練,和評估Keras模型,您可以記錄模型作為MLflow工件的一部分以及導出模型Keras HDF5格式為他人為預測負載或服務。例如,這個Keras片段代碼說明:
從keras進口密集,層進口mlflow進口mlflow.keras#構建、編譯和訓練你的模型keras_model =…keras_model。編譯(優化器= rmsprop,損失= mse的指標(“準確性”))結果= keras_model。符合(x_train、y_train時代=20.batch_size =128年validation_data = (x_val y_val))…#對數指標和模型與mlflow.start_run ()作為運行:…mlflow.keras。log_model(keras_model, “keras-model”)#加載模型Keras模型或pyfunc和利用其預測()方法
keras_model = mlflow.keras。load_model (“keras-model run_id =“96771 d893a5e46159d9f3b49bf9013e2”)預測= keras_model.predict (x_test)…
使用PyTorch模型api
類似地,您可以使用該模型api在PyTorch對數模型,。例如,下麵的代碼片段PyTorch很相似,與小變化PyTorch公開其方法。然而,隨著pyfunc方法都是一樣的:預測():
進口mlflow進口mlflow.pytorch進口火炬#構建、編譯和訓練你的模型pytorch_model =…pytorch_model.train ()pytorch_model。eval()…y_pred = pytorch_model.model (x_data)#對數指標和模型與mlflow.start_run ()作為運行:…mlflow.pytorch。log_model(pytorch_model, “pytorch-model”)#加載模型pytorch模型或pyfunc和利用其預測()方法
pytorch_model = mlflow.pytorch.load_model (“pytorch-model”)y_predictions = pytorch_model.model (x_test)
Python api用於實驗和運行管理
查詢過去的運行和實驗中,我們添加了新的公共api的一部分mlflow.tracking
模塊。在這個過程中,我們也重構舊的apimlflow
模塊記錄當前運行參數和指標。例如,記錄當前運行的基本參數和指標,可以使用mlflow.log_xxxx ()調用。
進口mlflow…與mflow.start_run ()作為運行:mlflow.log_param(“遊戲”,1)mlflow.log_metric(“分數”,25)…
然而,訪問這個運行的結果,說在另一個應用程序的一部分,您可以使用mflow.tracking
api是這樣的:
進口mlflow.tracking#讓服務;默認本地URI或從“mlruns”run_uuid = ' 96771 d893a5e46159d9f3b49bf9013e2”運行= mlflow.tracking.get_service () .get_run (run_uuid)分數= run.data.metrics [0]
前者處理堅持指標、參數和工件當前活動來看,後者允許管理實驗和運行(尤其是曆史運行)。
有了這個新的api,開發者可以訪問Python CRUD接口MLflow實驗和運行。因為它是一個低級的API,它地圖REST調用。這樣你可以在你的實驗運行構建基於rest的服務。
UI的改進來比較
由於卡通Baeyens (問題# 268@ToonKBC)MFlow跟蹤界麵我們可以比較兩個運行一個散點圖。例如,這張圖片顯示了大量的樹木和其相應的rmse度量。
同時,柱狀和板狀表示和組織實驗運行,度量,和參數,您可以很容易地想象結果和比較。麵包屑導航,整個遇到更好的UI體驗。
其他功能和錯誤修正
除了這些特性外,其他物品,修複bug和文檔都包含在這個版本。有些東西值得注意的是:
- (Sagemaker)用戶可以指定一個自定義VPC當部署Sagemaker模型(# 304,@dbczumar)
- (工件)SFTP artifactory商店添加(# 260,@ToonKBC)
- [Pyfunc] Pyfunc序列化現在包括Python版本和警告說如果主版本(可以抑製使用不同
load_pyfunc (suppress_warnings = True))
@dbczumar (# 230) - [Pyfunc] Pyfunc服務/預測將激活儲存在MLModel conda環境。這可以通過添加禁用
——no-conda
來mlflow pyfunc服務
或mlflow pyfunc預測
@0wu (# 225) - (CLI)
mlflow運行
現在可以運行在項目沒有conda.yaml
指定。默認情況下,將創建一個空conda環境——以前,它就會失敗。你仍然可以通過——no-conda
為了避免進入conda環境完全(# 218,@smurching) - 修複mlflow.start_run()實際運行設置為創建跑(在此之前,沒有一個)(# 322,@tomasatdatabricks)
- [許多]修複DBFS artifactory拋出一個異常,如果日誌工件失敗(# 309)和模擬FileStore的行為日誌目錄(# 347,@andrewmchen)
- [許多]修複火花。load_model不刪除DFS tempdir (# 335, @aarondav)
- [許多]使Python API兼容性與更新的服務器版本的原型(# 348,@aarondav)
- [許多]修複一個缺陷與ECR客戶創建導致
mlflow.sagemaker.deploy ()
失敗時尋找一個部署碼頭工人形象(# 366,@dbczumar) - (UI)改進的API文檔(# 305,# 284,@smurching)
變化的完整列表和貢獻的社區中可以找到0.5.2更新日誌。我們歡迎更多的輸入(電子郵件保護)或通過申請的問題或提交補丁在GitHub上。關於MLflow實時問題,我們最近還創建了一個鬆弛的通道對於MLflow以及可以效仿@MLflow在Twitter上。
學分
MLflow 0.5.2包括補丁、bug修複和醫生從亞倫戴維森,阿德裏安壯族,亞曆克斯·亞當森,安德魯·陳釀成Murdopo,科裏Zumar,朱爾斯Damji,馬泰Zaharia @RBang1,哈斯默奇,斯蒂芬妮Bodoff,托馬斯Nykodym, Tingfan Wu卡通Baeyens, Yassine Alouini。