跳到主要內容
公司博客上">
            <noscript>
             <img data-gatsby-image-ssr=

Databricks擴展MLflow模型注冊表與企業功能

分享這篇文章

我們很高興地宣布MLflow的新的企業級特性模型注冊在磚上。模型注冊表現在默認為所有使用Databricks的客戶啟用。beplay体育app下载地址統一分析平台Beplay体育安卓版本

在這篇博客中,我們想強調Model Registry作為模型管理中心的好處,跨組織的數據團隊如何共享和控製對模型的訪問,以及如何使用Model Registry api進行集成或檢查。

協作模型生命周期管理的中心樞紐beplay娱乐ios

MLflow已經具備了這樣的能力跟蹤指標參數,工件作為實驗的一部分;包模型和可重複的ML項目;而且將模型部署到批處理或實時服務平台Beplay体育安卓版本.基於這些現有功能,MLflow模型注冊表[AWS] [Azure]提供了一個中央存儲庫來管理模型部署生命周期。

概述用於模型管理的MLflow集中式中心的CI/CD工具、體係結構和工作流程。"height=
概述用於模型管理的MLflow集中式中心的CI/CD工具、體係結構和工作流程。

大型組織中的數據科學家麵臨的主要挑戰之一是缺少一個中央存儲庫來協作、共享代碼,並管理模型、模型版本及其曆史的部署階段轉換。跨組織的集中模型注冊中心為數據團隊提供了以下能力:

  • 發現已注冊模型、模型開發的當前階段、實驗運行,以及與已注冊模型相關的代碼
  • 將模型轉換到部署階段
  • 在不同的階段部署注冊模型的不同版本,提供MLOps工程師能夠部署和進行不同型號的測試
  • 為子孫後代和出處存檔舊模型
  • 仔細閱讀模型生命周期中的模型活動和注釋
  • 控製模型注冊、轉換或修改的粒度訪問和權限

MLflow Model Registry在整個生命周期中管理模型階段。"height=
模型注冊表在整個生命周期的不同階段顯示不同的版本。

模型階段管理的訪問控製

在當前數據和機器學習創新的十年中,模型已經成為寶貴的資產,對企業戰略至關重要。這些模型被用作解決業務問題的解決方案的一部分,從預測機械故障到預測電力消耗或財務業績;從欺詐和異常檢測到購買相關物品的輕微建議。

與敏感數據一樣,對於使用這些數據進行訓練和評分的模型,必須使用訪問控製列表(ACL),以便隻有授權用戶才能訪問模型。通過一組acl,數據團隊管理員可以在模型的生命周期內授予對已注冊模型上的操作的細粒度訪問,防止不恰當地使用模型或未經批準的模型轉換到生產階段。

在Databricks統一分析平台中,您現在可以在單個注冊模型上Beplay体育安卓版本設置權限,遵循通用Databricks的訪問控製和權限模型[AWS] [Azure].

MLflow Model Registry提供了一個附加對象,用於在已注冊模型上設置策略。"height=
Databricks資產訪問控製策略。

從Databricks工作區中的Registered Models UI中,您可以為注冊中心中的模型分配適當的權限,類似於筆記本或集群。

使用MLflow Model Registry UI設置權限。"height=
在Model Registry UI中使用acl設置權限

如下表所示,管理員可以為Model Registry中注冊的模型分配四個權限級別:沒有權限編輯,管理.根據團隊成員對訪問模型的需求,您可以為下麵所示的每個能力向單個用戶或組授予權限。

能力 沒有權限 編輯 管理
創建模型 X X X X
在列表中查看模型及其模型版本 X X X
查看模型的詳細信息、版本及其詳細信息、階段轉換請求、活動和工件下載uri X X X
為模型版本申請階段轉換 X X X
向模型中添加新版本 X X
更新型號和版本描述 X X
重命名模型 X
在階段之間轉換模型版本 X
批準、拒絕或取消模型版本階段轉換請求 X
修改權限 X
刪除型號和型號版本 X

模型注冊表訪問,能力和權限

如何使用模型注冊表

通常,使用MLflow的數據科學家將進行許多實驗,每個實驗都有許多次運行,以跟蹤和記錄指標和參數。在這個開發周期的過程中,他們將在一個實驗中選擇最佳的運行,並將其模型注冊到注冊中心。此後,注冊表將讓數據科學家在模型發展過程中跟蹤多個版本,因為他們為每個版本分配了一個生命周期階段:暫存生產,或存檔

有兩種與MLflow模型注冊表交互的方法[AWS] [Azure].第一種是通過與Databricks工作區集成的Model Registry UI,第二種是通過MLflow跟蹤客戶端api.後者為MLOps工程師提供了對注冊模型的訪問,以便與CI/CD工具集成,以測試或檢查模型的運行及其元數據。

建模注冊表UI工作流

