Obtenha uma recomendação de inferência para um endpoint existente - SageMaker IA da Amazon

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

Obtenha uma recomendação de inferência para um endpoint existente

Os trabalhos de recomendação de inferência executam um conjunto de testes de carga em tipos de instância recomendados e em um endpoint existente. Os trabalhos de recomendação de inferência usam métricas de desempenho baseadas em testes de carga usando os dados de amostra fornecidos durante o registro da versão do modelo.

Você pode comparar e obter recomendações de inferência para um endpoint de inferência de SageMaker IA existente para ajudá-lo a melhorar o desempenho do seu endpoint. O procedimento de obter recomendações para um endpoint de inferência de SageMaker IA existente é semelhante ao procedimento para obter recomendações de inferência sem um endpoint. Há várias exclusões de atributos a serem observadas ao comparar um endpoint existente:

  • Você só pode usar um endpoint existente por trabalho do recomendador de inferência.

  • Só é possível ter uma variante em seu endpoint.

  • Não é possível usar um endpoint que permita o dimensionamento automático.

  • Essa funcionalidade só é compatível com inferência em tempo real.

  • Essa funcionalidade não é compatível com endpoints multimodelo em tempo real.

Atenção

É altamente recomendável não executar um trabalho do recomendador de inferência em um endpoint de produção que envolva o tráfego ao vivo. A carga sintética durante a análise comparativa pode afetar seu ponto final de produção e ocasionar controle de utilização ou fornecer resultados de análises comparativas imprecisas. Recomendamos que você use um endpoint que não seja de produção ou de desenvolvedor para fins de comparação.

As seções a seguir demonstram como usar o Amazon SageMaker Inference Recommender para criar uma recomendação de inferência para um endpoint existente com base no seu tipo de modelo usando o AWS SDK for Python (Boto3) e o. AWS CLI

nota

Antes de criar um trabalho de recomendação de inferência, verifique se você satisfez o Pré-requisitos para usar o Amazon Inference Recommender SageMaker .

Pré-requisitos

Se você ainda não tem um endpoint de inferência de SageMaker IA, pode obter uma recomendação de inferência sem um endpoint ou criar um endpoint de inferência em tempo real seguindo as instruções em Crie seu endpoint e implante seu modelo.

Criar uma recomendação de inferência para um endpoint existente

Crie uma recomendação de inferência programaticamente usando AWS SDK for Python (Boto3), ou o. AWS CLI Especifique um nome de trabalho para sua recomendação de inferência, o nome de um endpoint de inferência de SageMaker IA existente, um ARN de AWS função do IAM, uma configuração de entrada e o ARN do pacote de modelos de quando você registrou seu modelo no registro do modelo.

AWS SDK for Python (Boto3)

Use a API CreateInferenceRecommendationsJob para obter uma recomendação de inferência. Defina o campo JobType como 'Default' para trabalhos de recomendação de inferência. Além disso, observe o seguinte:

  • Forneça um nome para seu trabalho de recomendação do recomendador de inferência para o campo JobName. O nome do cargo do Inference Recommender deve ser exclusivo na AWS região e na sua AWS conta.

  • O nome do recurso da Amazon (ARN) de um perfil do IAM que habilita o recomendador de inferência para executar tarefas em seu nome. Defina isso para o campo RoleArn.

  • O ARN do pacote de modelos versionado que você criou ao registrar seu modelo no registro do modelo. Defina isso para ModelPackageVersionArn no campo InputConfig.

  • Forneça o nome de um endpoint de inferência de SageMaker IA existente para o qual você deseja comparar no Inference Recommender no campo. Endpoints InputConfig

Importe o AWS SDK for Python (Boto3) pacote e crie um objeto cliente de SageMaker IA usando a classe cliente. Se você seguiu as etapas na seção Pré-requisitos, o grupo de pacotes de modelos ARN foi armazenado em uma variável chamada model_package_arn.

# Create a low-level SageMaker service client. import boto3 aws_region = '<region>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn = '<model-package-arn>' # Provide a unique job name for SageMaker Inference Recommender job job_name = '<job-name>' # Inference Recommender job type. Set to Default to get an initial recommendation job_type = 'Default' # Provide an IAM Role that gives SageMaker Inference Recommender permission to # access AWS services role_arn = '<arn:aws:iam::<account>:role/*>' # Provide endpoint name for your endpoint that want to benchmark in Inference Recommender endpoint_name = '<existing-endpoint-name>' sagemaker_client.create_inference_recommendations_job( JobName = job_name, JobType = job_type, RoleArn = role_arn, InputConfig = { 'ModelPackageVersionArn': model_package_arn, 'Endpoints': [{'EndpointName': endpoint_name}] } )

