¿Cómo puedo solucionar el problema con la respuesta InternalServerError en Amazon SageMaker?

4 minutos de lectura
0

Cuando ejecuto un trabajo de procesamiento, entrenamiento o predicción de Amazon SageMaker, la solicitud falla y aparece la respuesta «HTTP Error 500: Error interno del servidor» o «InternalServerError: Se ha producido un error interno. Vuelva a intentarlo».

Resolución

Si su solicitud de trabajo o inferencia de SageMaker a un punto de conexión falló con el «InternalServerError», vuelva a intentar la solicitud. Al volver a intentar la solicitud, se elimina el error debido a un problema transitorio.

Si el error persiste, siga estos pasos para revisar los registros del trabajo o del punto de conexión en Amazon CloudWatch.

Revise los registros de CloudWatch

Consulte los registros de CloudWatch asociados al recurso de SageMaker para determinar la causa principal:

  1. Abra la consola de SageMaker.

  2. Elija el recurso correspondiente en Procesamiento, Entrenamiento, o Inferencia.

  3. Elija el nombre del punto de conexión, trabajo de procesamiento o de entrenammiento.

  4. En la sección de Supervisión, elija Ver registros para abrir la consola de CloudWatch.

  5. En la consola de CloudWatch, elija la secuencia de registro para el trabajo o el punto de conexión.

  6. Si no hay ninguna secuencia de registro o si la secuencia de registro está vacía, confirme que el rol de ejecución del recurso tenga una política con los siguientes permisos:

{
 "Effect": "Allow",
 "Action": [
 "cloudwatch:PutMetricData",
 "logs:CreateLogStream",
 "logs:PutLogEvents",
 "logs:CreateLogGroup",
 "logs:DescribeLogStreams",
 "ecr:GetAuthorizationToken"
 ],
 "Resource": "*"
}
  1. Revise los registros para encontrar el mensaje de error.

Agregue el código de depuración a su script de inferencia (opcional)

Para simplificar el proceso de revisión del registro, puede añadir el código de depuración a su script de inferencia. El siguiente es un ejemplo de código de inferencia para depurar un punto de conexión. Puede usar este código para confirmar que ha llamado correctamente a la función predict (). El código también imprime la variable de datos que muestra el valor real que se pasa al punto de conexión. En este ejemplo, MYDEBUG es la palabra clave que se debe buscar en la secuencia de registro de 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) )

Solucionar otras causas comunes del «InternalServerError»

Utilización de recursos

Un trabajo de SageMaker puede dar error con el comando «InternalServerError» si el contenedor del trabajo en la instancia utiliza los recursos de la instancia. Para ver la utilización de los recursos, consulte las métricas de CPUUtilization, MemoryUtilization, y DiskUtilization de la instancia en CloudWatch.

Para revisar las métricas de la instancia, siga estos pasos:

  1. Abra la consola de SageMaker.

  2. En la sección Trabajos de procesamiento/entrenamiento, elija Procesamiento/Entrenamiento.

  3. Elija el nombre del trabajo.

  4. En la sección Supervisión, elija Ver métricas de la instancia para abrir la consola de CloudWatch. Si el trabajo utiliza muchos recursos, cambie a un tipo de instancia más grande o adjunte un volumen de almacenamiento mayor a la instancia existente.

Faltan permisos de EC2 en el rol de ejecución de SageMaker

El rol de ejecución de Amazon SageMaker puede mostrar un «InternalServerError» cuando los permisos de Amazon Elastic Compute Cloud (Amazon EC2) no están configurados correctamente. Al especificar un objeto VpcConfig en su trabajo de SageMaker, asegúrese que el rol de ejecución de SageMaker del trabajo tiene una política con los siguientes permisos:

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

Para obtener más información, consulte los roles de SageMaker.


Información relacionada

Registro y supervisión

CreateProcessingJob API: Permisos del rol de ejecución

Métricas de trabajos y puntos de conexión de SageMaker

Conectar los cuadernos de SageMaker Studio en una VPC a recursos externos

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años