生命周期管理模型

本文描述了如何使用MLflow模型注冊作為機器學習的一部分工作流管理毫升的完整生命周期模型。磚MLflow模型提供了一個托管版本的注冊表。模型注冊中心提供:

  • 時間模型譜係(MLflow實驗和運行產生模型在給定的時間)。

  • 模型服務

  • 模型版本。

  • 過渡階段(例如,從分段生產或存檔)。

  • 人則所以你可以自動觸發行動基於注冊事件。

  • 郵件通知的事件模型。

您還可以創建和查看模型描述和評論。

本文包含指令為注冊用戶界麵模型和模型注冊API。

模型注冊中心概念的概述,請參閱MLflow指南

創建或注冊一個模型

你可以使用UI創建或注冊一個模型,或注冊一個模型使用API

使用UI創建或注冊一個模型

有兩種方法來注冊一個模型在模型中注冊表。你可以注冊一個現有的模型,已經記錄到MLflow,或者您可以創建和注冊一個新的空模型,然後分配一個以前記錄模型。

注冊一個現有的從一個筆記本記錄模型

  1. 在工作區中,識別包含模型的MLflow運行你想注冊。

    1. 單擊實驗圖標實驗的圖標在筆記本的右欄。

      筆記本電腦工具欄
    2. 在實驗中運行欄,單擊外部鏈接圖標旁邊的日期。MLflow運行頁麵顯示。這個頁麵顯示了運行的細節包括參數、指標、標簽和工件的列表。

  2. 在工件部分,單擊目錄命名xxx-model

    注冊模式
  3. 單擊注冊模式在最右邊的按鈕。

  4. 在對話框中,單擊模型箱,做以下之一:

    • 選擇創建新的模型從下拉菜單。的模型名稱字段出現。例如,輸入一個模型名稱scikit-learn-power-forecasting

    • 從下拉菜單中選擇一個已存在的模型。

    創建新的模型
  5. 點擊注冊

    • 如果你選擇創建新的模型,這個寄存器模型命名scikit-learn-power-forecasting,複製模型到一個安全的位置由MLflow模型注冊表,並創建一個新版本的模型。

    • 如果你選擇一個現有的模型,這注冊一個新版本的選擇模型。

    幾分鍾後,注冊模式按鈕更改鏈接到新注冊模型版本。

    選擇新創建的模型
  6. 點擊鏈接打開新的模型版本模型中注冊的用戶界麵。你還可以找到模型在模型中注冊點擊模型圖標模型在側邊欄。

創建一個新的注冊模型和分配一個記錄模型

您可以使用創建模型按鈕注冊頁麵創建一個新的模型,空模型,然後指定一個記錄模型。遵循以下步驟:

  1. 在模型注冊頁麵,點擊創建模型。輸入模型的名稱,然後單擊創建

  2. 按照步驟1到步驟3注冊一個現有的從一個筆記本記錄模型

  3. 注冊模型對話框中,選擇模型您在步驟1中創建的名稱並單擊注冊。這個寄存器名稱創建一個模型,複製模型到一個安全的位置由MLflow模型注冊表,並創建一個模型版本:版本1

    幾分鍾後,MLflow運行界麵取代了寄存器模型按鈕鏈接到新注冊模型版本。你現在可以選擇的模型模型注冊模式對話框的下拉列表實驗運行頁麵。你也可以注冊新版本的模型通過指定它的名字在API命令創建ModelVersion

注冊一個模型使用API

