

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

# 实时预测
<a name="timeseries-forecasting-realtime"></a>

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

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

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

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

或者，当您创建 Autopilot 实验时，也可选择自动部署选项。有关设置模型自动部署的信息，请参阅[如何启用自动部署](autopilot-create-experiment-timeseries-forecasting.md#timeseries-forecasting-auto-model-deployment)。

**要使用您的最佳候选模型创建 A SageMaker I 端点，请执行以下操作：**

1. 

**读取 AutoML 作业的详细信息。**

   以下 AWS CLI 命令示例使用 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) API 获取 AutoML 作业的详细信息，包括有关最佳候选模型的信息。

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name {{job-name}} --region {{region}}
   ```

1. 

**从中提取容器定义[InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-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` 变量中。

1. 

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

   使用前面步骤中的容器定义通过 [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)AP 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：执行角色权限](https://docs.aws.amazon.com/)。

1. 

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

   以下 AWS CLI 命令使用 [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)API 创建终端节点配置。

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

   其中 `production-variants.json` 文件包含模型配置，包括模型名称和实例类型。
**注意**  
我们建议使用 [m5.12xlarge](https://aws.amazon.com/ec2/instance-types/m5/) 实例进行实时预测。

   ```
   [
       {
         "VariantName": "{{variant-name}}",
         "ModelName": "{{model-name}}",
         "InitialInstanceCount": {{1}},
         "InstanceType": "{{m5.12xlarge}}"
       }
     ]
   }
   ```

1. 

**使用终端节点配置创建 SageMaker AI 终端节点。**

   以下 AWS CLI 示例使用 [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html)API 创建终端节点。

   ```
   aws sagemaker create-endpoint \
               --endpoint-name '{{endpoint-name>}}' \
               --endpoint-config-name '{{endpoint-config-name}}' \
               --region '{{region}}'
   ```

   使用 [DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html)API 检查实时推理端点部署的进度。以以下 AWS CLI 命令为例。

   ```
   aws sagemaker describe-endpoint \
               --endpoint-name '{{endpoint-name}}' \
               --region '{{region}}'
   ```

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

1. 

**调用 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` 文件包含预测的输入数据。