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

在碼頭工人MLflow v0.9.0 SQL後台功能,項目,和在Python中定製模型

分享這篇文章

Lakehouse讀取的數據探索為什麼lakehouses未來的數據架構和數據倉庫的父親,Bill Inmon。


MLflow v0.9.0今天被釋放。它引入了一組新的特性和社區的貢獻,包括跟蹤SQL存儲服務器,支持在集裝箱碼頭工人MLflow項目,和簡單的Python中的定製模型。另外,這個版本添加了一個插件方案定製MLflow後端存儲跟蹤和工件。

現在可以在PyPi文檔在線,你可以安裝這個新版本pip安裝mlflow中描述的那樣MLflow快速入門指南

在這篇文章中,我們將詳細說明一組MLflow v0.9.0特點:

  • 一個有效的SQL兼容的後端存儲跟蹤尺度實驗數以千計。
  • 一個插件擴展後端存儲方案跟蹤工件的能力。
  • 能夠運行在碼頭工人MLflow項目容器允許可擴展性和強隔離在執行期間。
  • 能夠自定義Python模型注入後和預處理邏輯python_func模型中的味道。

SQL後台存儲跟蹤

數千MLflow運行和實驗參數,默認文件存儲跟蹤服務器的實現沒有規模。從安德森雷耶斯,感謝社區的貢獻SQLAlchemy商店,一個開源SQL兼容存儲Python,解決這個問題,提供了可伸縮性和性能。兼容其他SQL存儲(比如MySQL、PostgreSQL、SQLite和MS SQL),開發者可以連接到一個本地或遠程存儲持久化的實驗運行,參數和工件。

日誌記錄運行時性能

我們比較的記錄性能MySQL-based SqlAlchemyStore FileStore。設置了1000分布在五個實驗運行MacBook Pro與四核上運行英特爾i7和16 gb的內存。(在以後的博客,我們計劃大EC2機器上運行這個基準期待甚至更好的性能。)

測量記錄性能平均在成千上萬的操作,我們看到3 x加速當使用一個數據庫支持的商店,如圖1所示。

此外,我們與多個客戶擴大到10並發客戶壓力測試日誌記錄指標、參數,標簽到後端存儲。雖然商店顯示運行時每操作一個線性增加,數據庫支持的存儲規模繼續大並發負載。

圖1日誌性能運行時

搜索引擎運行時性能

搜索的性能和獲得api顯示一個巨大的性能提升。下麵的比較顯示了兩種存儲類型搜索運行時越來越多的運行。

對後端存儲的設置和配置的更多信息,閱讀文檔跟蹤存儲

對後端存儲自定義插件

即使內部MLflow可插拔的體係結構允許不同的後端跟蹤和工件的商店,它不提供一個添加新供應商的能力插入新後端處理程序。

一個提議MLflow插件係統從社區貢獻者安德魯牧杖和維克多Zabalza現在允許您注冊您的存儲與MLflow處理程序。這個方案是非常有用的幾個原因:

  • 允許外部貢獻者打包和發布他們的定製處理程序
  • 擴展跟蹤能力和與商店可以在其他雲平台的集成Beplay体育安卓版本
  • 提供了一個能夠提供一個單獨的插件如果需要跟蹤和工件

核心可插入方案的概念entrypoints有效地用於其他Python包,例如,pytest,造紙廠,點擊等。集成和提供MLflow插件處理程序,說跟蹤和工件,您將需要兩個類實現:TrackingStoreRegisteryArtifactStoreRegistery

關於如何實現的細節的解釋,登記,並使用這個可插入方案定製後端存儲,讀取建議和它的實現細節

項目碼頭工人的容器

除了在Conda MLflow項目環境中運行,借助社區貢獻者馬庫斯雷姆曾為此寫過這個版本擴展了你運行的能力MLflow項目在一個碼頭工人容器。它有三個優點。首先,它允許您捕獲非python如Java庫的依賴關係。其次,它提供了更強的隔離在運行MLflow項目。第三,它打開渠道未來的功能添加工具MLflow運行其他dockerized項目,例如,在Kubernetes集群擴展。

