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á.
Executar um teste de carga personalizado
Os testes de carga do Amazon SageMaker Inference Recommender conduzem benchmarks abrangentes com base nos requisitos de produção de latência e taxa de transferência, padrões de tráfego personalizados e endpoints sem servidor ou instâncias em tempo real (até 10) que você seleciona.
As seções a seguir demonstram como criar, descrever e interromper um teste de carga programaticamente usando o AWS SDK for Python (Boto3) e o AWS CLI, ou interativamente, usando o Amazon SageMaker Studio Classic ou o console. SageMaker
Criar um trabalho de teste de carga
Crie um teste de carga programaticamente usando o AWS SDK for Python (Boto3), com o AWS CLI ou interativamente usando o Studio Classic ou o console. SageMaker Assim como nas recomendações de inferência do Inference Recommender, especifique um nome de trabalho para seu teste de carga, uma AWS IAM funçãoARN, uma configuração de entrada e seu pacote de modelo a ARN partir do momento em que você registrou seu modelo no registro do modelo. Os testes de carga exigem que você também especifique um padrão de tráfego e condições de interrupção.
- AWS SDK for Python (Boto3)
-
Use o
CreateInferenceRecommendationsJob
API para criar um teste de carga do Inference Recommender. EspecifiqueAdvanced
para o campoJobType
e forneça:-
Um nome do trabalho para seu teste de carga (
JobName
). O nome do trabalho deve ser exclusivo em sua AWS região e em 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
. -
Um dicionário de configuração de endpoint (
InputConfig
) em que você deve especificar o seguinte:-
Para
TrafficPattern
, especifique as fases ou o padrão de tráfego das escadas. Com o padrão de tráfego de fases, novos usuários aparecem a cada minuto na taxa especificada por você. Com o padrão de tráfego de escadas, novos usuários aparecem em intervalos cronometrados (ou etapas) a uma taxa especificada por você. Escolha uma das seguintes opções:-
Em
TrafficType
, especifiquePHASES
. Em seguida, para a matrizPhases
, especifiqueInitialNumberOfUsers
(com quantos usuários simultâneos começar, com um mínimo de 1 e máximo de 3),SpawnRate
(o número de usuários a serem gerados em um minuto para uma fase específica do teste de carga, com um mínimo de 0 e máximo de 3) eDurationInSeconds
(quanto tempo a fase de tráfego deve durar, com um mínimo de 120 e máximo de 3600). -
Em
TrafficType
, especifiqueSTAIRS
. Em seguida, para a matrizStairs
, especifiqueDurationInSeconds
(quanto tempo a fase de tráfego deve durar, com um mínimo de 120 e máximo de 3600),NumberOfSteps
(quantos intervalos são usados durante a fase) eUsersPerStep
(quantos usuários são adicionados durante cada intervalo). Observe que o comprimento de cada etapa é o valor deDurationInSeconds / NumberOfSteps
. Por exemplo, se seuDurationInSeconds
for600
e você especificar5
etapas, cada etapa terá 120 segundos de duração.nota
Um usuário é definido como um ator gerado pelo sistema que é executado em um loop e invoca solicitações para um endpoint como parte do recomendador de inferência. Para um XGBoost contêiner típico executado em uma
ml.c5.large
instância, os endpoints podem atingir 30.000 invocações por minuto (500 tps) com apenas 15 a 20 usuários.
-
-
Para
ResourceLimit
, especifiqueMaxNumberOfTests
(o número máximo de testes de carga de análise comparativa para um trabalho do Inference Recommender, com um mínimo de 1 e máximo de 10) eMaxParallelOfTests
(o número máximo de testes de carga de análise comparativa paralelas para um trabalho do recomendador de inferência, com um mínimo de 1 e um máximo de 10). -
Para
EndpointConfigurations
, você pode especificar um dos seguintes:-
O campo
InstanceType
, no qual você especifica o tipo de instância na qual deseja executar seus testes de carga. -
O
ServerlessConfig
, no qual você especifica seus valores ideais paraMaxConcurrency
eMemorySizeInMB
para um endpoint com tecnologia sem servidor. Para obter mais informações, consulte Documentação de inferência de tecnologia sem servidor.
-
-
-
Um dicionário de condições de interrupção (
StoppingConditions
), em que, se alguma das condições for atendida, a tarefa do recomendador de inferência será interrompida. Neste exemplo, especifique os seguintes campos no dicionário:-
Para
MaxInvocations
, especifique o número máximo de solicitações por minuto esperado para o endpoint, com um mínimo de 1 e um máximo de 30.000. -
Para
ModelLatencyThresholds
, especifiquePercentile
(o limite do percentil de latência do modelo) eValueInMilliseconds
(o valor do percentil de latência do modelo em milissegundos). -
(Opcional) Para
FlatInvocations
, você pode especificar se deseja continuar o teste de carga quando a taxa TPS (invocações por minuto) se estabilizar. Uma TPS taxa reduzida geralmente significa que o endpoint atingiu a capacidade. No entanto, talvez você queira continuar monitorando o endpoint em condições de capacidade total. Para continuar o teste de carga quando isso acontecer, especifique esse valor comoContinue
. Caso contrário, o valor padrão seráStop
.
-
# Create a low-level SageMaker service client. import boto3 aws_region=
<INSERT>
sagemaker_client=boto3.client('sagemaker', region=aws_region) # Provide a name to your recommendation based on load testing load_test_job_name="<INSERT>"
# Provide the name of the sagemaker instance type instance_type="<INSERT>"
# Provide the IAM Role that gives SageMaker permission to access AWS services role_arn='arn:aws:iam::<account>:role/*
' # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn='arn:aws:sagemaker:<region>:<account>:role/*
' sagemaker_client.create_inference_recommendations_job( JobName=load_test_job_name, JobType="Advanced", RoleArn=role_arn, InputConfig={ 'ModelPackageVersionArn': model_package_arn, "JobDurationInSeconds": 7200, 'TrafficPattern' : { # Replace PHASES with STAIRS to use the stairs traffic pattern 'TrafficType': 'PHASES', 'Phases': [ { 'InitialNumberOfUsers': 1, 'SpawnRate': 1, 'DurationInSeconds': 120 }, { 'InitialNumberOfUsers': 1, 'SpawnRate': 1, 'DurationInSeconds': 120 } ] # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern # 'Stairs' : { # 'DurationInSeconds': 240, # 'NumberOfSteps': 2, # 'UsersPerStep': 2 # } }, 'ResourceLimit': { 'MaxNumberOfTests': 10, 'MaxParallelOfTests': 3 }, "EndpointConfigurations" : [{ 'InstanceType': 'ml.c5.xlarge' }, { 'InstanceType': 'ml.m5.xlarge' }, { 'InstanceType': 'ml.r5.xlarge' }] # Uncomment the ServerlessConfig and comment out the InstanceType field if you want recommendations for a serverless endpoint # "ServerlessConfig": { # "MaxConcurrency":value
, # "MemorySizeInMB":value
# } }, StoppingConditions={ 'MaxInvocations': 1000, 'ModelLatencyThresholds':[{ 'Percentile': 'P95', 'ValueInMilliseconds': 100 }], # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten 'FlatInvocations': 'Stop' } )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 criar um teste de carga do Inference Recommender. EspecifiqueAdvanced
para o campoJobType
e forneça:-
Um nome do trabalho para seu teste de carga (
job-name
). O nome do trabalho deve ser exclusivo em sua AWS região e em 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
role-arn
. -
Um dicionário de configuração de endpoint (
input-config
) em que você deve especificar o seguinte:-
Para
TrafficPattern
, especifique as fases ou o padrão de tráfego das escadas. Com o padrão de tráfego de fases, novos usuários aparecem a cada minuto na taxa especificada por você. Com o padrão de tráfego de escadas, novos usuários aparecem em intervalos cronometrados (ou etapas) a uma taxa especificada por você. Escolha uma das seguintes opções:-
Em
TrafficType
, especifiquePHASES
. Em seguida, para a matrizPhases
, especifiqueInitialNumberOfUsers
(com quantos usuários simultâneos começar, com um mínimo de 1 e máximo de 3),SpawnRate
(o número de usuários a serem gerados em um minuto para uma fase específica do teste de carga, com um mínimo de 0 e máximo de 3) eDurationInSeconds
(quanto tempo a fase de tráfego deve durar, com um mínimo de 120 e máximo de 3600). -
Em
TrafficType
, especifiqueSTAIRS
. Em seguida, para a matrizStairs
, especifiqueDurationInSeconds
(quanto tempo a fase de tráfego deve durar, com um mínimo de 120 e máximo de 3600),NumberOfSteps
(quantos intervalos são usados durante a fase) eUsersPerStep
(quantos usuários são adicionados durante cada intervalo). Observe que o comprimento de cada etapa é o valor deDurationInSeconds / NumberOfSteps
. Por exemplo, se seuDurationInSeconds
for600
e você especificar5
etapas, cada etapa terá 120 segundos de duração.nota
Um usuário é definido como um ator gerado pelo sistema que é executado em um loop e invoca solicitações para um endpoint como parte do recomendador de inferência. Para um XGBoost contêiner típico executado em uma
ml.c5.large
instância, os endpoints podem atingir 30.000 invocações por minuto (500 tps) com apenas 15 a 20 usuários.
-
-
Para
ResourceLimit
, especifiqueMaxNumberOfTests
(o número máximo de testes de carga de análise comparativa para um trabalho do Inference Recommender, com um mínimo de 1 e máximo de 10) eMaxParallelOfTests
(o número máximo de testes de carga de análise comparativa paralelas para um trabalho do recomendador de inferência, com um mínimo de 1 e um máximo de 10). -
Para
EndpointConfigurations
, você pode especificar um dos seguintes:-
O campo
InstanceType
, no qual você especifica o tipo de instância na qual deseja executar seus testes de carga. -
O
ServerlessConfig
, no qual você especifica seus valores ideais paraMaxConcurrency
eMemorySizeInMB
para um endpoint com tecnologia sem servidor.
-
-
-
Um dicionário de condições de interrupção (
stopping-conditions
), em que, se alguma das condições for atendida, a tarefa do recomendador de inferência será interrompida. Neste exemplo, especifique os seguintes campos no dicionário:-
Para
MaxInvocations
, especifique o número máximo de solicitações por minuto esperado para o endpoint, com um mínimo de 1 e um máximo de 30.000. -
Para
ModelLatencyThresholds
, especifiquePercentile
(o limite do percentil de latência do modelo) eValueInMilliseconds
(o valor do percentil de latência do modelo em milissegundos). -
(Opcional) Para
FlatInvocations
, você pode especificar se deseja continuar o teste de carga quando a taxa TPS (invocações por minuto) se estabilizar. Uma TPS taxa reduzida geralmente significa que o endpoint atingiu a capacidade. No entanto, talvez você queira continuar monitorando o endpoint em condições de capacidade total. Para continuar o teste de carga quando isso acontecer, especifique esse valor comoContinue
. Caso contrário, o valor padrão seráStop
.
-
aws sagemaker create-inference-recommendations-job\ --region
<region>
\ --job-name<job-name>
\ --job-type ADVANCED\ --role-arn arn:aws:iam::<account>:role/*
\ --input-config \"{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region>:<account>:role/*
\", \"JobDurationInSeconds\": 7200, \"TrafficPattern\" : { # Replace PHASES with STAIRS to use the stairs traffic pattern \"TrafficType\": \"PHASES\", \"Phases\": [ { \"InitialNumberOfUsers\": 1, \"SpawnRate\": 60, \"DurationInSeconds\": 300 } ] # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern # 'Stairs' : { # 'DurationInSeconds': 240, # 'NumberOfSteps': 2, # 'UsersPerStep': 2 # } }, \"ResourceLimit\": { \"MaxNumberOfTests\": 10, \"MaxParallelOfTests\": 3 }, \"EndpointConfigurations\" : [ { \"InstanceType\": \"ml.c5.xlarge\" }, { \"InstanceType\": \"ml.m5.xlarge\" }, { \"InstanceType\": \"ml.r5.xlarge\" } # Use the ServerlessConfig and leave out the InstanceType fields if you want recommendations for a serverless endpoint # \"ServerlessConfig\": { # \"MaxConcurrency\":value
, # \"MemorySizeInMB\":value
# } ] }\" --stopping-conditions \"{ \"MaxInvocations\": 1000, \"ModelLatencyThresholds\":[ { \"Percentile\": \"P95\", \"ValueInMilliseconds\": 100 } ], # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten \"FlatInvocations\": \"Stop\" }\" -
- Amazon SageMaker Studio Classic
-
Crie um teste de carga com o Studio Classic.
-
Em seu aplicativo Studio Classic, escolha o ícone inicial ( ).
-
Na barra lateral esquerda do Studio Classic, escolha Implantações.
-
Escolha Recomendador de inferência na lista suspensa.
-
Escolha Criar trabalho do recomendador de inferência. Uma nova guia intitulada Criar trabalho do recomendador de inferência é aberta.
-
Selecione o nome do seu grupo de modelos no campo da lista suspensa Grupo 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.
-
Selecione uma versão do modelo no campo suspenso Versão do modelo.
-
Escolha Continuar.
-
Forneça um nome para o trabalho no campo Nome.
-
(Opcional) Forneça uma descrição do seu trabalho no campo Descrição.
-
Escolha uma IAM função que conceda permissão ao Inference Recommender para acessar AWS os serviços. Você pode criar uma função e anexar a política
AmazonSageMakerFullAccess
IAM gerenciada para fazer isso, ou você pode deixar o Studio Classic criar uma função para você. -
Escolha Condições de interrupção para expandir os campos de entrada disponíveis. Forneça um conjunto de condições para interromper uma recomendação de implantação.
-
Especifique o número máximo de solicitações por minuto esperado para o endpoint no campo Máximo de invocações por minuto.
-
Especifique o limite de latência do modelo em microssegundos no campo Limite de latência do modelo. O limite de latência do modelo descreve o intervalo de tempo gasto por um modelo para responder, conforme visualizado pelo recomendador de inferência. Esse intervalo inclui o tempo de comunicação local necessário para enviar a solicitação e buscar a resposta de um modelo, bem como o tempo gasto para concluir a inferência no contêiner.
-
-
Escolha Padrão de tráfego para expandir os campos de entrada disponíveis.
-
Defina o número inicial de usuários virtuais especificando um número inteiro no campo Número inicial de usuários.
-
Forneça um número inteiro para o campo Taxa de geração. A taxa de geração define o número de usuários criados por segundo.
-
Defina a duração da fase em segundos especificando um número inteiro no campo Duração.
-
(Opcional) Adicione padrões de tráfego adicionais. Para fazer isso, escolha Adicionar.
-
-
Escolha a configuração Adicional para revelar o campo Duração máxima do teste. Especifique, em segundos, o tempo máximo que um teste pode levar durante um trabalho. Novos trabalhos não são programados após a duração definida. Isso ajuda a garantir que os trabalhos em andamento não sejam interrompidos e que você visualize somente os trabalhos concluídos.
-
Escolha Continuar.
-
Escolha Selecionar instâncias.
-
No campo Instâncias para avaliação comparativa, escolha Adicionar instâncias para testar. Selecione até 10 instâncias para o recomendador de inferência usar para testes de carga.
-
Escolha Configurações adicionais.
-
Forneça um número inteiro que defina um limite superior para o número de testes que um trabalho pode fazer para o campo Número máximo de testes. Observe que cada configuração de endpoint resulta em um novo teste de carga.
-
Forneça um número inteiro para o campo de teste Paralelo máximo. Essa configuração define um limite superior no número de testes de carga que podem ser executados paralelamente.
-
-
Selecione Enviar.
O teste de carga pode demorar até 2 horas.
Atenção
Não feche essa guia. Se você fechar essa guia, cancelará o trabalho de teste de carga do recomendador de inferência.
-
- SageMaker console
-
Crie um teste de carga personalizado por meio do SageMaker console fazendo o seguinte:
-
Acesse o SageMaker console em https://console.aws.amazon.com/sagemaker/
. -
No painel de navegação à esquerda, escolha Inferência e, em seguida, escolha Recomendador de inferência.
-
Na página de trabalhos recomendados de inferência, escolha Criar trabalho.
-
Na Etapa 1: configuração do modelo, faça o seguinte:
-
Em Tipo de trabalho, escolha Trabalho de recomendação padrão.
-
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:
-
Na lista suspensa Grupo de modelos, escolha o grupo de modelos no registro de SageMaker modelos em que seu modelo está.
-
Na lista suspensa Versão do modelo, escolha a versão desejada do seu modelo.
-
-
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:
-
No campo Nome do modelo, insira o nome do seu SageMaker modelo.
-
-
Para IAMfunção, você pode selecionar uma AWS IAM função existente que tenha as permissões necessárias para criar uma tarefa 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.
-
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.
-
Em Tipo de conteúdo de carga útil, insira os MIME tipos de seus dados de amostra de carga útil.
-
Em Padrão de tráfego, configure as fases para o teste de carga fazendo o seguinte:
-
Em Número inicial de usuários, especifique com quantos usuários simultâneos você deseja começar (com um mínimo de 1 e um máximo de 3).
-
Em Taxa de geração, especifique o número de usuários a serem gerados em um minuto para a fase (com um mínimo de 0 e um máximo de 3).
-
Em Duração (segundos), especifique o quão baixa a fase de tráfego deve ser em segundos (com um mínimo de 120 e um máximo de 3600).
-
-
(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:
-
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.
-
Na lista suspensa Estrutura, selecione a estrutura do seu contêiner, como TensorFlow ou. XGBoost
-
Em Versão de framework, insira a versão da estrutura da sua imagem de contêiner.
-
Na lista suspensa Nome do modelo mais próximo, selecione o modelo pré-treinado que mais se aproxima do seu.
-
Na lista suspensa Tarefa, selecione a tarefa de machine learning que o modelo realiza, como classificação ou regressão de imagens.
-
-
(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]}
. -
Escolha Próximo.
-
-
Para a Etapa 2: instâncias e parâmetros de ambiente, faça o seguinte:
-
Em Selecionar instâncias para análise comparativa, você pode selecionar até 8 tipos de instância que deseja comparar.
-
(Opcional) Em Intervalos de parâmetros de ambiente, você pode especificar parâmetros de ambiente que ajudem a otimizar seu modelo. Especifique os parâmetros como pares de Chave e Valor.
-
Escolha Próximo.
-
-
Para a Etapa 3: parâmetros de trabalho, faça o seguinte:
-
(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.
-
(Opcional) No campo Descrição do trabalho, insira uma descrição para o trabalho.
-
(Opcional) Na lista suspensa Chave de criptografia, escolha uma AWS KMS chave por nome ou insira-a ARN para criptografar seus dados.
-
(Opcional) Em Número máximo de testes, insira o número de testes que você deseja executar durante o trabalho de recomendação.
-
(Opcional) Em Máximo de testes paralelos, insira o número máximo de testes paralelos que você deseja executar durante o trabalho de recomendação.
-
Em Duração máxima do teste (s), insira o número máximo de segundos que você deseja que cada teste seja executado.
-
Em 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.
-
Em Limite de latência do modelo P99 (ms), insira o percentil de latência do modelo em milissegundos.
-
Escolha Próximo.
-
-
Para a Etapa 4: revisar o trabalho, revise suas configurações e escolha Enviar.
-
Obter os resultados do seu teste de carga
Você pode coletar métricas programaticamente em todos os testes de carga depois que os testes de carga forem concluídos com AWS SDK for Python (Boto3) o AWS CLI Studio Classic ou o SageMaker console.
- AWS SDK for Python (Boto3)
-
Colete métricas com
DescribeInferenceRecommendationsJob
API o. Especifique o nome do trabalho do teste de carga para o campoJobName
:load_test_response = sagemaker_client.describe_inference_recommendations_job( JobName=load_test_job_name )
Imprima o objeto de resposta.
load_test_response['Status']
Isso retorna uma JSON resposta 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': 'Advanced', 'JobArn': 'arn:aws:sagemaker:region
:account-id
:inference-recommendations-job/resource-id
', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region
:account-id
:model-package/resource-id
', 'JobDurationInSeconds': 7200, 'TrafficPattern': { 'TrafficType': 'PHASES' }, 'ResourceLimit': { 'MaxNumberOfTests': 100, 'MaxParallelOfTests': 100 }, 'EndpointConfigurations': [{ 'InstanceType': 'ml.c5d.xlarge' }] }, 'StoppingConditions': { 'MaxInvocations': 1000, 'ModelLatencyThresholds': [{ 'Percentile': 'P95', 'ValueInMilliseconds': 100} ]}, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.6899999976158142, 'CostPerInference': 1.0332434612791985e-05, 'MaximumInvocations': 1113, 'ModelLatency': 100000 }, 'EndpointConfiguration': { 'EndpointName':'endpoint-name'
, 'VariantName':'variant-name'
, 'InstanceType': 'ml.c5d.xlarge', 'InitialInstanceCount': 3 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId':'request-id'
, 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid':'x-amzn-requestid'
, 'content-type':'content-type'
, 'content-length': '1199', 'date': 'Tue, 26 Oct 2021 19:57:42 GMT' }, 'RetryAttempts': 0} }As primeiras linhas fornecem informações sobre o próprio trabalho de teste de carga. Isso inclui o nome do trabalho, a funçãoARN, 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 Métricas para monitorar a Amazon SageMaker com a Amazon CloudWatch Para mais informações.O dicionário
EndpointConfiguration
aninhado também contém a recomendação de contagem de instâncias (InitialInstanceCount
). Esse é o número de instâncias que você deve provisionar no endpoint para atender aoMaxInvocations
especificado noStoppingConditions
. Por exemplo, se forml.m5.large
eInstanceType
InitialInstanceCount
for2
, você deverá provisionar duasml.m5.large
instâncias para seu endpoint para que ele possa lidar com o TPS especificado na condição deMaxInvocations
parada.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
) para seu endpoint em tempo real, o número máximo deInvokeEndpoint
solicitações enviadas ao endpoint 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 do 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 com tecnologia 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 oMaxConcurrency
fornecido e quando oMemorySizeInMB
ocorre. As recomendações serverless também medem a métricaModelSetupTime
, 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
-
Colete métricas com
describe-inference-recommendations-job
API o. Especifique o nome do trabalho do teste de carga para a sinalizaçãojob-name
:aws sagemaker describe-inference-recommendations-job --job-name
<job-name>
Isso retorna uma resposta 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': 'Advanced', 'JobArn': 'arn:aws:sagemaker:region
:account-id
:inference-recommendations-job/resource-id
', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region
:account-id
:model-package/resource-id
', 'JobDurationInSeconds': 7200, 'TrafficPattern': { 'TrafficType': 'PHASES' }, 'ResourceLimit': { 'MaxNumberOfTests': 100, 'MaxParallelOfTests': 100 }, 'EndpointConfigurations': [{ 'InstanceType': 'ml.c5d.xlarge' }] }, 'StoppingConditions': { 'MaxInvocations': 1000, 'ModelLatencyThresholds': [{ 'Percentile': 'P95', 'ValueInMilliseconds': 100 }] }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.6899999976158142, 'CostPerInference': 1.0332434612791985e-05, 'MaximumInvocations': 1113, 'ModelLatency': 100000 }, 'EndpointConfiguration': { 'EndpointName':'endpoint-name'
, 'VariantName':'variant-name'
, 'InstanceType': 'ml.c5d.xlarge', 'InitialInstanceCount': 3 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId':'request-id'
, 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid':'x-amzn-requestid'
, 'content-type':'content-type'
, 'content-length': '1199', 'date': 'Tue, 26 Oct 2021 19:57:42 GMT' }, 'RetryAttempts': 0 } }As primeiras linhas fornecem informações sobre o próprio trabalho de teste de carga. Isso inclui o nome do trabalho, a funçãoARN, 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 Métricas para monitorar 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
) para seu endpoint em tempo real, o número máximo deInvokeEndpoint
solicitações enviadas ao endpoint 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 do 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 com tecnologia 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 oMaxConcurrency
fornecido e quando oMemorySizeInMB
ocorre. As recomendações serverless também medem a métricaModelSetupTime
, 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 são preenchidas em uma nova guia chamada Recomendações de inferência no Studio Classic. Pode demorar até 2 horas para que os resultados apareçam. Essa guia contém as colunas Resultados e Detalhes.
A coluna Detalhes fornece informações sobre o trabalho de teste de carga, como o nome dado ao trabalho de teste de carga, quando o trabalho foi criado (Hora de criação) e muito mais. Também contém 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 janelas de metas e SageMakerrecomendações de implantação nas quais você pode ajustar a ordem em que os resultados são exibidos com base na importância da implantação. Existem três menus suspensos nos quais você pode fornecer o nível de importância do Custo, Latência e Taxa de transferência para o 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.
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 ver os resultados do seu trabalho de teste de carga personalizado no SageMaker console fazendo o seguinte:
-
Acesse o SageMaker console em https://console.aws.amazon.com/sagemaker/
. -
No painel de navegação à esquerda, escolha Inferência e, em seguida, escolha Recomendador de inferência.
-
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.
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.
-