Como posso solucionar a resposta InternalServerError no Amazon SageMaker?

4 minuto de leitura
0

Quando executo um trabalho de processamento, treinamento ou previsão do Amazon SageMaker, a solicitação falha com a resposta “Erro HTTP 500: Erro interno do servidor” ou “InternalServerError: Encontramos um erro interno. Tente novamente”.

Resolução

Se seu trabalho do SageMaker ou solicitação de inferência para um endpoint falhar com o “InternalServerError”, tente fazer a solicitação novamente. Tentar novamente a solicitação elimina a falha devido a um problema transitório.

Se a falha persistir, siga estas etapas para revisar os logs do trabalho ou do endpoint no Amazon CloudWatch.

Revise os logs do CloudWatch

Verifique os logs do CloudWatch associados ao recurso SageMaker para determinar a causa raiz:

1.    Abra o Console do SageMaker.

2.    Escolha o recurso relevante em Processamento, Treinamento ou Inferência.

3.    Escolha o nome do endpoint, do processamento ou do trabalho de treinamento.

4.    Na seção Monitoramento, escolha Exibir logs para abrir o console do CloudWatch.

5.    No console do CloudWatch, escolha o fluxo de logs para o trabalho ou o endpoint.

6.    Se não houver fluxo de logs ou se o fluxo de logs estiver vazio, confirme se o perfil de execução do recurso tem uma política com as seguintes permissões:

{
 "Effect": "Allow",
 "Action": [
 "cloudwatch:PutMetricData",
 "logs:CreateLogStream",
 "logs:PutLogEvents",
 "logs:CreateLogGroup",
 "logs:DescribeLogStreams",
 "ecr:GetAuthorizationToken"
 ],
 "Resource": "*"
}

7.    Revise os logs para encontrar a mensagem de erro.

Adicione código de depuração ao seu script de inferência (opcional)

Para simplificar o processo de revisão de logs, você pode adicionar código de depuração ao seu script de inferência. Veja a seguir um exemplo de código de inferência para depurar um endpoint. Você pode usar esse código para confirmar que você chamou corretamente a função predict(). O código também imprime a variável dados que mostra o valor real que é passado para o endpoint. Neste exemplo, MYDEBUG é a palavra-chave a ser pesquisada no fluxo de logs do CloudWatch.

def predict():
    data = None
    print("MYDEBUG: Predict function called")
    # Convert from CSV to pandas
    if flask.request.content_type == 'text/csv':
        data = flask.request.data.decode('utf-8')
        s = StringIO.StringIO(data)
        data = pd.read_csv(s, header=None)
        ## To print the actual data set
        print( "MYDEBUG: Printing data")
        print( data.head(10) )

Solução de problemas de outras causas comuns de “InternalServerError”

Utilização de recursos

Um trabalho do SageMaker pode falhar com “InternalServerError” se o contêiner do trabalho na instância usar os recursos da instância. Você pode visualizar a utilização de recursos analisando as métricas CPUUtilization, MemoryUtilization e DiskUtilization da instância no CloudWatch.

Para revisar as métricas da instância, siga estas etapas:

1.    Abra o Console do SageMaker.

2.    Na seção Trabalhos de Processamento/Treinamento, escolha Processamento/Treinamento.

3.    Escolha o nome do trabalho.

4.    Na seção Monitoramento, escolha Exibir métricas da instância para abrir o console do CloudWatch. Se o trabalho estiver usando muitos recursos, mude para um tipo de instância maior ou anexe um volume de armazenamento maior à instância existente.

Permissões do EC2 ausentes na função de execução do SageMaker

A função de execução do Amazon SageMaker pode mostrar um “InternalServerError” quando as permissões do Amazon Elastic Compute Cloud (Amazon EC2) não estiverem configuradas corretamente. Ao especificar um objeto VpcConfig em seu trabalho do SageMaker, confirme se a função de execução do SageMaker do trabalho tem uma política com as seguintes permissões:

{
 "Effect": "Allow",
 "Action": [
 "ec2:CreateNetworkInterface",
 "ec2:CreateNetworkInterfacePermission",
 "ec2:DeleteNetworkInterface",
 "ec2:DeleteNetworkInterfacePermission",
 "ec2:DescribeNetworkInterfaces",
 "ec2:DescribeVpcs",
 "ec2:DescribeDhcpOptions",
 "ec2:DescribeSubnets",
 "ec2:DescribeSecurityGroups"
 ]
}

Para obter mais informações, consulte do Funções do SageMaker.


Informações relacionadas

Registro e monitoramento

API CreateProcessingJob: Permissões da função de execução

Trabalhos e métricas de endpoint do SageMaker

Conecte os cadernos do SageMaker Studio em uma VPC a recursos externos

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos