Simultaneidade provisionada de escala automática para um endpoint sem servidor - Amazon SageMaker

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á.

Simultaneidade provisionada de escala automática para um endpoint sem servidor

A Amazon aumenta ou reduz SageMaker automaticamente os endpoints sem servidor sob demanda. Para endpoints sem servidor com simultaneidade provisionada, você pode usar o aplicativo Auto Scaling para aumentar ou diminuir a 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 escalonamento 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 Criar um endpoint 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.

Para obter detalhes sobre outros pré-requisitos e componentes usados com o escalonamento automático, consulte a Visão geral do Auto Scaling seção na documentação do escalonamento automático. SageMaker

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 como sagemaker.

  • --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 como sagemaker: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 do aplicativo Auto Scaling. Defina --max-capacity para um mínimo de 1. Deve ser maior que ou igual ao valor especificado para --min-capacity.

O exemplo a seguir 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 do aplicativo Auto Scaling)

Para registrar seu modelo, use a ação RegisterScalableTarget da API do aplicativo Auto Scaling com os seguintes parâmetros:

  • ServiceNamespace – defina este valor como sagemaker.

  • 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 como sagemaker:variant:DesiredProvisionedConcurrency.

  • MinCapacity – O número mínimo de simultaneidade provisionada para o modelo. Defina MinCapacity como pelo menos 1. Deve ser igual ou menor que o valor especificado para MaxCapacity.

  • MaxCapacity – o número máximo de simultaneidade provisionada que deve ser ativada por meio do aplicativo Auto Scaling. Defina MaxCapacity para um mínimo de 1. Deve ser maior que ou igual ao valor especificado para MinCapacity.

O exemplo a seguir 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 escalabilidade ao seu 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 seu endpoint sem servidor tiver uma rotina previsível, em vez de aplicar uma política de escalabilidade de rastreamento de metas, talvez você queira agendar ações de escalabilidade 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 esc labilidade de rastreamento de destino (AWS CLI)

