为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”相互作用的?放大/缩小的实际触发因素是什么?

profile picture
专家
已提问 8 个月前19 查看次数
1 回答
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
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则