为Sagemaker异步推理配置自动缩放

0

【以下的问题经过翻译处理】 我已经为异步推理配置了一个模型,它正常工作-我可以通过invoke_endpoint_async提交一个文件并从s3下载输出。

我正在尝试配置自动扩展。我尝试不同选项的实验,但基本上我想配置0-1个实例,在调用invoke_endpoint_async时创建一个实例,然后很快关闭该实例(类似于批量推理)

我很难让它正常工作-我遇到了与https://github.com/boto/boto3/issues/2839类似的问题。

首先,我认为console存在问题-如果我aws register-scalable-target ...它可以工作,但控制台Minimum instance count不能为零

Enter image description here

虽然我认为这只是一个UI问题,但我不理解策略的工作原理-我有

{
    "TargetValue": 1.0,
    "CustomizedMetricSpecification": {
        "MetricName": "ApproximateBacklogSizePerInstance",
        "Namespace": "AWS/SageMaker",
        "Dimensions": [{"Name": "EndpointName", "Value": "***-test-endpoint-2023-03-24-04-28-06-341"}],
        "Statistic": "Average"
    },
    "ScaleInCooldown": 60,
    "ScaleOutCooldown": 60
}

第一个困惑的点是控制台显示了内置和自定义策略。我最初使用内置策略的名称(SageMakerEndpointInvocationScalingPolicy),但put-scaling-policy似乎无法编辑它-它会创建一个具有相同名称的新策略。

当我监控扩展活动时()

aws application-autoscaling describe-scaling-activities \
    --service-namespace sagemaker

最初我可以看到“成功地将所需的实例计数设置为0。Sagemaker成功完成变更。” 但是当我用调用端点时

response = sm_runtime.invoke_endpoint_async(
    EndpointName=endpoint_name, 
    InputLocation="***/input/data.json",
    ContentType='application/jsonlines',
    Accept='application/jsonlines')

output_location = response['OutputLocation']

我希望看到实例计数增加到1,然后在几分钟内恢复到零。我偶尔会让它做一些事情,但并不可靠。我认为主要的问题是我不了解度量以及它如何与目标交互。

我看过图表,但我不知道如何绘制“ ApproximateBacklogSizePerInstance”?它是如何与“TargetValue”相互作用的?放大/缩小的实际触发因素是什么?

1 Antwort
0

【以下的回答经过翻译处理】 一个目标跟踪扩展策略将创建2个CloudWatch警报(一个用于高使用率,一个用于低使用率),您可以在CloudWatch警报控制台中查看。高使用率策略需要具有连续3个60秒突破数据点来触发扩展;低警报需要连续15个60秒违规数据点才能缩小规模。

相反,您可能希望使用阶梯缩放策略,可以在其中创建和控制警报以及策略设置。 https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html

谢谢,一旦我了解到该策略是由CloudWatch警报管理的,我就可以观察到我的策略在工作——特别是,我将指标更改为HasBacklogWithoutCapacity,目标更改为0.5,我使用了Maximum而不是average,它的行为符合我的要求。我确实注意到,从我向队列提交推理作业到度量从0增加到1(大约2-3分钟),然后等待3个连续值之间也有一些延迟,因此总的来说,触发开始添加容量大约需要5分钟,而不是3分钟。我会尝试逐步扩展来减少这种情况,但至少我现在有了一个可以与批量推理进行比较的概念验证。

profile picture
EXPERTE
beantwortet vor 8 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen