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

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

定义扩展策略

在向模型添加扩展策略之前,请将策略配置另存为文本文件中的一个JSON块。在调用 Amazon Command Line Interface (Amazon CLI) 或 Application Auto Scal API ing 时,您可以使用该文本文件。您可以通过选择适当的 CloudWatch 指标来优化扩展。但是,在生产环境中使用自定义指标之前,必须使用自定义指标测试 auto Scaling。

本节向您展示目标跟踪扩展策略的策略配置示例。

指定预定义的指标(CloudWatch 指标: InvocationsPerInstance)

以下是变体的目标跟踪策略配置示例,该变体将每个实例的平均调用次数保持在 70。将此配置保存在名为 config.json 的文件中。

{ "TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" } }

有关更多信息,请参阅《Auto Scaling Auto Scaling API 参考TargetTrackingScalingPolicyConfiguration中的。

指定高分辨率的预定义指标(CloudWatch 指标: ConcurrentRequestsPerModel 和 ConcurrentRequestsPerCopy)

使用以下高分辨率 CloudWatch 指标,您可以为模型收到的并发请求量设置扩展策略:

ConcurrentRequestsPerModel

模型容器收到的并发请求数。

ConcurrentRequestsPerCopy

推理组件收到的并发请求数。

这些指标跟踪您的模型容器同时处理的请求数量,包括容器内排队的请求。对于以令牌流形式发送推理响应的模型,这些指标会跟踪每个请求,直到模型发送请求的最后一个令牌。

作为高分辨率指标,它们比标准 CloudWatch指标更频繁地发布数据。标准指标(例如InvocationsPerInstance指标)每分钟发出一次数据。但是,这些高分辨率指标每 10 秒发出一次数据。因此,随着模型的并发流量的增加,您的策略会比标准指标更快地进行扩展。但是,随着模型流量的减少,您的策略会以与标准指标相同的速度进行扩展。

以下是目标跟踪策略配置示例,该配置在每个模型的并发请求数超过 5 时添加实例。将此配置保存在名为 config.json 的文件中。

{ "TargetValue": 5.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantConcurrentRequestsPerModelHighResolution" } }

如果您使用推理组件将多个模型部署到同一个终端节点,则可以创建等效的策略。在这种情况下,PredefinedMetricType请设置为SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution

有关更多信息,请参阅《Auto Scaling Auto Scaling API 参考TargetTrackingScalingPolicyConfiguration中的。

定义自定义指标(CloudWatch指标:CPUUtilization)

要使用自定义指标创建目标跟踪扩展策略,请指定指标的名称、命名空间、单位、统计数据以及零个或多个维度。维度由维度名称和维度值组成。您可以使用任何与产能成比例变化的生产变量指标。

以下示例配置显示了带有自定义指标的目标跟踪扩展策略。该策略根据所有实例的平均CPU利用率为 50% 来扩展变体。将此配置保存在名为 config.json 的文件中。

{ "TargetValue": 50.0, "CustomizedMetricSpecification": { "MetricName": "CPUUtilization", "Namespace": "/aws/sagemaker/Endpoints", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "VariantName","Value": "my-variant"} ], "Statistic": "Average", "Unit": "Percent" } }

有关更多信息,请参阅《Auto Scaling Auto Scaling API 参考CustomizedMetricSpecification中的。

定义自定义指标(CloudWatch 指标: ExplanationsPerInstance)

当端点激活了在线可解释性时,它会发出一个ExplanationsPerInstance指标,该指标输出变体每分钟解释的平均记录数。解释记录的资源利用率与预测记录的资源利用率会大不相同。我们强烈建议在激活在线解释功能的情况下,使用此指标对终端进行目标跟踪扩展。

您可以为可扩展目标创建多个目标跟踪策略。考虑添加该指定预定义的指标(CloudWatch 指标: InvocationsPerInstance)部分中的InvocationsPerInstance策略(除了ExplanationsPerInstance策略之外)。如果大多数调用由于EnableExplanations参数中设置的阈值而没有返回解释,则终端节点可以选择策略。InvocationsPerInstance如果有大量解释,则端点可以使用 ExplanationsPerInstance 策略。

以下示例配置显示了带有自定义指标的目标跟踪扩展策略。策略规模调整变体实例的数量,使每个实例的ExplanationsPerInstance指标为 20。将此配置保存在名为 config.json 的文件中。

{ "TargetValue": 20.0, "CustomizedMetricSpecification": { "MetricName": "ExplanationsPerInstance", "Namespace": "AWS/SageMaker", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "VariantName","Value": "my-variant"} ], "Statistic": "Sum" } }

有关更多信息,请参阅《Auto Scaling Auto Scaling API 参考CustomizedMetricSpecification中的。

指定冷却时间

您可以选择通过指定ScaleOutCooldownScaleInCooldown参数在目标跟踪扩展策略中定义冷却时间。

以下是变体的目标跟踪策略配置示例,该变体将每个实例的平均调用次数保持在 70。该策略配置提供了 10 分钟(600 秒)的缩减冷却时间和 5 分钟(300 秒)的横向扩展冷却时间。将此配置保存在名为 config.json 的文件中。

{ "TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }

有关更多信息,请参阅《Auto Scaling Auto Scaling API 参考TargetTrackingScalingPolicyConfiguration中的。