Prerequisites - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Prerequisites

必须先创建 Amazon SageMaker 模型部署,然后才能使用自动扩展。部署的模型称为生产变体。这包括有关模型以及用于托管此模型的资源的信息。

有关部署模型终端节点的更多信息,请参阅将模型部署到 SageMaker 托管服务

要为模型启用自动扩展,您可以使用控制台、AWS CLI 或 Application Auto Scaling API。建议您尝试使用控制台配置模型自动扩展以熟悉这些要求并测试您的第一个自动扩展配置。当使用 AWS CLI 或 Application Auto Scaling 时,流程要注册模型,定义扩展策略,然后应用它。以下概述提供有关与自动扩展结合使用的先决条件和组件的更多信息。

自动扩展策略概述

要使用自动缩放,您需要定义并应用使用您分配的 Amazon CloudWatch 指标和目标值的扩展策略。自动扩展使用该策略增加或减少实例数以响应实际工作负载。

您可以使用 AWS 管理控制台根据预定义的指标应用扩展策略。在枚举中定义了预定义指标,因此您可以按名称在代码中指定它或在 AWS 管理控制台 中使用它。或者,您也可以使用 AWS Command Line Interface (AWS CLI) 或 Application Auto Scaling API 根据预定义或自定义指标应用扩展策略。

支持的扩展策略有两种类型:目标跟踪扩展和步骤扩展。建议对自动扩展配置使用目标跟踪扩展策略。您需要指定预定义或自定义的指标并为指标指定目标值,以配置目标跟踪扩展策略。有关使用 Application Auto Scaling 目标跟踪扩展策略的更多信息,请参阅目标跟踪扩展策略

当您需要高级配置时,您可以使用步进扩展,如指定要在什么条件下部署多少个实例。否则,首选使用目标跟踪扩展,因为它将完全自动执行。有关使用 Application Auto Scaling 步进扩展策略的更多信息,请参阅步进扩展策略

扩展策略包含以下组件:

  • 目标指标 — SageMaker 自动扩展用于确定何时扩展以及扩展程度的 Amazon CloudWatch 指标。

  • 最小和最大容量 — 用于扩展的最小和最大实例数。

  • 冷却时间 - 在完成一个缩减或扩展活动后开始另一个扩展活动之前等待的时间(秒)。

  • 必需权限 - 执行自动扩展操作所需的权限。

  • 服务相关角色 — 与特定 AWS 服务相关的 AWS Identity and Access Management (IAM)。服务相关角色包含服务代表您调用其他 AWS 服务所需的一切权限。SageMaker 自动扩展会自动为您生成此角色 AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint

用于自动扩展的目标指标

Amazon CloudWatch 警报触发扩展策略,该策略计算如何根据您设置的指标和目标值调整扩展。扩展策略根据需要添加或删除终端节点实例,将指标保持在指定的目标值或接近指定的目标值。此外,扩展策略还可在工作负载更改时根据指标的波动进行调整。扩展策略最大限度地减少了模型的可用实例数的快速波动。

例如,使用具有目标值为 70 的预定义 InvocationsPerInstance 指标的扩展策略可以将 InvocationsPerInstance 保持在或接近 70。

最小和最大容量

您可以为模型指定最大终端节点实例数。最大值必须等于或大于为最小终端节点实例数指定的值。SageMaker 自动扩展不会对此值强制实施限制。

您还必须为模型指定最小实例数。此值必须至少为 1,并且等于或小于为最大模型实例数指定的值。

要确定典型流量所需的最小和最大实例数,请使用模型的预期通信速率测试自动扩展配置。

重要

没有流量时,不会进行缩减:如果变体的流量变为零,则 SageMaker 自动扩展不会缩减。这是因为 SageMaker 不发出值为零的指标。

冷却时间

通过添加冷却时间来优化扩展策略的响应能力。冷却时间 控制模型缩减(通过减少实例)或扩大(通过增加实例)的时间。具体方法为阻止后续缩减或扩展请求,直至冷却时间到期。这会减慢缩减请求的实例删除,并减慢扩展请求的实例创建。冷却时间有助于确保扩展策略在上一个扩展活动生效之前不会启动或终止其他实例。在自动扩展使用扩展策略动态扩展后,它会等待冷却时间完成,然后再继续扩展活动。

您可以在自动扩展策略中配置冷却时间。您可以指定以下冷却时间:

  • 缩减活动会减少实例的数量。缩减冷却时间指定在完成一个缩减活动后开始另一个缩减活动之前等待的时间 (秒)。

  • 扩展活动会增加实例的数量。扩展冷却时间指定在完成一个扩展活动后开始另一个扩展活动之前等待的时间 (秒)。

如果您不指定缩减或扩展冷却时间,则自动缩放会使用默认值,即每个 300 秒钟。

如果在您测试自动扩展配置时添加或删除实例太快,请考虑增大此值。如果去往模型的流量有很多峰值,或者您为变体定义了多个自动扩展策略,则可以看到此行为。

如果无法快速添加实例以处理增加的流量,请考虑减小此值。

Permissions

SagemakerFullAccessPolicy IAM 策略具有执行自动扩展所需的所有 IAM 权限。有关 SageMaker IAM 权限的更多信息,请参阅SageMaker 角色

如果您使用的是自定义权限策略,则必须包含以下权限:

{ "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:UpdateEndpointWeightsAndCapacities" ], "Resource": "*" } { "Action": [ "application-autoscaling:*" ], "Effect": "Allow", "Resource": "*" } { "Action": "iam:CreateServiceLinkedRole", "Effect": "Allow", "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint", "Condition": { "StringLike": { "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com" } } } { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms" ], "Resource": "*" }

服务相关角色

自动扩展使用 AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint 服务相关角色;会自动为您创建此角色。服务相关角色是一种与 AWS 服务直接关联的独特类型的 IAM 角色。服务相关角色由服务预定义,具有服务代表您调用其他 AWS 服务所需的所有权限。有关更多信息,请参阅服务相关角色