HyperPod solución de problemas de inferencias - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

HyperPod solución de problemas de inferencias

Esta guía de solución de problemas aborda los problemas más comunes que pueden producirse durante el despliegue y el funcionamiento de las HyperPod inferencias de SageMaker IA. Estos problemas suelen estar relacionados con la configuración de las redes de VPC, los permisos de IAM, la administración de recursos de Kubernetes y los problemas de conectividad del operador que pueden impedir la implementación exitosa del modelo o provocar que las implementaciones fallen o permanezcan en estados pendientes.

Esta guía de solución de problemas utiliza la siguiente terminología: los pasos de solución de problemas son procedimientos de diagnóstico para identificar e investigar los problemas, la resolución proporciona las acciones específicas para solucionar los problemas identificados y la verificación confirma que la solución ha funcionado correctamente.

Se ha agotado el tiempo de espera de descarga

Al implementar un punto final de SageMaker IA, el proceso de creación falla debido a la imposibilidad de descargar el certificado de la autoridad de certificación (CA) en un entorno de VPC. Para ver los pasos de configuración detallados, consulta la guía de administración.

Mensaje de error:

Aparece el siguiente error en los CloudWatch registros de puntos finales de la SageMaker IA:

Error downloading CA certificate: Connect timeout on endpoint URL: "https://****.s3.<REGION>.amazonaws.com/****/***.pem"

Causa principal:

  • Este problema se produce cuando el operador de inferencia no puede acceder al certificado autofirmado de Amazon S3 dentro de su VPC.

  • La configuración adecuada del punto de conexión de VPC de Amazon S3 es esencial para el acceso a los certificados

Solución:

  1. Si no tiene un punto de conexión de VPC de Amazon S3:

    • Cree un punto de enlace de VPC de Amazon S3 siguiendo la configuración de la sección 5.3 de la guía de administración.

  2. Si ya tiene un punto de conexión de VPC de Amazon S3:

    • Asegúrese de que la tabla de enrutamiento de subred esté configurada para apuntar al punto final de la VPC (si se usa el punto de enlace) o de que el DNS privado esté habilitado para el punto final de la interfaz.

    • El punto de enlace de VPC de Amazon S3 debe ser similar a la configuración que se menciona en la sección 5.3 (paso de creación del punto de conexión)

La implementación del modelo está atascada en estado pendiente

Al implementar un modelo, la implementación permanece en estado «pendiente» durante un período prolongado. Esto indica que el operador de inferencia no puede iniciar la implementación del modelo en el HyperPod clúster.

Componentes afectados:

Durante el despliegue normal, el operador de inferencia debe:

  • Implementar un pod modelo

  • Creación de un balanceador de carga

  • Cree un punto final de SageMaker IA

Pasos para la solución de problemas:

  1. Compruebe el estado del módulo del operador de inferencia:

    kubectl get pods -n hyperpod-inference-system

    Ejemplo de resultado esperado:

    NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h
  2. Revise los registros de operadores de inferencia y examine los registros de operadores para ver si hay mensajes de error:

    kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system

Qué buscar:

  • Mensajes de error en los registros del operador

  • Estado del módulo del operador

  • Cualquier advertencia o fallo relacionado con la implementación

nota

Una implementación en buen estado debería superar el estado «Pendiente» en un tiempo razonable. Si los problemas persisten, revise los registros del operador de inferencia para ver si hay mensajes de error específicos para determinar la causa raíz.

Solución de problemas de estado de implementación del modelo

Cuando la implementación de un modelo entra en un estado «fallido», el error puede producirse en uno de los tres componentes:

  • Despliegue del módulo modelo

  • Creación de un balanceador de carga

  • SageMaker Creación de terminales de IA

Pasos para la solución de problemas:

  1. Compruebe el estado del operador de inferencia:

    kubectl get pods -n hyperpod-inference-system

    Resultado previsto:

    NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h
  2. Revise los registros del operador:

    kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system

Qué buscar:

Los registros del operador indicarán qué componente falló:

  • Fallos en el despliegue del módulo modelo

  • Problemas de creación del balanceador de carga

  • SageMaker Errores de punto final de IA

Comprobar el progreso de la implementación del modelo

Para supervisar el progreso de la implementación de su modelo e identificar posibles problemas, puede usar los comandos kubectl para comprobar el estado de varios componentes. Esto ayuda a determinar si la implementación avanza con normalidad o si ha tenido problemas durante las fases de creación del módulo del modelo, configuración del equilibrador de carga o SageMaker configuración de los terminales de IA.

Método 1: compruebe el estado del modelo JumpStart

kubectl describe jumpstartmodel.inference.sagemaker.aws.amazon.com/<model-name> -n <namespace>

Indicadores de estado clave que deben supervisarse:

  1. Estado de la implementación

    • BusqueStatus.State: Debería mostrarse DeploymentComplete

    • Compruebe Status.Deployment Status.Available Replicas

    • Supervise Status.Conditions el progreso de la implementación

  2. SageMaker Estado del terminal de IA

    • ComprobarStatus.Endpoints.Sagemaker.State: debería mostrarse CreationCompleted

    • Verificar Status.Endpoints.Sagemaker.Endpoint Arn

  3. Estado del certificado TLS

    • Ver detalles Status.Tls Certificate

    • Compruebe la caducidad del certificado en Last Cert Expiry Time

Método 2: compruebe la configuración del punto final de inferencia

kubectl describe inferenceendpointconfig.inference.sagemaker.aws.amazon.com/<deployment_name> -n <namespace>

