Obter recomendações de políticas de dimensionamento automático - 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á.

Obter recomendações de políticas de dimensionamento automático

Com o Amazon SageMaker Inference Recommender, você pode obter recomendações para políticas de escalonamento automático para seu SageMaker endpoint com base no padrão de tráfego previsto. Se você já concluiu um trabalho de recomendação de inferência, pode fornecer os detalhes do trabalho para obter uma recomendação para uma política de dimensionamento automático que pode ser aplicada ao seu endpoint.

O recomendador de inferência compara valores diferentes para cada métrica para determinar a configuração de dimensionamento automático ideal para seu endpoint. A recomendação de dimensionamento automático retorna uma política de escalonamento automático recomendada para cada métrica definida em seu trabalho de recomendação de inferência. Você pode salvar as políticas e aplicá-las ao seu endpoint com a PutScalingPolicyAPI.

Para começar, revise os pré-requisitos a seguir.

Pré-requisitos

Antes de começar, você deve ter concluído um trabalho de recomendação de inferência bem-sucedido. Na seção a seguir, você pode fornecer uma ID de recomendação de inferência ou o nome de um SageMaker endpoint que foi comparado durante um trabalho de recomendação de inferência.

Para recuperar o ID do trabalho de recomendação ou o nome do endpoint, você pode visualizar os detalhes do trabalho de recomendação de inferência no SageMaker console ou usar os EndpointName campos RecommendationId ou retornados pela API. DescribeInferenceRecommendationsJob

Criar uma recomendação de configuração de dimensionamento automático

Para criar uma política de recomendação de dimensionamento automático, você pode usar o AWS SDK for Python (Boto3).

O exemplo a seguir mostra os campos da GetScalingConfigurationRecommendationAPI. Use os seguintes campos ao chamar a API:

  • InferenceRecommendationsJobName - Insira o nome do seu trabalho de recomendação de inferência.

  • RecommendationId - Insira o ID de uma recomendação de inferência de um trabalho de recomendação. Isso é opcional se você tiver especificado o campo EndpointName.

  • EndpointName - Insira o nome de um endpoint que foi comparado durante um trabalho de recomendação de inferência. Isso é opcional se você tiver especificado o campo RecommendationId.

  • TargetCpuUtilizationPerCore - (Opcional) Insira um valor percentual de quanta utilização você deseja que uma instância em seu endpoint use antes do dimensionamento automático. O valor padrão se você não especificar este campo é 50%.

  • ScalingPolicyObjective - (Opcional) Um objeto em que você especifica seu padrão de tráfego previsto.

    • MinInvocationsPerMinute - (Opcional) O número mínimo de solicitações esperadas para seu endpoint por minuto.

    • MaxInvocationsPerMinute - (Opcional) O número máximo de solicitações esperadas para seu endpoint por minuto.

{ "InferenceRecommendationsJobName": "string", // Required "RecommendationId": "string", // Optional, provide one of RecommendationId or EndpointName "EndpointName": "string", // Optional, provide one of RecommendationId or EndpointName "TargetCpuUtilizationPerCore": number, // Optional "ScalingPolicyObjective": { // Optional "MinInvocationsPerMinute": number, "MaxInvocationsPerMinute": number } }

Após enviar sua solicitação, você receberá uma resposta com políticas de escalonamento automático definidas para cada métrica. Consulte a próxima seção para obter informações sobre como interpretar a resposta.

Analisar os resultados da recomendação de configuração de dimensionamento automático

O exemplo a seguir mostra a resposta da GetScalingConfigurationRecommendationAPI:

{ "InferenceRecommendationsJobName": "string", "RecommendationId": "string", // One of RecommendationId or EndpointName is shown "EndpointName": "string", "TargetUtilizationPercentage": Integer, "ScalingPolicyObjective": { "MinInvocationsPerMinute": Integer, "MaxInvocationsPerMinute": Integer }, "Metric": { "ModelLatency": Integer, "InvocationsPerInstance": Integer }, "DynamicScalingConfiguration": { "MinCapacity": number, "MaxCapacity": number, "ScaleInCooldown": number, "ScaleOutCooldown": number, "ScalingPolicies": [ { "TargetTracking": { "MetricSpecification": { "Predefined" { "PredefinedMetricType": "string" }, "Customized": { "MetricName": "string", "Namespace": "string", "Statistic": "string" } }, "TargetValue": Double } } ] } }

Os campos InferenceRecommendationsJobName, RecommendationID, EndpointName ou TargetCpuUtilizationPerCore, e os campos do objeto ScalingPolicyObjective são copiados da sua solicitação inicial.

O objeto Metric lista as métricas que foram avaliadas em seu trabalho de recomendação de inferência, juntamente com um cálculo dos valores de cada métrica quando a utilização da instância seria igual ao valor TargetCpuUtilizationPerCore. Isso é útil para antecipar as métricas de performance em seu endpoint quando ele aumenta e diminui a escala com a política de dimensionamento automático recomendada. Por exemplo, considere se sua utilização de instância foi de 50% em seu trabalho de recomendação de inferência e seu valor InvocationsPerInstance foi originalmente de 4. Se você especificar o TargetCpuUtilizationPerCore valor como 100% em sua solicitação de recomendação de dimensionamento automático, o valor métrico InvocationsPerInstance retornado na resposta é 2 porque você esperava alocar o dobro da utilização da instância.

O DynamicScalingConfiguration objeto retorna os valores que você deve especificar para o TargetTrackingScalingPolicyConfigurationao chamar a PutScalingPolicyAPI. Isso inclui os valores de capacidade mínimo e máximo recomendados, os tempos de resfriamento de redução e redução recomendados e o objeto ScalingPolicies, que contém o TargetValue recomendado que você deve especificar para cada métrica.