有三種編程方法來注冊一個模型在模型中注冊表。所有方法複製模型到一個安全的位置由MLflow模型注冊表。

  • 記錄模型和注冊到指定的名稱在MLflow實驗中,使用mlflow。< model-flavor > .log_model (…)方法。如果注冊模型的名稱不存在,這個方法注冊一個新的模型,創建版本1,並返回一個ModelVersionMLflow對象。如果注冊模型的名稱已經存在,該方法創建一個新的模型版本並返回對象的版本。

    mlflowstart_run(run_name= <運行- - - - - -的名字>)作為運行:mlflow。<模型- - - - - -味道>。log_model(<模型- - - - - -味道> = <模型>,artifact_path=“< model-path >”,registered_model_name=“<模型名稱>”)
  • 注冊一個模型與指定名稱所有實驗運行完成後,你決定哪種模式最適合添加到注冊表,使用mlflow.register_model ()方法。對於這個方法,需要運行IDmlruns: URI論點。如果注冊模型的名稱不存在,這個方法注冊一個新的模型,創建版本1,並返回一個ModelVersionMLflow對象。如果注冊模型的名稱已經存在,該方法創建一個新的模型版本並返回對象的版本。

    結果=mlflowregister_model(“運行:< model-path >”,“<模型名稱>”)
  • 創建一個新的注冊模型指定的名稱,使用MLflow客戶機APIcreate_registered_model ()方法。如果模型名稱存在,該方法拋出一個MLflowException

    客戶端=MlflowClient()結果=客戶端create_registered_model(“<模型名稱>”)

你也可以注冊一個模型磚起程拓殖的提供者databricks_mlflow_model

訪問控製模型

學習如何訪問控製模型在模型注冊中心注冊,看看MLflow模型權限

過渡階段模型

模型版本有一個以下階段:沒有一個,暫存,生產,或存檔。的暫存階段是用來模型測試和驗證,雖然生產階段是模型版本,已經完成了測試或審查流程和部署到應用程序已經住得分。存檔的模型版本被認為是不活躍的,此時你可以考慮刪除它。不同版本的模型可以在不同的階段。

一個用戶提供合適的許可可以過渡階段之間的模型版本。如果你有權限模型版本過渡到一個特定的階段,你可以直接過渡。如果你沒有權限,你可以請求階段過渡和用戶有權限模型版本可以過渡批準、拒絕或取消請求

你可以使用UI或過渡模型階段使用API

過渡階段使用UI模型

按照下列指示來轉換模型的階段。

  1. 顯示的列表可用模型階段,你的可用選項,在一個模型版本頁麵,單擊旁邊的下拉列表階段:和請求或選擇一個過渡到另一個階段。

    過渡階段的選擇
  2. 輸入一個可選的評論,然後單擊好吧

模型版本過渡到生產階段

測試和驗證後,可以過渡或請求一個過渡到生產階段。

模型注冊允許多個版本的注冊模型在每個階段。如果你想在生產中隻有一個版本,你可以轉換所有版本的模型目前在生產檢查歸檔轉變現有生產模型版本存檔

批準、拒絕或取消請求模型版本階段過渡

用戶沒有權限可以請求階段過渡階段過渡。請求出現在掛起的請求部分的模型版本頁麵:

過渡到生產

批準、拒絕或取消一個階段轉換請求,點擊批準,拒絕,或取消鏈接。

過渡的創建者請求也可以取消請求。

視圖模型版本活動

查看所有的轉換請求,批準,等待,並應用於一個模型版本,活動部分。這個記錄的活動提供了一個模型的生命周期的血統為審計或檢查。

過渡使用API模型階段

用戶提供適當的權限模型版本過渡到一個新的階段。

更新模型版本階段提升到一個新的階段,使用MLflow客戶機APItransition_model_version_stage ()方法:

客戶端=MlflowClient()客戶端transition_model_version_stage(的名字=“<模型名稱>”,版本= <模型- - - - - -版本>,階段=“< >階段”,描述=“<描述>”)

可接受的值<階段>是:“暫存”|“暫存”,“存檔”|“歸檔”,“生產”|“生產”,“沒有”|“沒有”

使用模型推理

預覽

這個特性是在公共預覽

模型在模型注冊中心注冊後,您可以自動生成一個筆記本使用批處理或流推理模型。或者,您可以創建一個端點使用實時服務的模型模型服務

