使用部署 mlFlow 模型 ModelBuilder - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用部署 mlFlow 模型 ModelBuilder

您可以使用 Amazon 模型生成器将 mlFlow SageMaker 模型部署到 SageMaker 终端节点。有关 Amazon SageMaker 模型生成器的更多信息,请参阅使用在 Amazon SageMaker 中创建模型 ModelBuilder

ModelBuilder是一个 Python 类,它采用框架模型或用户指定的推理规范并将其转换为可部署模型。有关该ModelBuilder课程的更多详细信息,请参阅ModelBuilder

要使用部署 mlFlow 模型ModelBuilder,请在属性中提供指向 mlFlow 工件的model_metadata["MLFLOW_MODEL_PATH"]路径。请继续阅读以了解有关有效模型路径输入格式的更多信息:

注意

如果您以 mlFlow 运行 ID 或 mlFlow 模型注册路径的形式提供模型构件路径,则还必须通过该属性指定跟踪服务器 ARN。model_metadata["MLFLOW_TRACKING_ARN"]

在 ARN 中对需要 ARN 的路径进行建模 model_metadata

以下模型路径确实要求您在中指定 ARN 以model_metadata进行部署:

在中对不需要 ARN 的路径进行建模 model_metadata

以下模型路径不需要您在中指定 ARN 以model_metadata进行部署:

  • 本地模型路径:/Users/me/path/to/local/model

  • 亚马逊 S3 模型路径:s3://my-bucket/path/to/model

  • 模型包装 ARN:arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name

有关 mlFlow 模型部署如何与亚马逊配合使用的更多信息 SageMaker,请参阅 mlFlow 文档 SageMaker中的将 mlFlow 模型部署到亚马逊

如果使用 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。

重要

必须使用 Pyth SageMaker on 软件开发工具包 2.224.0 或更高版本才能使用。ModelBuilder

注意

使用以下代码示例作为参考。有关向您展示如何部署注册的 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 教程