Consulte o Guia de referência de SageMaker API da Amazon para obter uma lista completa dos argumentos opcionais e obrigatórios para os quais você pode passar CreateInferenceRecommendationsJob.

AWS CLI

Use a API create-inference-recommendations-job para obter uma recomendação de endpoint de instância. Defina o campo job-type como 'Default' por exemplo, trabalhos de recomendação de endpoints. Além disso, observe o seguinte:

  • Forneça um nome para seu trabalho de recomendação do recomendador de inferência para o campo job-name. O nome do cargo do Inference Recommender deve ser exclusivo na AWS região e na sua AWS conta.

  • O Amazon Resource Name (ARN) de uma função do IAM que permite que o Amazon SageMaker Inference Recommender execute tarefas em seu nome. Defina isso para o campo role-arn.

  • O ARN do pacote de modelos versionado que você criou ao registrar seu modelo no registro do modelo. Defina isso para ModelPackageVersionArn no campo input-config.

  • Forneça o nome de um endpoint de inferência de SageMaker IA existente para o qual você deseja comparar no Inference Recommender no campo. Endpoints input-config

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region:account:role/*>\", \"Endpoints\": [{\"EndpointName\": <endpoint_name>}] }"

Obter seus resultados de trabalho de recomendação de inferência

Você pode coletar os resultados do seu trabalho de recomendação de inferência programaticamente com o mesmo procedimento para trabalhos de recomendação de inferência padrão. Para obter mais informações, consulte Obter seus resultados de trabalho de recomendação de inferência.

Ao obter resultados do trabalho de recomendação de inferência para um endpoint existente, você deverá receber uma resposta JSON semelhante a esta:

{ "JobName": "job-name", "JobType": "Default", "JobArn": "arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id", "RoleArn": "iam-role-arn", "Status": "COMPLETED", "CreationTime": 1664922919.2, "LastModifiedTime": 1664924208.291, "InputConfig": { "ModelPackageVersionArn": "arn:aws:sagemaker:region:account-id:model-package/resource-id", "Endpoints": [ { "EndpointName": "endpoint-name" } ] }, "InferenceRecommendations": [ { "Metrics": { "CostPerHour": 0.7360000014305115, "CostPerInference": 7.456940238625975e-06, "MaxInvocations": 1645, "ModelLatency": 171 }, "EndpointConfiguration": { "EndpointName": "sm-endpoint-name", "VariantName": "variant-name", "InstanceType": "ml.g4dn.xlarge", "InitialInstanceCount": 1 }, "ModelConfiguration": { "EnvironmentParameters": [ { "Key": "TS_DEFAULT_WORKERS_PER_MODEL", "ValueType": "string", "Value": "4" } ] } } ], "EndpointPerformances": [ { "Metrics": { "MaxInvocations": 184, "ModelLatency": 1312 }, "EndpointConfiguration": { "EndpointName": "endpoint-name" } } ] }

As primeiras linhas fornecem informações sobre o trabalho de recomendação de inferência em si. Isso inclui o nome do trabalho, o ARN do perfil e os horários de criação e modificação mais recentes.

O dicionário InferenceRecommendations contém uma lista de recomendações de inferência do recomendador de inferência.

O dicionário EndpointConfiguration aninhado contém a recomendação do tipo de instância (InstanceType) junto com o nome do endpoint e da variante (um modelo de aprendizado de AWS máquina implantado) que foi usado durante o trabalho de recomendação.

O dicionário Metrics aninhado contém informações sobre o custo estimado por hora (CostPerHour) para seu endpoint em tempo real em dólares americanos, o custo estimado por inferência (CostPerInference) em dólares americanos para seu endpoint em tempo real, o número máximo esperado de InvokeEndpoint solicitações por minuto enviadas ao endpoint (MaxInvocations) e a latência do modelo (ModelLatency), que é o intervalo de tempo (em milissegundos) que seu modelo levou para responder à IA. SageMaker A latência do modelo inclui os tempos de comunicação local necessários para enviar a solicitação e obter a resposta do contêiner de um modelo, bem como o tempo necessário para concluir a inferência dentro do contêiner.

O dicionário EndpointPerformances aninhado contém o nome do seu endpoint existente no qual o trabalho de recomendação foi executado (EndpointName) e as métricas de desempenho do seu endpoint (MaxInvocations e ModelLatency).