在右上角注冊頁麵模型或者是模型版本頁麵,點擊使用模型按鈕。配置模型推理對話框,它允許您配置批,流媒體,或者實時推理。

重要的

蟒蛇inc .)更新他們的服務條款為anaconda.org頻道。基於新的服務條款你可能需要一個商業許可證如果你依靠蟒蛇的包裝和分布。看到蟒蛇商業版常見問題解答為更多的信息。你使用任何蟒蛇的通道是由他們的服務條款。

MLflow模型記錄之前v1.18(磚運行時的8.3毫升或更早)與conda默認登錄違約通道(https://repo.anaconda.com/pkgs/作為一個依賴項。因為這個許可改變,磚已經停止使用違約渠道模式登錄使用MLflow v1.18以上。默認通道記錄是現在conda-forge,點在社區管理https://conda-forge.org/

如果你登錄一個模型之前MLflow v1.18沒有排除違約通道從conda環境模型,該模型可能有依賴違約頻道,你可能沒有。手動確認模型是否有這種依賴性,你可以檢查通道的價值conda.yaml打包的文件與記錄模型。例如,一個模式conda.yaml與一個違約通道的依賴可能看起來像這樣:

渠道:- - - - - -違約依賴關係:- - - - - -python = 3.8.8- - - - - -皮普- - - - - -皮普:- - - - - -mlflow- - - - - -scikit-learn = = 0.23.2- - - - - -cloudpickle = = 1.6.0的名字:mlflow-env

因為磚不能確定你使用的水蟒庫與模型進行交互是允許你和蟒蛇的關係下,磚不是迫使其客戶進行任何更改。beplay体育app下载地址如果你使用Anaconda.com回購通過使用磚是允許在蟒蛇的條件下,您不需要采取任何行動。

如果你想換頻道中使用模型的環境中,你可以注冊模型到模型中注冊一個新的conda.yaml。你可以通過指定的通道conda_env參數的log_model ()

更多的信息log_model ()API,看到MLflow味道你正在與文檔模型,例如,為scikit-learn log_model

的更多信息conda.yaml文件,請參見MLflow文檔

配置模型推理對話框

配置批推理

當你遵循這些步驟,以創建一批推理筆記本,筆記本是保存在您的用戶文件夾下Batch-Inference與模型文件夾在文件夾的名字。你可以根據需要編輯的筆記本。

  1. 單擊批推理選項卡。

  2. 模型版本下拉,選擇要使用的模型版本。前兩個項目下拉模型的當前生產和分段版本(如果存在的話)。當您選擇這些選項之一,筆記本自動使用生產或臨時版本的運行時間。你不需要更新筆記本繼續發展模型。

  3. 單擊瀏覽旁邊的按鈕輸入表。的選擇輸入數據對話框出現了。如果有必要,你可以改變的集群計算下拉。

    請注意

    統一目錄啟用工作區,選擇輸入數據對話框允許您選擇從三個層次,<目錄名稱>。<數據庫名稱>。<表名稱>

  4. 選擇包含模型的輸入數據的表,並單擊選擇。進口筆記本電腦自動生成該數據並將其發送到模型中。您可以編輯生成的筆記本如果數據需要任何之前轉換輸入到模型中。

  5. 預測是保存在一個文件夾的目錄dbfs: / FileStore / batch-inference。默認情況下,保存在一個文件夾名稱相同的預測模型。每次運行生成的筆記本寫到一個新文件與時間戳添加到該目錄的名字。你也可以選擇不包括覆蓋該文件的時間戳和隨後的筆記本的運行;指令提供了生成的筆記本。

    你可以改變預測的文件夾保存輸入到一個新文件夾的名字輸出表的位置字段或通過單擊文件夾圖標瀏覽目錄並選擇一個不同的文件夾。

    將預測保存到一個位置統一目錄,您必須編輯筆記本。例如筆記本顯示如何訓練機器學習模型,使用數據統一目錄並把結果返回給統一目錄,看看Python毫升模型訓練和聯合編目數據

配置流推理使用三角洲住表

當你按照以下步驟創建一個流推理筆記本,筆記本是保存在您的用戶文件夾下DLT-Inference與模型文件夾在文件夾的名字。你可以根據需要編輯的筆記本。

  1. 單擊流(δ生活表)選項卡。

  2. 模型版本下拉,選擇要使用的模型版本。前兩個項目下拉模型的當前生產和分段版本(如果存在的話)。當您選擇這些選項之一,筆記本自動使用生產或臨時版本的運行時間。你不需要更新筆記本繼續發展模型。

  3. 單擊瀏覽旁邊的按鈕輸入表。的選擇輸入數據對話框出現了。如果有必要,你可以改變的集群計算下拉。

  4. 選擇包含模型的輸入數據的表,並單擊選擇。使用生成的筆記本創建一個數據變換作為源和整合了MLflow輸入表PySpark推理UDF執行模型預測。您可以編輯生成的筆記本如果需要任何額外的轉換之前或之後的數據模型。

  5. 提供輸出三角洲住表名。筆記本用給定的名稱創建一個生活表,並使用它來存儲模型預測。您可以修改生成的筆記本定製所需的目標數據集——例如:定義一個直播表作為輸出,添加模式信息或數據質量約束。

  6. 您可以創建一個新的三角洲生活表管道用這個筆記本或將其添加到現有管道作為額外的筆記本圖書館。

提供反饋

這個特性在預覽,我們希望得到你的反饋。提供反饋,點擊提供反饋在配置模型推理對話框。

比較模型版本

在注冊表模型可以比較模型版本。

  1. 注冊頁麵模型,選擇兩個或兩個以上的模型版本通過點擊複選框左邊的模型版本。

  2. 點擊比較

  3. 的比較< N >版本屏幕出現,顯示一個比較的參數表格,模式和指標選擇模型的版本。在屏幕的底部,您可以選擇的繪圖類型(散射、輪廓或平行坐標)和情節的參數或指標。

控製通知偏好

您可以配置模型注冊通過電子郵件通知您關於注冊活動模型和模型指定的版本。

在注冊頁麵模型,通知我菜單顯示了三個選項:

郵件通知菜單
  • 所有的新活動:發送電子郵件通知所有活動模型版本的這個模型。如果您注冊創建模型,這個設置是默認的。

  • 我跟著活動版本隻有模型版本:發送電子郵件通知你。這個選擇,你收到通知所有模型版本,你遵循;你不能關閉的通知特定的模型版本。

  • 沉默的通知:不發送電子郵件通知活動在這注冊模型。

以下事件觸發郵件通知:

  • 創建一個新的模型版本

  • 請求一個階段過渡

  • 階段過渡

  • 新評論

你是自動訂閱模型通知當你有下列:

  • 模型版本的評論

  • 模型版本的過渡階段

  • 要求模型的過渡階段

看看你模型版本後,看下的狀態字段模型版本頁麵,或表的模型版本注冊頁麵模型

關掉所有電子郵件通知

你可以關掉郵件通知模型中注冊用戶設置菜單的設置選項卡:

  1. 點擊用戶設置圖標設置在左下角的磚工作區。

  2. 點擊用戶設置

  3. 電子郵件首選項選項卡。

  4. 關掉模型注冊郵件通知

一個帳戶管理員可以關掉整個組織的電子郵件通知管理員設置頁麵

最大數量的電子郵件發送

模型注冊限製每個用戶發送的郵件數量每一天的活動。舉個例子,如果你收到一天20封電子郵件關於新模型版本為注冊創建模型,模型注冊發送電子郵件指出每日限製已經達到,也沒有額外的電子郵件關於這個事件被發送到第二天。

增加郵件的數量的限製,請聯係您的磚的代表。

人則

預覽

這個特性是在公共預覽

人則使您能夠偵聽模型注冊事件所以你的集成可以自動觸發動作。您可以使用人自動化和集成你的機器學習管道與現有CI / CD工具和工作流。例如,您可以觸發CI構建當創建一個新的模型版本或通知你的團隊成員通過鬆弛每次模型過渡到生產要求。

注釋版本的模型或模型

您可以提供信息模型或模型版本注釋。例如,您可能想要包括的概述問題或信息所使用的方法和算法。

注釋一個模型或模型版本使用UI

磚UI提供了幾種方法來標注模型和模型版本。您可以添加使用描述或評論文本信息,你可以添加搜索鍵-值標簽。描述和標簽可用於模型和模型版本;評論僅供模型版本。

  • 旨在提供信息模型描述。

  • 評價提供一種方法來維護一個正在進行的討論活動模型版本。

  • 標記允許您定製模型元數據能很容易地找到特定的模型。

添加或更新一個模型或模型的描述版本

  1. 注冊模式模型版本頁麵,點擊編輯旁邊描述。一個編輯窗口。

  2. 在編輯窗口中輸入或編輯的描述。

  3. 點擊保存保存您的更改或取消關閉窗口。

    如果你進入了一個描述模型的版本,描述出現在描述列在表注冊頁麵模型。列顯示最多32個字符或者一行文本,哪個是短的。

模型版本添加評論

  1. 向下滾動模型版本頁麵,點擊旁邊的向下箭頭活動

  2. 在編輯窗口中輸入你的評論和點擊添加評論

為一個模型或者模型版本添加標簽

  1. 注冊模式模型版本頁麵,點擊標簽圖標如果尚未打開。標簽表出現。

    標簽表
  2. 點擊的名字價值字段和標簽的鍵和值類型。

  3. 點擊添加

    添加標簽

編輯或刪除標記為一個模型或者模型版本

編輯或刪除現有標簽,使用的圖標行動列。

標簽的行為

注釋一個模型使用API版本

更新版本描述模型,使用MLflow客戶機APIupdate_model_version ()方法:

客戶端=MlflowClient()客戶端update_model_version(的名字=“<模型名稱>”,版本= <模型- - - - - -版本>,描述=“<描述>”)

建立或更新一個標記注冊模型或者模型版本,使用MLflow客戶機API“set_registered_model_tag ()”)或“set_model_version_tag ()”方法:

