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

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

先决条件

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

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

要为模型激活弹性伸缩,您可以使用 Conflication Auto Scaling API。Amazon CLI建议尝试熟悉需求并测试您的第一个 Auto Scaling 配置。使用控制台配置模型auto 扩展使用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 根据预定义或自定义指标应用扩展策略。

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

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

扩展策略包含以下组件:

  • 目标指标 — 在完成一个横向缩减和横向扩展 SageMaker 活动后开始另一个横向扩展活动后开始前的时长(Amazon CloudWatch )。

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

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

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

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

弹性auto 缩

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

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

最小和最大容量

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

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

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

重要

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

冷却时间

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

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

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

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

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

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

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

权限

ISagemakerFullAccessPolicy AM 策略拥有执行auto 扩展所需的所有 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": "*" }

服务相关角色

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