開始
加載和管理數據
處理數據
政府
引用和資源
2023年6月23日更新
給我們反饋
一個MLflow模型包裝機器學習模型是一個標準的格式,可用於多種下遊工具示例中,批處理推理在Apache火花或實時通過REST API服務。格式定義了一個約定,允許您保存在不同的模型口味(python函數、pytorch sklearn等等),可以理解不同的模型服務和推理平台Beplay体育安卓版本。
當你登錄一個模型,MLflow自動日誌讓和conda.yaml文件。您可以使用這些文件來創建模型開發環境和安裝使用的依賴關係virtualenv(推薦)或conda。
讓
conda.yaml
virtualenv
conda
重要的
蟒蛇inc .)更新他們的服務條款為anaconda.org頻道。基於新的服務條款你可能需要一個商業許可證如果你依靠蟒蛇的包裝和分布。看到蟒蛇商業版常見問題解答為更多的信息。你使用任何蟒蛇的通道是由他們的服務條款。
MLflow模型記錄之前v1.18(磚運行時的8.3毫升或更早)與conda默認登錄違約通道(https://repo.anaconda.com/pkgs/作為一個依賴項。因為這個許可改變,磚已經停止使用違約渠道模式登錄使用MLflow v1.18以上。默認通道記錄是現在conda-forge,點在社區管理https://conda-forge.org/。
違約
conda-forge
如果你登錄一個模型之前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 ()。
conda_env
log_model ()
更多的信息log_model ()API,看到MLflow味道你正在與文檔模型,例如,為scikit-learn log_model。
的更多信息conda.yaml文件,請參見MLflow文檔。
MLflow記錄模型跟蹤服務器,使用mlflow。<模型類型> .log_model(模型,…)。
mlflow。<模型類型> .log_model(模型,…)
加載之前記錄模型推理或進一步發展,使用mlflow。<模型類型> .load_model (modelpath),在那裏modelpath是下列之一:
mlflow。<模型類型> .load_model (modelpath)
modelpath
run-relative路徑(如運行:/ {run_id} / {model-path})
運行:/ {run_id} / {model-path}
DBFS路徑
一個注冊模式路徑(如模型:/ {model_name} / {model_stage})。
模型:/ {model_name} / {model_stage}
為選項的完整列表加載MLflow模型,明白了MLflow文檔中引用的構件。
對於Python MLflow模型,使用一個額外的選項mlflow.pyfunc.load_model ()作為一個通用的Python函數加載模型。您可以使用下麵的代碼片段來加載模型和數據分。
mlflow.pyfunc.load_model ()
模型=mlflow。pyfunc。load_model(model_path)模型。預測(model_input)
作為一種替代方法,您可以導出模型作為一個Apache火花UDF用於火花集群上得分,要麼作為批處理作業或實時火花流的工作。
#負載作為一個火花DataFrame輸入數據表input_data=火花。表(input_table_name)model_udf=mlflow。pyfunc。spark_udf(model_path)df=input_data。withColumn(“預測”,model_udf())
精確加載模型,您應該確保模型依賴加載到筆記本電腦環境中使用正確的版本。磚運行時的10.5毫升以上,MLflow警告說如果不匹配檢測當前環境和模型之間的依賴關係。
額外的功能來簡化恢複模型依賴性磚中包含運行時11.0毫升以上。在磚運行時的11.0毫升以上,pyfunc味道模型,你可以叫mlflow.pyfunc.get_model_dependencies檢索和下載模型依賴性。這個函數返回一個路徑依賴文件,你可以安裝使用%皮普安裝<文件路徑>。當你加載模型作為PySpark UDF,指定env_manager = " virtualenv "在mlflow.pyfunc.spark_udf調用。這個恢複模型依賴的PySpark UDF和不影響外部環境。
pyfunc
mlflow.pyfunc.get_model_dependencies
%皮普安裝<文件路徑>
env_manager = " virtualenv "
mlflow.pyfunc.spark_udf
您還可以使用該功能在磚運行時的10.5或低於手動安裝MLflow 1.25.0或以上版本:
%皮普安裝“mlflow > = 1.25.0”
額外的信息關於如何日誌模型依賴性(Python和非Python)和工件,明白了日誌模型依賴。
學習如何日誌模型依賴性和自定義構件模型為:
部署模型的依賴性
_
當你登錄一個模型在磚筆記本,磚自動生成的代碼片段,您可以複製並使用加載和運行模式。查看這些代碼片段:
導航到屏幕運行的運行生成的模型。(見查看筆記本的實驗如何顯示屏幕運行。)
滾動到工件部分。
點擊記錄模型的名稱。這會打開一個麵板右側顯示代碼可以使用加載記錄模型和火花或熊貓DataFrames作出預測。
日誌記錄模型的例子,請參閱示例跟蹤機器學習培訓運行示例。對加載記錄推理模型的一個例子,看下麵的例子。
你可以注冊模型MLflow模型注冊集中式存儲模型,提供了一組UI和api管理MLflow模型的完整生命周期。通用信息模型注冊表,看看在磚MLflow模型注冊表。說明如何使用模型注冊中心來管理模型在磚,明白了生命周期管理模型。
注冊一個模型使用API,使用mlflow.register_model(“運行:/ {run_id} / {model-path}”,“{registered-model-name}”)。
mlflow.register_model(“運行:/ {run_id} / {model-path}”,“{registered-model-name}”)
在本地保存一個模型,使用mlflow。<模型類型> .save_model(模型,modelpath)。modelpath必須是一個DBFS路徑。例如,如果您使用一個DBFS位置dbfs: / my_project_models來存儲你的項目工作,你必須使用模型的路徑/ dbfs my_project_models:
mlflow。<模型類型> .save_model(模型,modelpath)
dbfs: / my_project_models
/ dbfs my_project_models
modelpath=“- / dbfs / my_project_models /模型% f- - - - - -% f”%(α,l1_ratio)mlflow。sklearn。save_model(lr,modelpath)
對於MLlib模型,使用毫升管道。
你可以下載記錄模型構件(如模型文件、陰謀和度量)注冊模型與不同的api。
Python API例子:
從mlflow.store.artifact.models_artifact_repo進口ModelsArtifactRepositorymodel_uri=MlflowClient。get_model_version_download_uri(model_name,model_version)ModelsArtifactRepository(model_uri)。download_artifacts(artifact_path=”“)
Java API例子:
MlflowClientmlflowClient=新MlflowClient();/ /得到注冊模型的模型URI版本。字符串modelURI=mlflowClient。getModelVersionDownloadUri(modelName,modelVersion);/ /或者直接下載模型工件。文件modelFile=mlflowClient。downloadModelVersion(modelName,modelVersion);
CLI命令例子:
mlflow工件下載- - -工件- - - - - -uri模型:/ <的名字> / <版本|階段>
您可以部署一個模型使用第三方服務框架MLflow內置的部署工具。