Estados de estado comunes:

  • DeploymentInProgress: Fase de despliegue inicial

  • DeploymentComplete: Despliegue exitoso

  • Failed: Falló el despliegue

nota

Supervise la sección de eventos para detectar cualquier advertencia o error. Compruebe que el recuento de réplicas coincida con la configuración esperada. Compruebe que se cumplen todas las condiciones Status: True para una implementación correcta.

Emisión de permisos VPC ENI

SageMaker Se produce un error en la creación de puntos finales de IA debido a la falta de permisos para crear interfaces de red en la VPC.

Mensaje de error:

Please ensure that the execution role for variant AllTraffic has sufficient permissions for creating an endpoint variant within a VPC

Causa raíz:

La función de ejecución del operador de inferencia carece del EC2 permiso de Amazon necesario para crear interfaces de red (ENI) en la VPC.

Solución:

Añada el siguiente permiso de IAM a la función de ejecución del operador de inferencia:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterfacePermission" ], "Resource": "*" }

Verificación:

Tras añadir el permiso:

  1. Elimine el punto final fallido (si existe)

  2. Vuelva a intentar la creación del punto final

  3. Supervise el estado de la implementación para que se complete correctamente

nota

Este permiso es esencial para los puntos finales de SageMaker IA que se ejecutan en modo VPC. Asegúrese de que la función de ejecución también tenga todos los demás permisos necesarios relacionados con la VPC.

Problema con la relación de confianza de IAM

HyperPod El operador de inferencia no puede comenzar con un AssumeRoleWithWebIdentity error de STS, lo que indica un problema de configuración de la relación de confianza de IAM.

Mensaje de error:

failed to enable inference watcher for HyperPod cluster *****: operation error SageMaker: UpdateClusterInference, get identity: get credentials: failed to refresh cached credentials, failed to retrieve credentials, operation error STS: AssumeRoleWithWebIdentity, https response error StatusCode: 403, RequestID: ****, api error AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity

Solución:

Actualice la relación de confianza de la función de ejecución de IAM del operador de inferencia con la siguiente configuración.

Reemplace los siguientes marcadores de posición:

  • <ACCOUNT_ID>: Su ID de cuenta AWS

  • <REGION>: Tu AWS región

  • <OIDC_ID>: el ID de proveedor OIDC de su clúster de Amazon EKS

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.us-east-2.amazonaws.com/id/<OIDC_ID>" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "oidc.eks.us-east-2.amazonaws.com/id/<OIDC_ID>:sub": "system:serviceaccount:<namespace>:<service-account-name>", "oidc.eks.us-east-2.amazonaws.com/id/<OIDC_ID>:aud": "sts.amazonaws.com" } } }, { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Verificación:

Tras actualizar la relación de confianza:

  1. Compruebe la configuración del rol en la consola de IAM

  2. Reinicie el operador de inferencia si es necesario

  3. Supervise los registros del operador para que el arranque se inicie

Falta un error en el complemento de la GPU NVIDIA

La implementación del modelo falla debido a un error de insuficiencia de la GPU a pesar de tener nodos de GPU disponibles. Esto ocurre cuando el complemento del dispositivo NVIDIA no está instalado en el HyperPod clúster.

Mensaje de error:

0/15 nodes are available: 10 node(s) didn't match Pod's node affinity/selector, 5 Insufficient nvidia.com/gpu. preemption: 0/15 nodes are available: 10 Preemption is not helpful for scheduling, 5 No preemption victims found for incoming pod.

Causa raíz:

  • Kubernetes no puede detectar los recursos de la GPU sin el complemento de dispositivo NVIDIA

  • Provoca errores en la programación de las cargas de trabajo de la GPU

Solución:

Instala el complemento de GPU de NVIDIA ejecutando:

kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/refs/tags/v0.17.1/deployments/static/nvidia-device-plugin.yml

Pasos de verificación:

  1. Comprueba el estado de despliegue del plugin:

    kubectl get pods -n kube-system | grep nvidia-device-plugin
  2. Comprueba que los recursos de la GPU estén ahora visibles:

    kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\\.com/gpu
  3. Vuelva a intentar el despliegue del modelo

nota

Asegúrese de que los controladores NVIDIA estén instalados en los nodos de la GPU. La instalación del plugin se realiza una sola vez por clúster. Es posible que se requieran privilegios de administrador del clúster para su instalación.

El operador de inferencia no se puede iniciar

El módulo del operador de inferencia no se pudo iniciar y está provocando el siguiente mensaje de error. Este error se debe a que la política de permisos sobre la función de ejecución del operador no está autorizada a desempeñarsts:AssumeRoleWithWebIdentity. Debido a esto, la parte del operador que se ejecuta en el plano de control no se inicia.

Mensaje de error:

Warning Unhealthy 5m46s (x22 over 49m) kubelet Startup probe failed: Get "http://10.1.100.59:8081/healthz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

Causa raíz:

  • La política de permisos de la función de ejecución del operador de inferencia no está configurada para acceder al token de autorización de los recursos.

Solución:

Establezca la siguiente política de la función de ejecución del EXECUTION_ROLE_ARN operador de HyperPod inferencia:

HyperpodInferenceAccessPolicy-ml-cluster to include all resources
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }

Pasos de verificación:

  1. Cambiar la política.

  2. Finalice el módulo del operador HyperPod de inferencia.

  3. El pod se reiniciará sin que se produzcan excepciones.