Open allcentury opened 4 years ago
Hi @allcentury, thanks for the recommendation. We'll add this to our backlog. In the meantime, you can use boto3
to attach the scaling policy:
For those new to this like I was, here is what I had to do:
client = boto3.client('application-autoscaling')
client.register_scalable_target(
ServiceNamespace='sagemaker',
ResourceId="endpoint/" + endpoint_name + "/variant/AllTraffic",
ScalableDimension='sagemaker:variant:DesiredInstanceCount',
MinCapacity=4,
MaxCapacity=50,
RoleARN=role,
SuspendedState={
'DynamicScalingInSuspended': False,
'DynamicScalingOutSuspended': False,
'ScheduledScalingSuspended': False
}
)
# check the target is available
client.describe_scalable_targets(
ServiceNamespace='sagemaker',
MaxResults=123,
)
client.put_scaling_policy(
PolicyName='autoscale-policy',
ServiceNamespace='sagemaker',
ResourceId="endpoint/" + endpoint_name + "/variant/AllTraffic",
ScalableDimension='sagemaker:variant:DesiredInstanceCount',
PolicyType='TargetTrackingScaling',
TargetTrackingScalingPolicyConfiguration={
'TargetValue': 150.0,
'PredefinedMetricSpecification': {
'PredefinedMetricType': 'SageMakerVariantInvocationsPerInstance',
},
'ScaleOutCooldown': 300,
'ScaleInCooldown': 300,
}
)
Describe the feature you'd like
today we deploy a model like so:
How would this feature be used? Please describe.
When calling
model.deploy
it would be ideal if there was a way to set an autoscale policy (similar to how we can setinitial_instance_count
).Describe alternatives you've considered
I'm still researching if I can use
SKLearn
class while also using boto3 to attach a policy.