在 SageMaker 托管服务上部署模型的最佳实践 - Amazon SageMaker

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

在 SageMaker 托管服务上部署模型的最佳实践

使用托管服务 SageMaker 托管模型时,请考虑以下几点:

  • 通常,客户端应用程序会向 SageMaker HTTPS 端点发送请求,以从已部署的模型中获取推论。您也可以在测试期间从 Jupyter 笔记本向此端点发送请求。

  • 您可以将经过训练的模型部署 SageMaker 到自己的部署目标。为此,您需要知道模型训练生成的模型构件的特定于算法的格式。有关输出格式的更多信息,请参阅用于训练的常见数据格式中与要使用的算法对应的章节。

  • 您可以将模型的多个变体部署到同一 SageMaker HTTPS 端点。这对于测试生产环境中模型的变体非常有用。例如,假设您已在生产环境中部署了模型。您想通过将少量流量(比如 5%)定向到新模型来测试模型的变体。为此,请创建描述模型的两个变体的端点配置。您在向 ProductionVariant 发送的请求中指定 CreateEndPointConfig。有关更多信息,请参阅 ProductionVariant

  • 您可以将 ProductionVariant 配置为使用 Application Auto Scaling。有关配置自动扩展的信息,请参阅自动缩放 Amazon SageMaker 模型

  • 您可以修改端点,而不用让已部署到生产环境中的模型停止服务。例如,您可以添加新的模型变体,更新现有模型变体的 ML 计算实例配置,或者更改模型变体之间的流量分配。要修改终端节点,您需要提供新的终端节点配置。 SageMaker 无需停机即可实施更改。有关更多信息,请参阅、UpdateEndpointUpdateEndpointWeightsAndCapacities

  • 在部署模型后更改或删除模型构件或者更改推理代码会产生不可预测的结果。如果您需要更改或删除模型构件或者更改推理代码,则通过提供新的端点配置来修改端点。一旦提供新的端点配置,您便可更改或删除对应于旧端点配置的模型构件。

  • 如果您希望在整个数据集上获取推理,请考虑使用批量转换作为托管服务的替代。有关信息,请参阅。使用批量转换

跨可用区部署多个实例

在托管模型时创建强大的端点。 SageMaker端点可以帮助保护您的应用程序免受可用区中断和实例故障的影响。如果发生中断或实例出现故障,则 SageMaker 会自动尝试在可用区之间分配您的实例。因此,我们强烈建议您为每个生产终端节点部署多个实例。

如果您使用的是 Amazon 虚拟私有云 (VPC),请至少使用两个 Subnets 配置 VPC,每个子网位于不同的可用区中。如果发生中断或实例出现故障,Amazon SageMaker 会自动尝试跨可用区分配您的实例。

一般而言,要实现更可靠的性能,请在不同的可用区中使用更多的小实例类型来托管您的端点。

部署推理组件以实现高可用性。除了上述实例编号建议外,为了实现 99.95% 的可用性,请确保您的推理组件配置为具有两个以上的副本。此外,在您的托管 auto Scaling 策略中,也要将最小实例数设置为两个。