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

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

创建模型

要创建模型,您必须提供模型构件和容器映像的位置。您也可以使用 “模型注册表” 中的SageMaker 模型版本。以下各节中的示例向您展示了如何使用CreateModelAPI、模型注册表和 Amazon SageMaker 控制台创建模型。

创建模型(使用模型注册表)

模型注册表是一项功能 SageMaker ,可帮助您对模型的版本进行编目和管理,以便在机器学习管道中使用。要将模型注册表与无服务器推理一起使用,必须先在模型注册表模型组中注册模型版本。要了解如何在模型注册表中注册模型,请按照创建模型组注册模型版本中的步骤操作。

以下示例要求您拥有已注册模型版本的ARN,并使用 for Python (Boto3) 调用。Amazon SDK CreateModelAPI对于无服务器推理,目前只有 Amazon SDK Python 版 (Boto3) 支持模型注册表。在示例中,请指定以下值:

  • 对于 model_name,输入模型的名称。

  • 对于sagemaker_role,您可以使用本完成先决条件节步骤 4 中的默认 SageMaker创建 SageMaker IAM角色或自定义角色。

  • 对于ModelPackageName,ARN为您的模型版本指定,该版本必须注册到 “模型注册表” 中的模型组。

#Setup import boto3 import sagemaker region = boto3.Session().region_name client = boto3.client("sagemaker", region_name=region) #Role to give SageMaker permission to access Amazon services. sagemaker_role = sagemaker.get_execution_role() #Specify a name for the model model_name = "<name-for-model>" #Specify a Model Registry model version container_list = [ { "ModelPackageName": <model-version-arn> } ] #Create the model response = client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, container_list )

创建模型(使用API)

以下示例使用 for Python (Boto3) 调用。Amazon SDK CreateModelAPI指定以下值:

  • 因为sagemaker_role,您可以使用本完成先决条件节步骤 4 中的默认 SageMaker创建 SageMaker IAM角色或自定义角色。

  • 对于model_url,请为您的模型指定 Amazon S3 URI。

  • 对于container,通过容器的 Amazon ECR 路径检索您要使用的容器。此示例使用 SageMaker提供的XGBoost容器。如果您尚未选择 SageMaker容器或自带容器,请参阅完成先决条件本节的第 6 步了解更多信息。

  • 对于 model_name,输入模型的名称。

#Setup import boto3 import sagemaker region = boto3.Session().region_name client = boto3.client("sagemaker", region_name=region) #Role to give SageMaker permission to access Amazon services. sagemaker_role = sagemaker.get_execution_role() #Get model from S3 model_url = "s3://amzn-s3-demo-bucket/models/model.tar.gz" #Get container image (prebuilt example) from sagemaker import image_uris container = image_uris.retrieve("xgboost", region, "0.90-1") #Create model model_name = "<name-for-model>" response = client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, Containers = [{ "Image": container, "Mode": "SingleModel", "ModelDataUrl": model_url, }] )

创建模型(使用控制台)

  1. 登录 Amazon SageMaker 控制台

  2. 在导航选项卡中,选择推理

  3. 接下来,选择模型

  4. 选择创建模型

  5. 模型名称中,输入您的账户所独有的模型名称,然后 Amazon Web Services 区域。

  6. 对于IAM角色,请选择一个您已经创建的IAM角色(请参阅完成先决条件),或者 SageMaker 允许您创建一个角色。

  7. 容器定义 1 中,对于容器输入选项,选择提供模型构件和输入位置

  8. 对于提供模型构件和推理映像选项,选择使用单个模型

  9. 对于推理代码图像的位置,请输入容器的 Amazon ECR 路径。该图像必须是 SageMaker提供的第一方图片(例如XGBoost) TensorFlow,或者是驻留在您创建终端节点的同一账户下的 Amazon ECR 存储库中的图片。如果没有容器,请返回完成先决条件部分的步骤 6 以了解更多信息。

  10. 对于模型构件的位置,请输入您的机器学习模型的 Amazon S3 URI。例如,s3://amzn-s3-demo-bucket/models/model.tar.gz

  11. (可选)对于标签,添加键值对来为模型创建元数据。

  12. 选择创建模型