Quero solucionar problemas que ocorrem quando eu invoco ou crio um endpoint assíncrono do Amazon SageMaker AI.
Breve descrição
Para detectar erros que ocorrem quando você invoca um endpoint assíncrono, revise os Amazon CloudWatch Logs do endpoint. Analise os logs do CloudWatch sob o nome do grupo de logs /aws/sagemaker/endpoints/example-endpoint-name e o nome do fluxo de logs example-production-variant-name/example-instance-id/data-log. Para mais informações, consulte a seção Métricas comuns de endpoint e a seção Métricas de endpoint de inferência assíncrona de Monitoramento com o CloudWatch.
Resolução
Solucione problemas que ocorrem quando você invoca ou cria um endpoint assíncrono do SageMaker AI com base nos seguintes erros:
"ModelError: ocorreu um erro (ModelError) ao chamar a operação InvokeEndpoint: Foi gerado o erro cliente (413) do primário e não foi possível carregar todo o corpo da resposta"
Se esse erro ocorrer quando o tamanho da carga útil for menor que 1 GB, analise os CloudWatch Logs do endpoint assíncrono. Além disso, teste localmente o modelo com tamanhos diferentes de imagens e confirme se o erro ocorre com tamanhos de carga útil menores que 1 GB.
Para depurar localmente o modelo, execute mais registros em log (instruções de impressão) e, em seguida, verifique a parte do código que causa o erro. Se o modelo for executado sem erros localmente, hospede-o no SageMaker AI. Para mais informações, consulte amazon-sagemaker-local-mode no site do GitHub.
Exemplo de código:
import logging
import syslogger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.addHandler(logging.StreamHandler(sys.stdout))
logger.info("Loading file.")print("Loading file. --> from print statement")
tempo limite do processador
Esse erro ocorre quando não há processadores suficientes dentro do contêiner do modelo para processar as solicitações de ping e invocação. Para resolver esse erro, aumente o número de processadores e o valor de model_server_timeout.
AproximateAgeOfOldestRequest costuma aumentar até que a fila seja limpa
Esse problema ocorre quando as solicitações de fila não são limpas com eficiência. Os endpoints assíncronos do SageMaker AI usam uma abordagem FIFO (first in first out). No entanto, o tempo de inferência do modelo, a contenção de recursos ou as latências da rede podem interferir na abordagem FIFO.
Se as solicitações atingirem o tempo limite, aumente o valor do parâmetro InvocationTimeoutSeconds. Esse parâmetro especifica a quantidade de tempo que o SageMaker AI espera que a inferência seja feita antes de retornar um erro. O valor máximo que você pode definir é 3600 segundos (1 hora).
Além disso, é uma prática recomendada adicionar uma política de ajuste de escala automático que monitore ApproximateBacklogSizePerInstance. Isso permite que o endpoint aumente a escala verticalmente com base no tamanho da lista de pendências e que as solicitações sejam processadas com mais rapidez.
O tamanho da lista de pendências é alto e o número de instâncias não aumenta
Para solucionar esse problema, use os comandos da AWS CLI describe-scalable-target, describe-scaling-policies e describe-scaling-activities. Além disso, verifique se o endpoint está no estado InService.
Informações relacionadas
Resolução de problemas
Como obter logs ou instruções de impressão do endpoint implantado do SageMaker PyTorch?
Configurar endpoints de inferência com ajuste de escala automático no Amazon SageMaker
Definir uma política de ajuste de escala
amazon-sagemaker-examples do site do GitHub