

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

# 在 SageMaker AI 托管服务上部署模型的最佳实践
<a name="deployment-best-practices"></a>

使用 SageMaker AI 托管服务托管模型时，请考虑以下几点：
+ 通常，客户端应用程序会向 SageMaker AI HTTPS 终端节点发送请求，以从已部署的模型中获取推论。您也可以在测试期间从 Jupyter 笔记本向此端点发送请求。
+ 您可以将使用 SageMaker AI 训练的模型部署到自己的部署目标。为此，您需要知道模型训练生成的模型构件的特定于算法的格式。有关输出格式的更多信息，请参阅[用于训练的常见数据格式](cdf-training.md)中与要使用的算法对应的章节。
+ 您可以将模型的多个变体部署到同一 SageMaker AI HTTPS 终端节点。这对于测试生产环境中模型的变体非常有用。例如，假设您已在生产环境中部署了模型。您想通过将少量流量（比如 5%）定向到新模型来测试模型的变体。为此，请创建描述模型的两个变体的端点配置。您在向 `ProductionVariant` 发送的请求中指定 `CreateEndPointConfig`。有关更多信息，请参阅 [https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_ProductionVariant.html](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_ProductionVariant.html)。
+ 您可以将 `ProductionVariant` 配置为使用 Application Auto Scaling。有关配置自动扩展的信息，请参阅[自动缩放 Amazon SageMaker 人工智能模型](endpoint-auto-scaling.md)。
+ 您可以修改端点，而不用让已部署到生产环境中的模型停止服务。例如，您可以添加新的模型变体，更新现有模型变体的 ML 计算实例配置，或者更改模型变体之间的流量分配。要修改终端节点，您需要提供新的端点配置。 SageMaker AI 无需停机即可实现更改。有关更多信息，请参阅 [https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_UpdateEndpoint.html](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_UpdateEndpoint.html) 和 [https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html)。
+ 在部署模型后更改或删除模型构件或者更改推理代码会产生不可预测的结果。如果您需要更改或删除模型构件或者更改推理代码，则通过提供新的端点配置来修改端点。一旦提供新的端点配置，您便可更改或删除对应于旧端点配置的模型构件。
+ 如果您希望在整个数据集上获取推理，请考虑使用批量转换作为托管服务的替代。有关信息，请参阅 [使用 Amazon A SageMaker I 进行批量转换以进行推理](batch-transform.md) 

## 跨可用区部署多个实例
<a name="deployment-best-practices-availability-zones"></a>

**在托管模型时创建强大的端点。** SageMaker AI 终端节点可以帮助保护您的应用程序免受[可用区](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/using-regions-availability-zones.html)中断和实例故障的影响。如果发生中断或实例出现故障， SageMaker AI 会自动尝试在可用区之间分配您的实例。因此，我们强烈建议您为每个生产端点部署多个实例。

如果您使用的是 [Amazon 虚拟私有云 (VPC)](https://docs.amazonaws.cn/vpc/latest/userguide/what-is-amazon-vpc.html)，请至少使用两个 [https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_VpcConfig.html#SageMaker-Type-VpcConfig-Subnets                     .html](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_VpcConfig.html#SageMaker-Type-VpcConfig-Subnets                     .html) 配置 VPC，每个子网位于不同的可用区中。如果发生中断或实例出现故障，Amazon SageMaker AI 会自动尝试跨可用区分配您的实例。

一般而言，要实现更可靠的性能，请在不同的可用区中使用更多的小[实例类型](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/instance-types.html)来托管您的端点。

**为高可用性部署推理组件。**除了上述关于实例数量的建议外，要实现 99.95% 的可用性，还需确保推理组件配置为两个以上的副本。此外，在托管自动扩缩策略中，将最小实例数也设置为两个。