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 Pré-requisitos de escalonamento automático 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 nosso Application Auto Scaling. AWS CLI API

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

Registrar um modelo (Application Auto ScalingAPI)

Para registrar seu modelo, use a API ação RegisterScalableTarget Application 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 JSON bloco em um arquivo de texto. Em seguida, você pode usar esse arquivo de texto ao invocar o AWS CLI ou o Application API 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 o AWS Management Console, AWS CLI ou o Application Auto Scaling API para aplicar uma política de escalabilidade de rastreamento de metas ao seu endpoint sem servidor com a 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 metas (Application Auto Scaling) API

Para aplicar uma política de escalabilidade ao seu modelo, use a ação PutScalingPolicy Application Auto API 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 (todos os dias às 12h15UTC), se a simultaneidade provisionada atual estiver abaixo do 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 (Application API Auto Scaling)

Para aplicar uma política de escalabilidade ao seu modelo, use a ação PutScheduledAction Application Auto API 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 (todos os dias às 12h15UTC), se a simultaneidade provisionada atual estiver abaixo do 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" } } }