【以下的问题经过翻译处理】 我已经为异步推理配置了一个模型,它正常工作-我可以通过invoke_endpoint_async
提交一个文件并从s3下载输出。
我正在尝试配置自动扩展。我尝试不同选项的实验,但基本上我想配置0-1个实例,在调用invoke_endpoint_async
时创建一个实例,然后很快关闭该实例(类似于批量推理)
我很难让它正常工作-我遇到了与https://github.com/boto/boto3/issues/2839类似的问题。
首先,我认为console
存在问题-如果我aws register-scalable-target ...
它可以工作,但控制台Minimum instance count
不能为零
虽然我认为这只是一个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”相互作用的?放大/缩小的实际触发因素是什么?