本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用部署 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.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 教程。