Obter uma recomendação de inferência - 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 uma recomendação de inferência

Os trabalhos de recomendação de inferência executam um conjunto de testes de carga em tipos de instância recomendados ou em um endpoint com tecnologia sem servidor. 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.

nota

Antes de criar um trabalho de recomendação de inferência, verifique se você satisfez o Pré-requisitos.

A seguir, demonstramos como usar o Amazon SageMaker Inference Recommender para criar uma recomendação de inferência com base no seu tipo de modelo usando o AWS SDK for Python (Boto3),, AWS CLI e o Amazon SageMaker Studio Classic e o console SageMaker

Obter uma recomendação de inferência

Crie uma recomendação de inferência programaticamente usando o AWS SDK for Python (Boto3) ou o AWS CLI, ou interativamente usando o Studio Classic ou o console. SageMaker Especifique um nome de trabalho para sua recomendação de inferência, um ARN de função AWS do IAM, uma configuração de entrada e um ARN de pacote de modelos ao registrar seu modelo no registro do modelo ou o nome do modelo e ContainerConfig um dicionário de quando você criou seu modelo na seção Pré-requisitos.

AWS SDK for Python (Boto3)

Use a API CreateInferenceRecommendationsJob para iniciar um trabalho de 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:

  • O Amazon Resource Name (ARN) de uma função do IAM que habilita o recomendador de inferência para executar tarefas em seu nome. Defina isso para o campo RoleArn.

  • Um ARN do pacote de modelos ou nome do modelo. O recomendador de inferência suporta um ARN do pacote de modelos ou um nome de modelo como entrada. Especifique um dos seguintes:

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

    • O nome do modelo que você criou. Defina isso para ModelName no campo InputConfig. Além disso, forneça o dicionário do ContainerConfig, que inclui os campos obrigatórios que precisam ser fornecidos com o nome do modelo. Defina isso para ContainerConfig no campo InputConfig. No ContainerConfig, você também pode especificar opcionalmente o campo SupportedEndpointTypecomo RealTime ou Serverless. Se você especificar esse campo, o recomendador de inferência retornará recomendações somente para esse tipo de endpoint. Se você não especificar esse campo, o recomendador de inferência retornará recomendações somente para ambos os tipos de endpoint.

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

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, especifique apenas uma das seguintes opções:

  • Opção 1: se você quiser criar um trabalho de recomendações de inferência com um ARN do pacote de modelos, armazene o ARN do grupo de pacotes de modelos em uma variável chamada model_package_arn.

  • Opção 2: se você quiser criar um trabalho de recomendações de inferência com um nome de modelo e ContainerConfig, armazene o nome do modelo em uma variável chamada model_name e o dicionário do ContainerConfig em uma variável chamada container_config.

# Create a low-level SageMaker service client. import boto3 aws_region = '<INSERT>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide only one of model package ARN or model name, not both. # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn = '<INSERT>' ## Uncomment if you would like to create an inference recommendations job with a ## model name instead of a model package ARN, and comment out model_package_arn above ## Provide your model name # model_name = '<INSERT>' ## Provide your container config # container_config = '<INSERT>' # Provide a unique job name for SageMaker Inference Recommender job job_name = '<INSERT>' # 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/*' sagemaker_client.create_inference_recommendations_job( JobName = job_name, JobType = job_type, RoleArn = role_arn, # Provide only one of model package ARN or model name, not both. # If you would like to create an inference recommendations job with a model name, # uncomment ModelName and ContainerConfig, and comment out ModelPackageVersionArn. InputConfig = { 'ModelPackageVersionArn': model_package_arn # 'ModelName': model_name, # 'ContainerConfig': container_config } )

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 iniciar um trabalho de recomendação de inferência. Defina o campo job-type como 'Default' para trabalhos de recomendação de inferência. Além disso, observe o seguinte:

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

  • Um ARN do pacote de modelos ou nome do modelo. O recomendador de inferência suporta um ARN do pacote de modelos ou um nome de modelo como entrada. Especifique um dos seguintes

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

    • O nome do modelo que você criou. Defina isso para ModelName no campo input-config. Além disso, forneça o dicionário do ContainerConfig, que inclui os campos obrigatórios que precisam ser fornecidos com o nome do modelo. Defina isso para ContainerConfig no campo input-config. No ContainerConfig, você também pode especificar opcionalmente o campo SupportedEndpointTypecomo RealTime ou Serverless. Se você especificar esse campo, o recomendador de inferência retornará recomendações somente para esse tipo de endpoint. Se você não especificar esse campo, o recomendador de inferência retornará recomendações somente para ambos os tipos de endpoint.

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