Para aplicar uma política de escalabilidade ao modelo, use o comando put-scaling-policy AWS CLI com os seguintes parâmetros:

  • --policy-name – o nome da política de escalabilidade.

  • --policy-type – defina este valor como TargetTrackingScaling.

  • --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 como sagemaker.

  • --scalable-dimension – Defina este valor como sagemaker:variant:DesiredProvisionedConcurrency.

  • --target-tracking-scaling-policy-configuration – a configuração da política de escalabilidade 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 escalabilidade de rastreamento de destino (aplicativo 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 como TargetTrackingScaling.

  • 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 como sagemaker.

  • ScalableDimension – Defina este valor como sagemaker:variant:DesiredProvisionedConcurrency.

  • TargetTrackingScalingPolicyConfiguration – a configuração da política de escalabilidade 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

  1. Faça login no SageMakerconsole da Amazon.

  2. No painel de navegação, escolha Inferência.

  3. Escolha Endpoints para ver uma lista de todos os seus endpoints.

  4. 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 tempo de execução do endpoint.

  5. Selecione a variante de produção à qual você deseja aplicar a política de escalabilidade e escolha Configurar escalabilidade automática. A página Configurar escalabilidade automática da variante) é exibida.

    Captura de tela da caixa de diálogo de configuração do escalonamento automático da variante no console.
  6. 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 Escalabilidade automática de variantes. A Simultaneidade Mínima Provisionada deve ser menor ou igual à Simultaneidade Provisionada Mínima.

  7. Insira o valor alvo no campo Valor alvo para a métrica alvo, SageMakerVariantProvisionedConcurrencyUtilization.

  8. (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.

  9. (Opcional) Selecione Desativar escalabilidade se você não quiser que o escalonamento automático exclua a instância quando o tráfego diminuir.

  10. Selecione Save (Salvar).

Escalabilidade programada

Se o tráfego para seu endpoint sem servidor com simultaneidade provisionada seguir um padrão de rotina, talvez você queira programar ações de escalabilidade em horários específicos, para aumentar ou reduzir a 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 ação de escalabilidade.

  • --schedule – Uma expressão cron que especifica os horários de início e término da ação de escalonamento 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 como sagemaker.

  • --scalable-dimension – Defina este valor como sagemaker:variant:DesiredProvisionedConcurrency.

  • --scalable-target-action – o alvo da ação de escalonamento.

O seguinte exemplo mostra como adicionar uma ação de escalabilidade 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. O aplicativo 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'

Escalabilidade programada para o aplicativo Auto Scaling

Para aplicar uma política de escalabilidade ao seu modelo, use a ação PutScheduledAction da API do aplicativo Auto Scaling com os seguintes parâmetros:

  • ScheduleActionName – o nome da ação de escalabilidade.

  • Schedule – Uma expressão cron que especifica os horários de início e término da ação de escalonamento 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 como sagemaker.

  • ScalableDimension – Defina este valor como sagemaker:variant:DesiredProvisionedConcurrency.

  • ScalableTargetAction – o alvo da ação de escalonamento.

O seguinte exemplo mostra como adicionar uma ação de escalabilidade 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. O aplicativo 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" } } }

Excluir uma política de escalabilidade

Você pode excluir uma política de escalabilidade com a AWS Management Console, a ou a API AWS CLI Application Auto Scaling. Para obter mais informações sobre como excluir uma política de escalabilidade com o AWS Management Console, consulte Excluir uma política de escalabilidade a documentação de escalonamento SageMaker automático.

Excluir uma política de escalabilidade (AWS CLI)

Para aplicar uma política de escalabilidade ao modelo, use o comando delete-scaling-policy AWS CLI com os seguintes parâmetros:

  • --policy-name – o nome da política de escalabilidade.

  • --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 como sagemaker.

  • --scalable-dimension – Defina este valor como sagemaker:variant:DesiredProvisionedConcurrency.

O exemplo a seguir exclui a uma política de escalabilidade MyScalingPolicy do modelo chamado MyVariant.

aws application-autoscaling delete-scaling-policy \ --policy-name MyScalingPolicy \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant

Exclua uma política de escalabilidade (API do Application Auto Scaling)

Para excluir uma política de escalabilidade ao seu modelo, use a ação DeleteScalingPolicy da API do aplicativo Auto Scaling com os seguintes parâmetros:

  • PolicyName – o nome da política de escalabilidade.

  • 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 como sagemaker.

  • ScalableDimension – Defina este valor como sagemaker:variant:DesiredProvisionedConcurrency.

O seguinte exemplo usa a API do aplicativo Auto Scaling para excluir uma política de escalabilidade chamada MyScalingPolicy de um modelo chamado MyVariant.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.DeleteScalingPolicy 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", }

Cancelar o registro de um modelo

Você pode cancelar o registro de um modelo com a API Application Auto AWS Management Console Scaling ou com a AWS CLI API Application Auto Scaling.

Cancelar o registro de um modelo (AWS CLI)

Para cancelar o registro de um modelo do aplicativo Auto Scaling, use deregister-scalable-target AWS CLI; comando com os seguintes parâmetros:

  • --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 como sagemaker.

  • --scalable-dimension – Defina este valor como sagemaker:variant:DesiredProvisionedConcurrency.

O seguinte exemplo cancela o registro de um modelo chamado MyVariant do aplicativo Auto Scaling.

aws application-autoscaling deregister-scalable-target \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant

Cancelar o registro de um modelo (API do aplicativo Auto Scaling)

Para cancelar o registro de um modelo do aplicativo Auto Scaling, use a ação DeregisterScalableTarget da API do aplicativo Auto Scaling com os seguintes parâmetros:

  • 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 como sagemaker.

  • ScalableDimension – Defina este valor como sagemaker:variant:DesiredProvisionedConcurrency.

O exemplo a seguir usa a API do aplicativo Auto Scaling para cancelar o registro de um modelo chamado MyVariant do aplicativo Auto Scaling.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.DeregisterScalableTarget 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", }

Cancelar o registro de um modelo (AWS Management Console)

Para cancelar o registro de um modelo (variante de produção) com: AWS Management Console

  1. Abra o SageMaker console da Amazon.

  2. No painel de navegação, escolha Inferência.

  3. Escolha Endpoints para ver uma lista dos seus endpoints.

  4. Escolha o endpoint sem servidor que hospeda a variante de produção. Uma página com as configurações do endpoint será exibida, com as variantes de produção listadas na seção Configurações de tempo de execução do endpoint.

  5. Selecione a variante de produção cujo registro você deseja cancelar e escolha Configurar escalonamento automático. A página Configurar escalabilidade automática da variante) é exibida.

  6. Escolha Cancelar registro de ajuste de escala automático.