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

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

在注册表中部署模型

注册模型版本并批准部署后,将其部署到 SageMaker 终端节点以进行实时推断。

创建 MLOPS 项目并选择包含模型部署的 MLOPS 项目模板时,模型注册表中已批准的模型版本将自动部署到生产环境中。有关使用 SageMaker lops 项目的信息,请参阅利用 SageMaker 项目实现 MLOP 自动化.

在注册表中部署模型(SageMaker SDK)

使用模型版本部署Amazon SageMaker Python 开发工具包

from sagemaker import ModelPackage model_package_arn = 'arn:aws:sagemaker:us-east-2:12345678901:model-package/modeltest/1' model = ModelPackage(role=role, model_package_arn=model_package_arn, sagemaker_session=sagemaker_session) model.deploy(initial_instance_count=1, instance_type='ml.m5.xlarge')

在注册表中部署模型 (Bto3)

使用模型版本部署Amazon SDK for Python (Boto3),请完成以下步骤:

  1. 从模型版本创建模型对象,方法是调用创建模型方法。将模型版本的 Amazon 资源名称 (ARN) 作为Containers作为模型对象。

    以下代码段假定您已经创建了 SageMaker Bto3 客户端sm_client,并且您已经创建了一个带有 ARN 的模型版本,该 ARN 存储在名为model_version_arn.

    model_name = 'DEMO-modelregistry-model-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) print("Model name : {}".format(model_name)) container_list = [{ModelPackageName: model_version_arn}] create_model_response = sm_client.create_model( ModelName = model_name, ExecutionRoleArn = role, Containers = container_list ) print("Model arn : {}".format(create_model_response["ModelArn"]))
  2. 通过调用终端节点配置create_endpoint_config. 终端节点配置指定要用于终端节点的 Amazon EC2 实例的数量和类型。

    endpoint_config_name = 'DEMO-modelregistry-EndpointConfig-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) print(endpoint_config_name) create_endpoint_config_response = sm_client.create_endpoint_config( EndpointConfigName = endpoint_config_name, ProductionVariants=[{ 'InstanceType':'ml.m4.xlarge', 'InitialVariantWeight':1, 'InitialInstanceCount':1, 'ModelName':model_name, 'VariantName':'AllTraffic'}])
  3. 通过调用终端节点create_endpoint.

    endpoint_name = 'DEMO-modelregistry-endpoint-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) print("EndpointName={}".format(endpoint_name)) create_endpoint_response = sm_client.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name) print(create_endpoint_response['EndpointArn'])