实时预测 - 亚马逊 SageMaker AI

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

实时预测

当您需要生成预测时,实时预测非常有用 on-the-fly,例如对于需要即时响应的应用程序或对单个数据点进行预测时。

通过将 AutoML 模型作为实时端点部署,您可以按需生成预测,并最大限度地减少接收新数据与获得预测之间的延迟。这使得实时预测非常适合需要即时、个性化或事件驱动预测功能的应用。

对于实时预测,数据集应该是输入数据集的子集。实时端点的输入数据大小约为 6 MB,响应超时限制为 60 秒。我们建议一次引入一个或几个项目。

您可以使用 SageMaker APIs 检索 AutoML 作业的最佳候选任务,然后使用该候选任务创建 A SageMaker I 终端节点。

或者,当您创建 Autopilot 实验时,也可选择自动部署选项。有关设置模型自动部署的信息,请参阅如何启用自动部署

要使用您的最佳候选模型创建 A SageMaker I 端点,请执行以下操作:
  1. 读取 AutoML 作业的详细信息。

    以下 AWS CLI 命令示例使用 DescribeAutoMLJobV2 API 获取 AutoML 作业的详细信息,包括有关最佳候选模型的信息。

    aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name job-name --region region
  2. 从中提取容器定义InferenceContainers以获得最佳候选模型。

    容器定义是容器化环境,用于托管经过训练的 SageMaker AI 模型以进行预测。

    BEST_CANDIDATE=$(aws sagemaker describe-auto-ml-job-v2 \ --auto-ml-job-name job-name --region region \ --query 'BestCandidate.InferenceContainers[0]' \ --output json

    该命令提取最佳候选模型的容器定义,并将其存储在 BEST_CANDIDATE 变量中。

  3. 使用最佳候选容器定义创建 SageMaker AI 模型。

    使用前面步骤中的容器定义通过 CreateModelAP SageMaker I 创建 AI 模型。

    aws sagemaker create-model \ --model-name 'your-candidate-name>' \ --primary-container "$BEST_CANDIDATE" --execution-role-arn 'execution-role-arn>' \ --region 'region>

    --execution-role-arn参数指定 A SageMaker I 在使用模型进行推理时扮演的 IAM 角色。有关此角色所需权限的详细信息,请参阅 CreateModel API:执行角色权限

  4. 使用模型创建 A SageMaker I 端点配置。

    以下 AWS CLI 命令使用 CreateEndpointConfigAPI 创建终端节点配置。

    aws sagemaker create-endpoint-config \ --production-variants file://production-variants.json \ --region 'region'

    其中 production-variants.json 文件包含模型配置,包括模型名称和实例类型。

    注意

    我们建议使用 m5.12xlarge 实例进行实时预测。

    [ { "VariantName": "variant-name", "ModelName": "model-name", "InitialInstanceCount": 1, "InstanceType": "m5.12xlarge" } ] }
  5. 使用终端节点配置创建 SageMaker AI 终端节点。

    以下 AWS CLI 示例使用 CreateEndpointAPI 创建终端节点。

    aws sagemaker create-endpoint \ --endpoint-name 'endpoint-name>' \ --endpoint-config-name 'endpoint-config-name' \ --region 'region'

    使用 DescribeEndpointAPI 检查实时推理端点部署的进度。以以下 AWS CLI 命令为例。

    aws sagemaker describe-endpoint \ --endpoint-name 'endpoint-name' \ --region 'region'

    EndpointStatus 更改为 InService 后,端点即可用于实时推理。

  6. 调用 A SageMaker I 端点进行预测。
    aws sagemaker invoke-endpoint \ --endpoint-name 'endpoint-name' \ --region 'region' \ --body file://input-data-in-bytes.json \ --content-type 'application/json' outfile

    其中 input-data-in-bytes.json 文件包含预测的输入数据。