客戶端=MlflowClient()客戶端set_registered_model_tag()(的名字=“<模型名稱>”,關鍵=“<鍵值>”,標簽=“<標簽值>”)
客戶端=MlflowClient()客戶端set_model_version_tag()(的名字=“<模型名稱>”,版本= <模型- - - - - -版本>,關鍵=“<鍵值>”,標簽=“<標簽值>”)

重命名一個模型(API)

重命名一個注冊模型,使用MLflow客戶機APIrename_registered_model ()方法:

客戶端=MlflowClient()客戶端rename_registered_model(“<模型名稱>”,“< new-model-name >”)

請注意

您可以重命名一個注冊模型隻有在它沒有版本,或所有版本都沒有或歸檔階段。

尋找一個模型

所有注冊模型住在MLflow模型注冊表。您可以使用UI搜索模型和API。

請注意

當你搜索一個模型,隻有你至少有模型“可讀”權限返回。

尋找一個模型使用UI

顯示所有注冊模式,點擊模型圖標模型在側邊欄。

搜索一個特定的模型,在搜索框中輸入文本。您可以輸入一個模型的名稱或任何部分的名稱:

注冊模型搜索

你也可以搜索標簽。在這種格式輸入標簽:標簽。<鍵> = <值>。搜索多個標簽,使用操作符。