Para criar trabalhos de recomendação de inferência com um ARN do pacote de modelos, use o exemplo a seguir:

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/*>\", }"

Para criar trabalhos de recomendação de inferência com um nome de modelo e ContainerConfig, use o exemplo a seguir. O exemplo usa o SupportedEndpointType campo para especificar que só queremos retornar recomendações de inferência em tempo real:

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelName\": \"model-name\", \"ContainerConfig\" : { \"Domain\": \"COMPUTER_VISION\", \"Framework\": \"PYTORCH\", \"FrameworkVersion\": \"1.7.1\", \"NearestModelName\": \"resnet18\", \"PayloadConfig\": { \"SamplePayloadUrl\": \"s3://{bucket}/{payload_s3_key}\", \"SupportedContentTypes\": [\"image/jpeg\"] }, \"SupportedEndpointType\": \"RealTime\", \"DataInputConfig\": \"[[1,3,256,256]]\", \"Task\": \"IMAGE_CLASSIFICATION\", }, }"
Amazon SageMaker Studio Classic

Crie um trabalho de recomendação de inferência no Studio Classic.

  1. Em seu aplicativo Studio Classic, escolha o ícone inicial ( Home icon in Studio Classic ).

  2. Na barra lateral esquerda do Studio Classic, escolha Modelos.

  3. Escolha Registro de modelo na lista suspensa para exibir os modelos que você registrou no registro de modelos.

    O painel esquerdo exibe uma lista de grupos de modelos. A lista inclui todos os grupos de modelos registrados no registro de modelos em sua conta, incluindo modelos registrados fora do Studio Classic.

  4. Selecione o nome do seu grupo de modelos. Quando você seleciona seu grupo de modelos, o painel direito do Studio Classic exibe cabeçalhos de coluna, como Versões e Configuração.

    Se você tiver um ou mais pacotes de modelos em seu grupo de modelos, verá uma lista desses pacotes de modelos na coluna Versões.

  5. Escolha a coluna de recomendador de inferência.

  6. Escolha uma função do IAM que conceda permissão do Inference Recommender para acessar AWS os serviços. Você pode criar uma função e anexar a política gerenciada AmazonSageMakerFullAccess do IAM para fazer isso. Ou você pode deixar o Studio Classic criar uma função para você.

  7. Escolha Get recommendations (Obter recomendações).

    A recomendação de inferência pode demorar até 45 minutos.

    Atenção

    Não feche essa guia. Se você fechar essa guia, cancelará o trabalho de recomendação de instância.

SageMaker console

Crie um trabalho de recomendação de instância por meio do SageMaker console fazendo o seguinte:

  1. Acesse o SageMaker console em https://console.aws.amazon.com/sagemaker/.

  2. No painel de navegação à esquerda, escolha Inferência e, em seguida, escolha Recomendador de inferência.

  3. Na página de trabalhos recomendados de inferência, escolha Criar trabalho.

  4. Na Etapa 1: configuração do modelo, faça o seguinte:

    1. Em Tipo de trabalho, escolha Trabalho de recomendação padrão.

    2. Se você estiver usando um modelo registrado no registro de SageMaker modelos, ative a opção Escolher um modelo no registro de modelos e faça o seguinte:

      1. Na lista suspensa Grupo de modelos, escolha o grupo de modelos no registro de SageMaker modelos em que seu modelo está localizado.

      2. Na lista suspensa Versão do modelo, escolha a versão desejada do seu modelo.

    3. Se você estiver usando um modelo criado em SageMaker, desative a opção Escolher um modelo no registro de modelos e faça o seguinte:

      1. No campo Nome do modelo, insira o nome do seu SageMaker modelo.

    4. Na lista suspensa da função do IAM, você pode selecionar uma função existente AWS do IAM que tenha as permissões necessárias para criar um trabalho de recomendação de instância. Como alternativa, se você não tiver uma função existente, poderá escolher Criar uma nova função para abrir o pop-up de criação da função e SageMaker adicionar as permissões necessárias à nova função que você criar.

    5. Para o bucket do S3 para análise comparativa de carga útil, insira o caminho do Amazon S3 para seu arquivo de carga útil de amostra, que deve conter arquivos de carga útil de amostra que o recomendador de inferência usa para comparar seu modelo em diferentes tipos de instância.

    6. Em Tipo de conteúdo da carga, insira os tipos de MIME para seus dados de carga útil.

    7. (Opcional) Se você desativou a opção Escolher um modelo no registro do modelo e especificou um SageMaker modelo, em Configuração do contêiner, faça o seguinte:

      1. Na lista suspensa Domínio, selecione o domínio de machine learning do modelo, como visão computacional, processamento de linguagem natural ou aprendizado de máquina.

      2. Na lista suspensa Estrutura, selecione a estrutura do seu contêiner, como TensorFlow ou XGBoost.

      3. Em Versão de framework, insira a versão da estrutura da sua imagem de contêiner.

      4. Na lista suspensa Nome do modelo mais próximo, selecione o modelo pré-treinado que mais se aproxima do seu.

      5. Na lista suspensa Tarefa, selecione a tarefa de machine learning que o modelo realiza, como classificação ou regressão de imagens.

    8. (Opcional) Para compilação de modelos usando SageMaker o Neo, você pode configurar o trabalho de recomendação para um modelo que você compilou usando SageMaker o Neo. Em Configuração de entrada de dados, insira a forma correta dos dados de entrada para seu modelo em um formato semelhante a {'input':[1,1024,1024,3]}.

    9. Escolha Próximo.

  5. Para a Etapa 2: instâncias e parâmetros de ambiente, faça o seguinte:

    1. (Opcional) Para Selecionar instâncias para análise comparativa, você pode selecionar até 8 tipos de instância que deseja comparar. Se você não selecionar nenhuma instância, o recomendador de inferência considera todos os tipos de instância.

    2. Escolha Próximo.

  6. Para a Etapa 3: parâmetros de trabalho, faça o seguinte:

    1. (Opcional) No campo Nome do trabalho, insira um nome para seu trabalho de recomendação de instância. Ao criar o trabalho, SageMaker anexa um carimbo de data/hora ao final desse nome.

    2. (Opcional) No campo Descrição do trabalho, insira uma descrição para o trabalho.

    3. (Opcional) Na lista suspensa Chave de criptografia, escolha uma AWS KMS chave por nome ou insira seu ARN para criptografar seus dados.

    4. (Opcional) Em Duração máxima do teste (s), insira o número máximo de segundos durante os quais você deseja que cada teste seja executado.

    5. (Opcional) Para Máximo de invocações por minuto, insira o número máximo de solicitações por minuto que o endpoint pode alcançar antes de interromper o trabalho de recomendação. Depois de atingir esse limite, SageMaker termina o trabalho.

    6. (Opcional) Para o Limite de latência do modelo P99 (ms), insira o percentil de latência do modelo em milissegundos.

    7. Escolha Próximo.

  7. Para a Etapa 4: revisar o trabalho, revise suas configurações e escolha Enviar.

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

Colete os resultados do seu trabalho de recomendação de inferência programaticamente com AWS SDK for Python (Boto3) o AWS CLI Studio Classic ou o console. SageMaker

AWS SDK for Python (Boto3)

Depois que uma recomendação de inferência for concluída, você poderá usar o DescribeInferenceRecommendationsJob para obter os detalhes e as recomendações do trabalho. Forneça o nome do trabalho que você usou ao criar o trabalho de recomendação de inferência.

job_name='<INSERT>' response = sagemaker_client.describe_inference_recommendations_job( JobName=job_name)

Imprima o objeto de resposta. O exemplo de código anterior armazenou a resposta em uma variável chamadaresponse.

print(response['Status'])

Isso retorna uma resposta JSON semelhante ao exemplo a seguir. Observe que este exemplo mostra os tipos de instância recomendados para inferência em tempo real (para ver um exemplo mostrando recomendações de inferência sem servidor, veja o exemplo após este).

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

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 do ARN e os horários de criação e exclusão.

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. Você pode usar o nome do endpoint e da variante para monitoramento no Amazon CloudWatch Events. Consulte Monitore a Amazon SageMaker com a Amazon CloudWatch Para mais informações.

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 microssegundos) 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 exemplo a seguir mostra a InferenceRecommendations parte da resposta de um trabalho de recomendações de inferência configurado para retornar recomendações de inferência sem servidor:

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

Você pode interpretar as recomendações para inferência serverless de maneira semelhante aos resultados para inferência em tempo real, com a exceção do ServerlessConfig, que indica as métricas retornadas para um endpoint com tecnologia sem servidor com o MemorySizeInMB fornecido e quando o MaxConcurrency = 1 ocorre. Para aumentar a taxa de transferência possível no endpoint, aumente o valor de MaxConcurrency linearmente. Por exemplo, se a recomendação de inferência mostrar MaxInvocations como1000, aumentar MaxConcurrency para 2 apoiaria 2000 MaxInvocations. Observe que isso é verdade apenas até certo ponto, o qual pode variar com base no seu modelo e código. As recomendações serverless também medem a métrica ModelSetupTime, que avalia (em microssegundos) o tempo que leva para iniciar os recursos computacionais em um endpoint com tecnologia sem servidor. Para obter mais informações sobre como configurar endpoints com technologia sem servidor, consulte Documentação de inferência de tecnologia sem servidor.

AWS CLI

Após a conclusão de uma recomendação de inferência, você pode usar o describe-inference-recommendations-job para obter os detalhes do trabalho e os tipos de instância recomendados. Forneça o nome do trabalho que você usou ao criar o trabalho de recomendação de inferência.

aws sagemaker describe-inference-recommendations-job\ --job-name <job-name>\ --region <aws-region>

A resposta JSON deve ser semelhante ao exemplo a seguir: Observe que este exemplo mostra os tipos de instância recomendados para inferência em tempo real (para ver um exemplo mostrando recomendações de inferência sem servidor, veja o exemplo após este).

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

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, o horário de criação e exclusão.

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) usado durante o trabalho de recomendação. Você pode usar o nome do endpoint e da variante para monitoramento no Amazon CloudWatch Events. Consulte Monitore a Amazon SageMaker com a Amazon CloudWatch Para mais informações.

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 exemplo a seguir mostra a InferenceRecommendations parte da resposta de um trabalho de recomendações de inferência configurado para retornar recomendações de inferência sem servidor:

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

Você pode interpretar as recomendações para inferência serverless de maneira semelhante aos resultados para inferência em tempo real, com a exceção do ServerlessConfig, que indica as métricas retornadas para um endpoint com tecnologia sem servidor com o MemorySizeInMB fornecido e quando o MaxConcurrency = 1 ocorre. Para aumentar a taxa de transferência possível no endpoint, aumente o valor de MaxConcurrency linearmente. Por exemplo, se a recomendação de inferência mostrar MaxInvocations como1000, aumentar MaxConcurrency para 2 apoiaria 2000 MaxInvocations. Observe que isso é verdade apenas até certo ponto, o qual pode variar com base no seu modelo e código. As recomendações serverless também medem a métrica ModelSetupTime, que avalia (em microssegundos) o tempo que leva para iniciar os recursos computacionais em um endpoint com tecnologia sem servidor. Para obter mais informações sobre como configurar endpoints com technologia sem servidor, consulte Documentação de inferência de tecnologia sem servidor.

Amazon SageMaker Studio Classic

As recomendações de inferência são preenchidas em uma nova guia Recomendações de inferência no Studio Classic. Pode demorar até 45 minutos para que os resultados apareçam. Essa guia contém os cabeçalhos das colunas Resultados e Detalhes.

A coluna Detalhes fornece informações sobre o trabalho de recomendação de inferência, como o nome da recomendação de inferência, quando o trabalho foi criado (Hora de criação) e muito mais. Ele também fornece informações de Configurações, como o número máximo de invocações que ocorreram por minuto e informações sobre os nomes de recursos da Amazon usados.

A coluna Resultados fornece uma janela de metas e SageMakerrecomendações de implantação na qual você pode ajustar a ordem em que os resultados são exibidos com base na importância da implantação. Há três menus suspensos que você pode usar para fornecer o nível de importância do custo, da Latência e da Taxa de transferência para seu caso de uso. Para cada meta (custo, latência e taxa de transferência), você pode definir o nível de importância: menor importância, baixa importância, importância moderada, alta importância ou maior importância.

Com base em suas seleções de importância para cada meta, o Inference Recommender exibe sua recomendação principal no campo de SageMakerrecomendação à direita do painel, junto com o custo estimado por hora e a solicitação de inferência. Também fornece informações sobre a latência esperada do modelo, o número máximo de invocações e a número de instâncias. Para recomendações de tecnologia sem servidor, você pode ver os valores ideais para a simultaneidade máxima e o tamanho da memória do endpoint.

Além da recomendação principal exibida, você também pode ver as mesmas informações exibidas para todas as instâncias que o recomendador de inferência testou na seção Todas as execuções.

SageMaker console

Você pode visualizar seus trabalhos de recomendação de instância no SageMaker console fazendo o seguinte:

  1. Acesse o SageMaker console em https://console.aws.amazon.com/sagemaker/.

  2. No painel de navegação à esquerda, escolha Inferência e, em seguida, escolha Recomendador de inferência.

  3. Na página de trabalhos do recomendador de inferência, escolha o nome do seu trabalho de recomendação de inferência.

Na página de detalhes do seu trabalho, você pode ver as recomendações de inferência, que são os tipos de instância SageMaker recomendados para seu modelo, conforme mostrado na captura de tela a seguir.

Captura de tela da lista de recomendações de inferência na página de detalhes do trabalho no SageMaker console.

Nesta seção, você pode comparar os tipos de instância por vários fatores, como latência do modelo, custo por hora, custo por inferência e invocações por minuto.

Nessa página, você também pode visualizar as configurações especificadas para seu trabalho. Na seção Monitor, você pode ver as CloudWatch métricas da Amazon que foram registradas para cada tipo de instância. Para saber mais sobre como interpretar essas métricas, consulte Interpretar resultados.

Para obter mais informações sobre como interpretar os resultados de seu trabalho de recomendação, consulte Como interpretar os resultados da recomendação.

Interromper sua recomendação de inferência

Talvez você queira interromper um trabalho em execução no momento se você iniciou um trabalho por engano ou se não precisar mais executá-lo. Interrompa seus trabalhos de recomendação de inferência do Inference Recommender programaticamente com a StopInferenceRecommendationsJob API ou com o Studio Classic.

AWS SDK for Python (Boto3)

Especifique o nome do trabalho de recomendação de inferência para o campo JobName.

sagemaker_client.stop_inference_recommendations_job( JobName='<INSERT>' )
AWS CLI

Especifique o nome do trabalho do trabalho de recomendação de inferência para a sinalização de job-name.

aws sagemaker stop-inference-recommendations-job --job-name <job-name>
Amazon SageMaker Studio Classic

Feche a guia na qual você iniciou a recomendação de inferência para interromper sua recomendação de inferência do recomendador de inferência.

SageMaker console

Para interromper seu trabalho de recomendação de instância por meio do SageMaker console, faça o seguinte:

  1. Acesse o SageMaker console em https://console.aws.amazon.com/sagemaker/.

  2. No painel de navegação à esquerda, escolha Inferência e, em seguida, escolha Recomendador de inferência.

  3. Na página de trabalhos de recomendação de inferência, selecione seu trabalho de recomendação de instância.

  4. Escolha Interromper tarefa.

  5. Na caixa de diálogo exibida, escolha Confirmar.

Depois de interromper sua tarefa, o status da tarefa deve mudar para Interrompendo.