先决条件 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

先决条件

在使用自动扩缩之前,您必须已创建 Amazon SageMaker 模型部署。部署的模型称为生产变体。这包括有关模型以及用于托管此模型的资源的信息。

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

要为模型启用自动扩缩,您可以使用控制台、Amazon CLI 或 Application Auto Scaling API。建议您尝试使用控制台配置模型自动扩缩,以便熟悉这些要求并测试您的第一个自动扩缩配置。当使用 Amazon CLI 或 Application Auto Scaling 时,其流程是注册模型,定义扩展策略,然后应用。以下概述详细介绍了先决条件以及与 Application Auto Scaling 结合使用组件。

自动扩缩策略概览

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

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

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

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

扩展策略包含以下组件:

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

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

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

  • 必需权限 – 执行自动扩缩操作所需的权限。

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

自动扩缩的目标指标

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

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

最小和最大容量

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

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

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

重要

在没有流量的情况下横向缩减:如果变体的流量变为零,SageMaker 会自动横向缩减到指定的最小实例数。在这种情况下,SageMaker 会发出值为零的指标。最小实例数必须为 1 或更高。

冷却时间

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

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

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

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

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

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

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

权限

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 服务相关角色;系统自动为您创建此角色。服务相关角色是一种独特类型的 IAM 角色,它与Amazon服务直接相关。服务相关角色是由服务预定义的,具有服务代表您调用其他 Amazon 服务所需的所有权限。有关更多信息,请参阅服务相关角色