標簽關鍵詞搜索

你可以搜索模型名稱和標簽使用MLflow搜索語法。例如:

名稱和標簽關鍵詞搜索

尋找一個模型使用API

你可以搜索模型在模型中注冊MLflow注冊客戶端API方法search_registered_models ()

如果你有設置標簽在你的模型,你也可以搜索的標簽search_registered_models ()

打印(f“找到注冊模型與一個特定的標記價值”)客戶端search_registered_models(f“tags. <鍵值> = <標簽值>”):pprint(dict(),縮進=4)

你也可以搜索一個特定的模型名稱和使用MLflow客戶機API版本上市細節search_model_versions ()方法:

pprint進口pprint客戶端=MlflowClient()(pprint(mv)mv客戶端search_model_versions(“name = <模型名稱>”)]

這個輸出:

{“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}{“creation_timestamp”: 1582671960628,“current_stage”:“沒有”,“描述”:沒有,“last_updated_timestamp”: 1582671960628,“名稱”:“sk-learn-random-forest-reg-model”,“run_id”:“d994f18d09c64c148e62a785052e6723”,“源”:“。/ mlruns / 0 / d994f18d09c64c148e62a785052e6723 /工件/ sklearn-model ',“狀態”:“準備好了”,“status_message”:沒有,“user_id”:沒有,“版本”:2}

刪除一個模型或者模型版本

你可以刪除一個模型使用UI或API。

刪除一個使用UI模型版本或模型

警告

你不能取消這個行動。你可以轉換模型版本歸檔階段而不是從注冊表刪除它。當你刪除一個模型中,所有模型存儲的工件模型注冊和刪除所有與注冊相關的元數據模型。

請注意

你可以隻刪除模型和模型版本在沒有或歸檔階段。如果注冊模型版本暫存或生產階段,你必須轉變他們沒有或歸檔階段之前刪除模型。

刪除一個模型版本:

  1. 點擊模型圖標模型在側邊欄。

  2. 點擊一個模型的名字。

  3. 點擊一個模型版本。

  4. 點擊刪除模型版本在屏幕的右上角和選擇刪除從下拉菜單。

刪除模型:

  1. 點擊模型圖標模型在側邊欄。

  2. 點擊一個模型的名字。

  3. 點擊刪除模型在屏幕的右上角和選擇刪除從下拉菜單。

刪除一個模型或模型版本使用API

警告

你不能取消這個行動。你可以轉換模型版本歸檔階段而不是從注冊表刪除它。當你刪除一個模型中,所有模型存儲的工件模型注冊和刪除所有與注冊相關的元數據模型。

請注意

你可以隻刪除模型和模型版本在沒有或歸檔階段。如果注冊模型版本暫存或生產階段,你必須轉變他們沒有或歸檔階段之前刪除模型。

刪除一個模型版本

刪除一個模型版本,使用MLflow客戶機APIdelete_model_version ()方法:

#刪除版本1、2和3的模型客戶端=MlflowClient()版本=(1,2,3]版本版本:客戶端delete_model_version(的名字=“<模型名稱>”,版本=版本)

刪除一個模型

刪除一個模型,使用MLflow客戶機APIdelete_registered_model ()方法:

客戶端=MlflowClient()客戶端delete_registered_model(的名字=“<模型名稱>”)

工作區之間複製MLflow對象

導入或導出MLflow對象或從你的磚工作空間,您可以使用社區驅動的開源項目MLflow進出口遷移MLflow實驗、模型和工作區之間運行。

使用這些工具,您可以:

  • 與其他數據共享和協作科學家在同一個或另一個跟蹤服務器。例如,您可以克隆一個實驗從另一個用戶到您的工作區。

  • 複製一個模型從一個空間到另一個,比如從開發到生產工作區。

  • 從你當地的跟蹤服務器複製MLflow實驗和運行你的磚工作區。

  • 備份關鍵任務的實驗和模型到另一個磚工作區。

例子

這個例子演示了如何使用該模型構建一個機器學習應用程序注冊表:MLflow模型注冊表實例