As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Escalar automaticamente a simultaneidade provisionada para um endpoint de sem servidor
A Amazon SageMaker AI aumenta ou reduz automaticamente os endpoints sem servidor sob demanda. Para endpoints sem servidor com simultaneidade provisionada, você pode usar o Application Auto Scaling para aumentar ou reduzir a escala horizontalmente da simultaneidade provisionada com base em seu perfil de tráfego, otimizando assim os custos.
A seguir estão os pré-requisitos para escalar automaticamente a simultaneidade provisionada em endpoints sem servidor:
Antes de usar o ajuste de escala automático, você já deve ter implantado um modelo em um endpoint sem servidor com simultaneidade provisionada. Os modelos implantados são referidos como variantes de produção. Consulte Criar uma configuração de endpoint e Crie um endpoint do para obter mais informações sobre a implantação de um modelo em um endpoint sem servidor com simultaneidade provisionada. Para especificar as métricas e os valores de destino de uma política de escalabilidade, você precisa configurar uma política de rastreamento. Para obter mais informações sobre como definir uma política de escalabilidade, consulte Definir uma política de escalabilidade. Depois de registrar o modelo e definir uma política de escalabilidade, aplique a política de escalabilidade ao modelo registrado. Para obter mais informações sobre como aplicar a política de escalabilidade, consulte Aplicar uma política de escalabilidade.
Registrar um modelo
Para adicionar escalonamento automático a um endpoint sem servidor com simultaneidade provisionada, primeiro você deve registrar seu modelo (variante de produção) usando nossa API Application Auto Scaling. AWS CLI
Registrar um modelo (AWS CLI)
Para registrar seu modelo, use o register-scalable-target
AWS CLI comando com os seguintes parâmetros:
-
--service-namespace
: defina este valor comosagemaker
. -
--resource-id
: o identificador de recurso para o modelo (especificamente, a variante de produção). Para esse parâmetro, o tipo de recurso éendpoint
e o identificador exclusivo é o nome da variante de produção. Por exemplo,endpoint/MyEndpoint/variant/MyVariant
. -
--scalable-dimension
: defina este valor comosagemaker:variant:DesiredProvisionedConcurrency
. -
--min-capacity
: O número mínimo de simultaneidade provisionada para o modelo. Defina--min-capacity
como pelo menos 1. Deve ser igual ou menor que o valor especificado para--max-capacity
. -
--max-capacity
: o número máximo de simultaneidade provisionada que deve ser ativada por meio da aplicação Auto Scaling. Defina--max-capacity
para um mínimo de 1. Deve ser maior que ou igual ao valor especificado para--min-capacity
.
O seguinte exemplo mostra como registrar um modelo chamado MyVariant
que é dinamicamente escalado para ter de um valor simultaneamente provisionado de 1 a 10:
aws application-autoscaling register-scalable-target \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --min-capacity 1 \ --max-capacity 10
Registro de um modelo (API da aplicação Auto Scaling)
Para registrar seu modelo, use a ação RegisterScalableTarget
da API da aplicação Auto Scaling com os seguintes parâmetros:
-
ServiceNamespace
: defina este valor comosagemaker
. -
ResourceId
: o identificador de recurso para o modelo (especificamente, a variante de produção). Para esse parâmetro, o tipo de recurso éendpoint
e o identificador exclusivo é o nome da variante de produção. Por exemplo,endpoint/MyEndpoint/variant/MyVariant
. -
ScalableDimension
: defina este valor comosagemaker:variant:DesiredProvisionedConcurrency
. -
MinCapacity
: O número mínimo de simultaneidade provisionada para o modelo. DefinaMinCapacity
como pelo menos 1. Deve ser igual ou menor que o valor especificado paraMaxCapacity
. -
MaxCapacity
: o número máximo de simultaneidade provisionada que deve ser ativada por meio da aplicação Auto Scaling. DefinaMaxCapacity
para um mínimo de 1. Deve ser maior que ou igual ao valor especificado paraMinCapacity
.
O seguinte exemplo mostra como registrar um modelo chamado MyVariant
que é dinamicamente escalado para ter de um valor simultaneamente provisionado de 1 a 10:
POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndPoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "MinCapacity": 1, "MaxCapacity": 10 }
Definir uma política de escalabilidade
Para especificar as métricas e os valores de destino de uma política de escalabilidade, você pode configurar uma política de escalabilidade de rastreamento de destino. Defina a política de escalabilidade como um bloco JSON em um arquivo de texto. Em seguida, você pode usar esse arquivo de texto ao invocar a AWS CLI ou a API Application Auto Scaling. Use a métrica predefinida SageMakerVariantProvisionedConcurrencyUtilization
para definir rapidamente a política de escalabilidade de rastreamento de destino.
{ "TargetValue": 0.5, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantProvisionedConcurrencyUtilization" }, "ScaleOutCooldown": 1, "ScaleInCooldown": 1 }
Aplicar uma política de escalabilidade
Depois de registrar seu modelo, você pode aplicar uma política de ajuste de escala ao endpoint sem servidor com a simultaneidade provisionada. Consulte Aplicar uma política de escalabilidade de rastreamento de destino para aplicar uma política de escalabilidade de rastreamento de destino que você definiu. Se o fluxo de tráfego para o endpoint sem servidor tiver uma rotina previsível, em vez de aplicar uma política de ajuste de escala de rastreamento de metas, talvez você queira agendar ações de ajuste de escala em horários específicos. Para obter mais informações sobre ações de escalabilidade programada, consulte Escalabilidade programada.
Aplicar uma política de escalabilidade de rastreamento de destino
Você pode usar a API AWS CLI ou a AWS Management Console Application Auto Scaling API para aplicar uma política de escalabilidade de rastreamento de metas ao seu endpoint sem servidor com simultaneidade provisionada.
Aplicar uma política de ajuste de escala de rastreamento de destino (AWS CLI)
Para aplicar uma política de ajuste de escala ao modelo, use o comando put-scaling-policy
da AWS CLI com os seguintes parâmetros:
-
--policy-name
: o nome da política de ajuste de escala. -
--policy-type
: defina este valor comoTargetTrackingScaling
. -
--resource-id
: o identificador do recurso para a variante. Para esse parâmetro, o tipo de recurso éendpoint
e o identificador exclusivo é o nome da variante. Por exemplo,endpoint/MyEndpoint/variant/MyVariant
. -
--service-namespace
: defina este valor comosagemaker
. -
--scalable-dimension
: defina este valor comosagemaker:variant:DesiredProvisionedConcurrency
. -
--target-tracking-scaling-policy-configuration
: a configuração da política de ajuste de escala de rastreamento de destino a ser usada para o modelo.
O exemplo a seguir mostra como aplicar a política de escalabilidade de rastreamento de destino chamada MyScalingPolicy
para um modelo chamado MyVariant
. A configuração de política é salva em um arquivo chamado scaling-policy.json
.
aws application-autoscaling put-scaling-policy \ --policy-name MyScalingPolicy \ --policy-type TargetTrackingScaling \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --target-tracking-scaling-policy-configuration file://[file-localtion]/scaling-policy.json
Aplique uma política de ajuste de escala de rastreamento de destino (aplicação Auto Scaling API)
Para aplicar uma política de escalabilidade ao seu modelo, use a ação PutScalingPolicy
da API do aplicativo Auto Scaling com os seguintes parâmetros:
-
PolicyName
– o nome da política de escalabilidade. -
PolicyType
: defina este valor comoTargetTrackingScaling
. -
ResourceId
: o identificador do recurso para a variante. Para esse parâmetro, o tipo de recurso éendpoint
e o identificador exclusivo é o nome da variante. Por exemplo,endpoint/MyEndpoint/variant/MyVariant
. -
ServiceNamespace
: defina este valor comosagemaker
. -
ScalableDimension
: defina este valor comosagemaker:variant:DesiredProvisionedConcurrency
. -
TargetTrackingScalingPolicyConfiguration
: a configuração da política de ajuste de escala de rastreamento de destino a ser usada para o modelo.
O exemplo a seguir mostra como aplicar a política de escalabilidade de rastreamento de destino chamada MyScalingPolicy
para um modelo chamado MyVariant
. A configuração de política é salva em um arquivo chamado scaling-policy.json
.
POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "PolicyName": "MyScalingPolicy", "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndpoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 0.5, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantProvisionedConcurrencyUtilization" } } }
Aplicar uma política de esc labilidade de rastreamento de destino (AWS Management Console)
Para aplicar uma política de escalabilidade de rastreamento de metas com: AWS Management Console
-
Faça login no console do Amazon SageMaker AI
. -
No painel de navegação, escolha Inferência.
-
Escolha Endpoints para ver uma lista de todos os seus endpoints.
-
Escolha o endpoint ao qual você deseja aplicar a política de escalabilidade. Uma página com as configurações do endpoint será exibida, com os modelos (variante de produção) listados na seção Configurações de runtime do endpoint.
-
Selecione a variante de produção à qual você deseja aplicar a política de ajuste de escala e escolha Configurar ajuste de escala automático. A caixa de diálogo Configurar ajuste de escala automático da variante é exibida.
-
Insira os valores mínimo e máximo de simultaneidade provisionada nos campos Simultaneidade provisionada mínima e Simultaneidade máxima provisionada, respectivamente, na seção Ajuste automático de escala variável. A Simultaneidade Mínima Provisionada deve ser menor ou igual à Simultaneidade Provisionada Mínima.
-
Insira o valor alvo no campo Valor alvo para a métrica alvo,
SageMakerVariantProvisionedConcurrencyUtilization
. -
(Opcional) Insira os valores de escala em resfriamento e redução de resfriamento (em segundos) nos campos Escalar em resfriamento e Escalar em resfriamento, respectivamente.
-
(Opcional) Selecione Desabilitar a redução se você não quiser que o ajuste de escala automático exclua a instância quando o tráfego diminuir.
-
Selecione Salvar.
Escalabilidade programada
Se o tráfego para o endpoint sem servidor com simultaneidade provisionada seguir um padrão de rotina, talvez você queira programar ações de ajuste de escala em horários específicos, para aumentar ou reduzir a escala horizontalmente da simultaneidade provisionada. Você pode usar o AWS CLI ou o Application Auto Scaling para programar ações de escalabilidade.
Escalabilidade programada (AWS CLI)
Para aplicar uma política de escalabilidade ao seu modelo, use o comando put-scheduled-action
AWS CLI; com os seguintes parâmetros:
-
--schedule-action-name
: o nome da atividade de ajuste de escala. -
--schedule
: uma expressão cron que especifica os horários de início e término da ação de ajuste de escala com um cronograma recorrente. -
--resource-id
: o identificador do recurso para a variante. Para esse parâmetro, o tipo de recurso éendpoint
e o identificador exclusivo é o nome da variante. Por exemplo,endpoint/MyEndpoint/variant/MyVariant
. -
--service-namespace
: defina este valor comosagemaker
. -
--scalable-dimension
: defina este valor comosagemaker:variant:DesiredProvisionedConcurrency
. -
--scalable-target-action
: o alvo da ação de ajuste de escala.
O seguinte exemplo mostra como adicionar uma atividade de ajuste de escala nomeada MyScalingAction
a um modelo nomeado MyVariant
em uma programação recorrente: Na programação especificada (todo dia às 12h15 UTC), se a simultaneidade provisionada atual for inferior ao valor especificado para MinCapacity
. A aplicação Auto Scaling expande a simultaneidade provisionada para o valor especificado por MinCapacity
.
aws application-autoscaling put-scheduled-action \ --scheduled-action-name 'MyScalingAction' \ --schedule 'cron(15 12 * * ? *)' \ --service-namespace sagemaker \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --scalable-target-action 'MinCapacity=10'
Ajuste de escala programado (API do Application Auto Scaling)
Para aplicar uma política de ajuste de escala ao seu modelo, use a ação PutScheduledAction
da API do Application Auto Scaling com os seguintes parâmetros:
-
ScheduleActionName
: o nome da atividade de ajuste de escala. -
Schedule
: uma expressão cron que especifica os horários de início e término da ação de ajuste de escala com um cronograma recorrente. -
ResourceId
: o identificador do recurso para a variante. Para esse parâmetro, o tipo de recurso éendpoint
e o identificador exclusivo é o nome da variante. Por exemplo,endpoint/MyEndpoint/variant/MyVariant
. -
ServiceNamespace
: defina este valor comosagemaker
. -
ScalableDimension
: defina este valor comosagemaker:variant:DesiredProvisionedConcurrency
. -
ScalableTargetAction
: o alvo da ação de ajuste de escala.
O seguinte exemplo mostra como adicionar uma atividade de ajuste de escala nomeada MyScalingAction
a um modelo nomeado MyVariant
em uma programação recorrente: Na programação especificada (todo dia às 12h15 UTC), se a simultaneidade provisionada atual for inferior ao valor especificado para MinCapacity
. A aplicação Auto Scaling expande a simultaneidade provisionada para o valor especificado por MinCapacity
.
POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.PutScheduledAction X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "ScheduledActionName": "MyScalingAction", "Schedule": "cron(15 12 * * ? *)", "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndpoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "ScalableTargetAction": "MinCapacity=10" } } }