可以從Databricks工作區訪問Model Registry UI。從Model Registry UI中,您可以執行以下活動作為工作流的一部分:

  • 從Run頁麵注冊一個模型
  • 編輯模型版本描述
  • 轉換模型版本
  • 查看模型版本活動和注釋
  • 顯示和搜索已注冊的模型
  • 刪除模型版本

模型注冊表api工作流

與模型注冊中心交互的另一種方法是使用MLflow模型香精MLflow客戶端跟蹤API接口。如上麵的UI工作流中所列舉的,您可以使用api對已注冊的模型執行類似的操作。這些api對於閱讀或與需要訪問模型進行夜間測試的外部工具集成非常有用。

從模型注冊表加載模型

模型注冊表的api允許您與您所選擇的持續集成和部署(CI/CD)工具(如Jenkins)集成,以測試您的模型。例如,您的單元測試,通過上麵提到的授予適當的權限,可以加載模型的一個版本進行測試。

在下麵的代碼片段中,我們加載了同一模型的兩個版本:登台版的版本3和生產版的最新版本。

進口mlflow.sklearn#加載版本3.模型://URI作為參數model_version_uri =“模型:/ {model_name} / 3”.format (model_name =“scikit-learn-power-forecasting-model”Model_version_3 = mlflow.sklearn.load_model(model_version_uri)

現在Jenkins作業可以訪問用於測試的模型的登台版本3。如果您想加載最新的產品版本,隻需更改model:/URI來獲取產品模型。

#在生產階段加載模型model_production_uri =“模型:/ {model_name} /生產”格式(model_name =“scikit-learn-power-forecasting-model”Model_production = mlflow.sklearn.load_model(model_production_uri)

與Apache Spark Job集成

除了與您選擇的部署(CI/CD)工具集成之外,您還可以從注冊表加載模型,並在Spark批處理作業中使用它。一個常見的場景是將您注冊的模型加載為火花UDF

#將模型加載為Spark udf進口mlflow.pyfuncBatch_df = spark.read.parquet()特征=['溫度','風速','濕度']Pyfunc_forecast_udf = mlflow.pyfunc。model_production_uri spark_udf(火花)prediction_batch_df = batch_df.withColumn(“預測”pyfunc_forecast_udf功能(*))

檢查,列出或搜索有關注冊型號的信息

有時,您可能希望通過編程接口檢查已注冊模型的信息MLflow實體模型信息。例如,您可以使用一個簡單的方法獲取注冊表中所有已注冊模型的列表,並遍曆其版本信息。

客戶端= MlflowClient()rmclient.list_registered_models ():打印f " name ={rm.name}[(打印f“run_id ={mv.run_id}),打印f”狀態={mv.current_stage}),打印f”版本={mv.version}))mvrm.latest_versions]

這個輸出:

name = sk-learn-random-forest-reg-modelrun_id = dfe7227d2cae4c33890fe2e61aa8f54bcurrent_stage =生產版本= 1......

對於數百個模型,閱讀或打印此調用返回的結果可能很麻煩。一種更有效的方法是搜索特定的模型名稱並使用列出其版本詳細信息search_model_versions ()方法,並提供一個過濾器字符串,如“name='sk-learn-random-forest-reg-model'”。

客戶端= MlflowClient()mvclient.search_model_versions (“name = sk-learn-random-forest-reg-model”):pprintdict (mv),縮進=4“creation_timestamp”1582671933246“current_stage”“生產”“描述”包含100棵決策樹的隨機森林模型“受過scikit-learn培訓”“last_updated_timestamp”1582671960712“名字”“sk-learn-random-forest-reg-model”“run_id”“ae2cc01346de45f79a44a320aab1797b”“源””。/ mlruns / 0 / ae2cc01346de45f79a44a320aab1797b /工件/ sklearn-model”“狀態”“準備好了”“status_message”:沒有,“user_id”(電子郵件保護)“版本”1...

總而言之,MLfow模型注冊表默認情況下對所有Databricks客戶可用。beplay体育app下载地址作為ML模型的中心樞紐,它為跨大型組織的數據團隊提供協作和共享模型、管理轉換、注釋和檢查沿襲。對於受控協作,管理員使用acl設置策略,以授予訪問已注冊模型的權限。

最後,您可以使用Databricks工作區的MLflow UI或MLflow api作為模型生命周期工作流的一部分與注冊中心交互。

開始使用模型注冊表

準備好開始或者自己嚐試了嗎?您可以閱讀更多關於MLflow模型注冊表以及如何使用它AWSAzure.或者你也可以試試筆記本的樣本。AWS] [Azure

如果您是MLflow的新手,請閱讀開放源代碼MLflow快速入門,使用最新的MLflow 1.7.有關生產用例,請閱讀相關內容在Databricks上管理MLflow並開始使用MLflow模型注冊表。

如果您有興趣了解在Databricks上使用MLflow管理整個ML生命周期的最新發展和最佳實踐,請加入我們的互動MLOps虛擬事件

免費試用Databricks
看到所有公司博客上的帖子