本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 ModelBuilder 部署 MLflow 模型
您可以使用 Amazon SageMaker AI Model Builder 将 MLflow 模型部署到 SageMaker AI 端点。有关 Amazon SageMaker AI Model Builder 的更多信息,请参阅使用 ModelBuilder 在 Amazon SageMaker AI 中创建模型。
ModelBuilder 是一个 Python 类,它接收框架模型或用户指定的推理规范,并将其转换为可部署的模型。有关 ModelBuilder 类的更多详细信息,请参阅 ModelBuilder
要使用 ModelBuilder 部署 MLflow 模型,请在 model_metadata["MLFLOW_MODEL_PATH"] 属性中提供 MLflow 构件的路径。请继续阅读有关有效模型路径输入格式的更多信息:
注意
如果您以 MLflow 运行 ID 或 MLflow 模型注册表路径的形式提供模型构件路径,则还必须通过 model_metadata["MLFLOW_TRACKING_ARN"] 属性指定跟踪服务器 ARN。
需要 model_metadata 中 ARN 的模型路径
以下模型路径要求在 model_metadata 中指定 ARN 以进行部署:
在 model_metadata 中不需要 ARN 的模型路径
以下模型路径无需在 model_metadata 中指定 ARN 以进行部署:
本地模型路径:
/Users/me/path/to/local/modelAmazon 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 模型的端到端示例,请参阅 使用 Jupyter Notebook 示例的 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" )
要维护使用 ModelBuilder 部署的 MLflow 模型的任务流水线追踪,您必须拥有以下 IAM 权限:
sagemaker:CreateArtifactsagemaker:ListArtifactssagemaker:AddAssociationsagemaker:DescribeMLflowTrackingServer
重要
任务流水线追踪为可选项。如果没有与任务流水线追踪相关的权限,则部署成功。如果未配置权限,则在调用 model.deploy() 时会出现任务流水线追踪权限错误。不过,端点部署仍会成功,您可以直接与模型端点进行交互。如果配置了上述权限,就会自动创建和存储任务流水线追踪信息。
更多信息和端到端示例,请参阅 使用 Jupyter Notebook 示例的 MLflow 教程。