碼頭工人容器內運行MLflow項目,你需要兩個工件:Dockerfile和MLProject文件。的碼頭工人的文件表達你的依賴關係如何構建一個碼頭工人的形象,雖然MLProject文件指定碼頭工人使用圖像名稱,入口點,默認參數模型。

有兩個簡單的命令,您可以運行MLflow項目在碼頭工人容器和視圖中運行的結果,如動畫所示如下。注意,MLFLOW_TRACKING_URI等環境變量保存在容器,所以你可以查看其運行的指標MLflow UI。

  1. 碼頭工人。- t mlflow-docker-example
  2. mlflow運行。- pα= 0.5

https://www.youtube.com/watch?v=74HF2CRFY_4

簡單的Python模型定製

通常,毫升開發者想要構建和部署模型,包括自定義推理邏輯(如預處理、後處理或業務邏輯)和數據依賴關係。現在,您可以創建自定義Python模型使用新的MLflow模型api。

構建一個自定義Python模型,擴展了mlflow.pyfunc.PythonModel類:

PythonModel:defload_context(自我,上下文):#上下文包含路徑文件工件def預測(自我,上下文,input_df):#您的自定義推理邏輯

load_context ()方法用於加載任何工件(包括其他模型!),你可能需要為了使預測模型。你定義模型的推理邏輯通過重寫預測()方法。

新的自定義模型演示了如何使用PythonModel保存文檔XGBoost與MLflow模型;檢查XGBoost例子!

進口mlflow.pyfunc#定義模型類AddVal(mlflow.pyfunc.PythonModel):def__init__(自我,瓦爾):自我。val = valdef預測(自我,上下文,model_input):返回model_input.apply (λ列:列+ self.val)#構造和保存模型model_path =“add_val_model”add5_model = AddVal (val =5)#保存模型mlflow.pyfunc。save_model (dst_path = model_path python_model = add5_model)

關於新模型的更多信息在MLflow定製特性,閱讀文檔定製的Python模型

其他功能和錯誤修正

除了這些特性外,其他幾個新功能都包含在這個版本。有些東西值得注意的是:

特性

  • (CLI)添加CLI命令:現在你可以列表,刪除,恢複,並描述貫穿CLI (# 720, @DorIndivo)
  • (CLI)現在可以運行命令——experiment-name作為一個參數,作為替代——experiment-id論點。你也可以選擇設置_EXPERIMENT_NAME_ENV_VAR環境變量而不是顯式傳遞價值。(# 889,# 894,@mparke)
  • [R]支持HTTP身份驗證R跟蹤服務器的客戶端。現在你可以連接到安全跟蹤服務器使用憑證中設置環境變量,設置憑證或提供自定義插件。作為一個例子,這個版本包含一個磚插件能夠檢測現有的磚憑證允許您連接到磚跟蹤的服務器。(# 938,# 959,# 992,@tomasatdatabricks)
  • (模型)PyTorch模型持久性改進允許持久化定義和依賴外直接範圍:
    • 添加一個code_paths參數mlflow.pytorch.save_model ()mlflow.pytorch.log_model ()允許外部模塊依賴項指定為python文件路徑。@dbczumar (# 842)。
    • 改善mlflow.pytorch。從筆記本電腦和save_model捕獲類定義主要範圍(# 851,# 861,@dbczumar)

變化的完整列表,bug修複,可以找到來自社區的貢獻0.9.0更新日誌。我們歡迎更多的輸入(電子郵件保護)或通過申請的問題在GitHub上。關於MLflow實時問題,我們還提供了一個鬆弛的通道。最後,您可以遵循@MLflow在Twitter上的最新消息。

學分

我們想要感謝下列貢獻者更新,doc變化,和貢獻在MLflow 0.9.0:亞倫·戴維森,Ahmad Faiyaz,安德森雷耶斯,安德魯牧杖,科裏Zumar, DorIndivo, Dmytro Aleksandrov韓愈崔,吉姆·湯普森,凱文•郭凱文袁,馬泰Zaharia馬庫斯雷姆曾為此寫過摩尼Parkhe, Maitiu O Ciarain Mohamed Laradji哈斯默奇,斯蒂芬妮Bodoff,安蘇,Taneli Mielikainen,托馬斯Nykodym,維克多Zabalza 4 n4nd

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