Obtenha uma recomendação de inferência para um endpoint existente - 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á.

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 performance 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 SageMaker inferência existente para ajudá-lo a melhorar o desempenho do seu endpoint. O procedimento de obter recomendações para um endpoint de SageMaker inferência existente é semelhante ao procedimento para obter recomendações de inferência sem um endpoint. Há várias exclusões de recursos 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 causar limitaçã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 for AWS SDK 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 SageMaker inferência, 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 SageMaker inferência existente, uma AWS IAM funçãoARN, uma configuração de entrada e seu pacote ARN de modelo de quando você registrou seu modelo no registro do modelo.

AWS SDK for Python (Boto3)

Use o CreateInferenceRecommendationsJobAPIpara 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 Amazon Resource Name (ARN) de uma IAM função que permite que o Inference Recommender execute tarefas em seu nome. Defina isso para o campo RoleArn.

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

  • Forneça o nome de um endpoint de SageMaker inferência 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 SageMaker cliente usando a classe cliente. Se você seguiu as etapas na seção Pré-requisitos, o grupo de pacotes do modelo 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 SageMaker API referência da Amazon para obter uma lista completa dos argumentos opcionais e obrigatórios para os quais você pode transmitir CreateInferenceRecommendationsJob.

AWS CLI

Use o create-inference-recommendations-job API 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 IAM função 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 modelo versionado que você criou quando registrou seu modelo no Model Registry. Defina isso para ModelPackageVersionArn no campo input-config.

  • Forneça o nome de um endpoint de SageMaker inferência 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ê deve receber uma JSON resposta semelhante à seguinte:

{ "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, a função ARN e os horários de criação e as últimas modificações.

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. 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 performance do seu endpoint (MaxInvocations e ModelLatency).