本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 部署 MLflow 模型 ModelBuilder
您可以使用 Amazon SageMaker AI Model Builder 將 MLflow 模型部署至 SageMaker AI 端點。 Amazon SageMaker 如需 Amazon SageMaker AI Model Builder 的詳細資訊,請參閱使用 ModelBuilder 在 Amazon SageMaker AI 中建立模型 ModelBuilder。
ModelBuilder
是一種 Python 類別,採用架構模型或使用者指定的推論規格,並將其轉換為可部署模型。如需 ModelBuilder
類別的詳細資訊,請參閱 ModelBuilder
若要使用 部署 MLflow 模型ModelBuilder
,請在 model_metadata["MLFLOW_MODEL_PATH"]
屬性中提供 MLflow 成品的路徑。如需有效模型路徑輸入格式的詳細資訊,請繼續閱讀:
注意
如果您以 MLflow 執行 ID 或 MLflow 模型登錄檔路徑的形式提供模型成品路徑,則您還必須透過 model_metadata["MLFLOW_TRACKING_ARN"]
屬性指定追蹤伺服器 ARN。
在 中需要 ARN 的模型路徑 model_metadata
下列模型路徑確實需要您在 部署model_metadata
的 中指定 ARN:
中不需要 ARN 的模型路徑 model_metadata
下列模型路徑不需要您在 部署model_metadata
的 中指定 ARN:
本機模型路徑:
/Users/me/path/to/local/model
Amazon S3 模型路徑:
s3://amzn-s3-demo-bucket/path/to/model
模型套件 ARN:
arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name
如需 MLflow 模型部署如何與 Amazon SageMaker AI 搭配使用的詳細資訊,請參閱 MLflow 文件中的將 MLflow 模型部署至 Amazon SageMaker AI
如果使用 Amazon S3 路徑,您可以使用下列命令找到已註冊模型的路徑:
registered_model = client.get_registered_model(name=
'AutoRegisteredModel'
) source_path = registered_model.latest_versions[0].source
以下範例概述如何使用 ModelBuilder
和 MLflow 模型登錄路徑部署 MLflow 模型。由於此範例以 MLflow 模型登錄檔路徑的形式提供模型成品路徑,因此對 的呼叫ModelBuilder
也必須透過 model_metadata["MLFLOW_TRACKING_ARN"]
屬性指定追蹤伺服器 ARN。
重要
您必須使用 2.224.0ModelBuilder
。
注意
使用下列程式碼範例做為參考。如需示範如何部署已註冊 MLflow 模型的end-to-end範例,請參閱 使用範例 Jupyter 筆記本的 MLflow 教學課程。
from sagemaker.serve import ModelBuilder from sagemaker.serve.mode.function_pointers import Mode from sagemaker.serve import SchemaBuilder my_schema = SchemaBuilder( sample_input=
sample_input
, sample_output=sample_output
) model_builder = ModelBuilder( mode=Mode.SAGEMAKER_ENDPOINT, schema_builder=my_schema, role_arn="Your-service-role-ARN
", model_metadata={ # both model path and tracking server ARN are required if you use an mlflow run ID or mlflow model registry path as input "MLFLOW_MODEL_PATH": "models:/sklearn-model/1
" "MLFLOW_TRACKING_ARN": "arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name
" } ) model = model_builder.build() predictor = model.deploy( initial_instance_count=1
, instance_type="ml.c6i.xlarge
" )
若要維持使用 部署之 MLflow 模型的譜系追蹤ModelBuilder
,您必須具有下列 IAM 許可:
sagemaker:CreateArtifact
sagemaker:ListArtifacts
sagemaker:AddAssociation
sagemaker:DescribeMLflowTrackingServer
重要
線路追蹤是選用的。部署成功,沒有與譜系追蹤相關的許可。如果您沒有設定許可,則在呼叫 時,您會看到線路追蹤許可錯誤model.deploy()
。不過,端點部署仍然成功,您可以直接與模型端點互動。如果已設定上述許可,會自動建立和存放譜系追蹤資訊。
如需詳細資訊和end-to-end範例,請參閱使用範例 Jupyter 筆記本的 MLflow 教學課程。