HyperPod résolution des problèmes d'inférence - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

HyperPod résolution des problèmes d'inférence

Ce guide de dépannage aborde les problèmes courants qui peuvent survenir lors du déploiement et du fonctionnement de HyperPod l'inférence par SageMaker IA. Ces problèmes concernent généralement la configuration du réseau VPC, les autorisations IAM, la gestion des ressources Kubernetes et les problèmes de connectivité des opérateurs qui peuvent empêcher le déploiement réussi du modèle ou entraîner l'échec ou le maintien des déploiements en attente.

Ce guide de dépannage utilise la terminologie suivante : les étapes de dépannage sont des procédures de diagnostic permettant d'identifier et d'étudier les problèmes, la résolution fournit les actions spécifiques pour résoudre les problèmes identifiés et la vérification confirme que la solution a fonctionné correctement.

Expiration du délai de téléchargement des certificats

Lors du déploiement d'un point de terminaison SageMaker AI, le processus de création échoue en raison de l'impossibilité de télécharger le certificat de l'autorité de certification (CA) dans un environnement VPC. Pour connaître les étapes de configuration détaillées, reportez-vous au guide de l'administrateur.

Message d’erreur:

L'erreur suivante apparaît dans les CloudWatch journaux des terminaux SageMaker AI :

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

Cause première :

  • Ce problème se produit lorsque l'opérateur d'inférence ne peut pas accéder au certificat auto-signé dans Amazon S3 au sein de votre VPC

  • Une configuration correcte du point de terminaison Amazon S3 VPC est essentielle pour l'accès aux certificats

Résolution :

  1. Si vous ne disposez pas d'un point de terminaison VPC Amazon S3 :

    • Créez un point de terminaison Amazon S3 VPC en suivant la configuration décrite dans la section 5.3 du guide d'administration.

  2. Si vous possédez déjà un point de terminaison VPC Amazon S3 :

    • Assurez-vous que la table de routage du sous-réseau est configurée pour pointer vers le point de terminaison VPC (si vous utilisez un point de terminaison de passerelle) ou que le DNS privé est activé pour le point de terminaison de l'interface.

    • Le point de terminaison Amazon S3 VPC doit être similaire à la configuration mentionnée dans la section 5.3 Étape de création du point de terminaison

Déploiement du modèle bloqué en attente

Lors du déploiement d'un modèle, le déploiement reste dans l'état « En attente » pendant une période prolongée. Cela indique que l'opérateur d'inférence n'est pas en mesure de lancer le déploiement du modèle dans votre HyperPod cluster.

Composants concernés :

Lors d'un déploiement normal, l'opérateur d'inférence doit :

  • Déployer le modèle Pod

  • Création d'un équilibreur de charge

  • Créer un point de terminaison SageMaker AI

Étapes de résolution des problèmes :

  1. Vérifiez l'état du module de l'opérateur d'inférence :

    kubectl get pods -n hyperpod-inference-system

    Exemple de sortie attendue :

    NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h
  2. Consultez les journaux des opérateurs d'inférence et examinez les journaux des opérateurs pour détecter les messages d'erreur :

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

Ce qu'il faut rechercher :

  • Messages d'erreur dans les journaux de l'opérateur

  • État du module opérateur

  • Tout avertissement ou échec lié au déploiement

Note

Un déploiement sain doit dépasser l'état « En attente » dans un délai raisonnable. Si les problèmes persistent, consultez les journaux des opérateurs d'inférence pour détecter les messages d'erreur spécifiques afin d'en déterminer la cause première.

Résolution des problèmes d'état d'échec du déploiement du modèle

Lorsqu'un déploiement de modèle passe à l'état « Échec », l'échec peut se produire dans l'un des trois composants suivants :

  • Déploiement du Model Pod

  • Création d'un équilibreur de charge

  • SageMaker Création de points de terminaison AI

Étapes de résolution des problèmes :

  1. Vérifiez le statut de l'opérateur d'inférence :

    kubectl get pods -n hyperpod-inference-system

    Sortie attendue :

    NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h
  2. Consultez les journaux des opérateurs :

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

Ce qu'il faut rechercher :

Les journaux de l'opérateur indiqueront quel composant a échoué :

  • Défaillances de déploiement du Model Pod

  • Problèmes de création d'un équilibreur de charge

  • SageMaker Erreurs de point de terminaison AI

Vérification de la progression du déploiement du modèle

Pour suivre la progression du déploiement de votre modèle et identifier les problèmes potentiels, vous pouvez utiliser les commandes kubectl pour vérifier l'état des différents composants. Cela permet de déterminer si le déploiement progresse normalement ou s'il a rencontré des problèmes lors de la création du module de modélisation, de la configuration de l'équilibreur de charge ou des phases de configuration des terminaux SageMaker AI.

Méthode 1 : vérifier l'état du JumpStart modèle

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

Indicateurs de statut clés à surveiller :

  1. Statut du déploiement

    • Rechercher Status.State : Devrait afficher DeploymentComplete

    • Vérifiez Status.Deployment Status.Available Replicas

    • Surveiller Status.Conditions la progression du déploiement

  2. SageMaker État du point de terminaison AI

    • Vérifiez Status.Endpoints.Sagemaker.State : Devrait s'afficher CreationCompleted

    • Vérifiez Status.Endpoints.Sagemaker.Endpoint Arn

  3. État du certificat TLS

    • Afficher les Status.Tls Certificate détails

    • Vérifiez l'expiration du certificat dans Last Cert Expiry Time

Méthode 2 : vérifier la configuration du point de terminaison d'inférence

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

Le statut commun stipule :

  • DeploymentInProgress: Phase de déploiement initiale

  • DeploymentComplete: Déploiement réussi

  • Failed: échec du déploiement

Note

Surveillez la section Événements pour détecter tout avertissement ou erreur. Vérifiez que le nombre de répliques correspond à la configuration attendue. Vérifiez que toutes les conditions sont réunies Status: True pour garantir le bon déroulement du déploiement.

Problème d'autorisation VPC ENI

SageMaker La création d'un point de terminaison AI échoue en raison d'autorisations insuffisantes pour créer des interfaces réseau dans un VPC.

Message d’erreur:

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

Cause première :

Le rôle d'exécution de l'opérateur d'inférence ne dispose pas de l' EC2 autorisation Amazon requise pour créer des interfaces réseau (ENI) dans un VPC.

Résolution :

Ajoutez l'autorisation IAM suivante au rôle d'exécution de l'opérateur d'inférence :

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

Vérification :

Après avoir ajouté l'autorisation :

  1. Supprimer le point de terminaison défaillant (s'il existe)

  2. Réessayez de créer le point de terminaison

  3. Surveillez l'état du déploiement pour s'assurer qu'il est terminé avec succès

Note

Cette autorisation est essentielle pour les points de terminaison SageMaker AI exécutés en mode VPC. Assurez-vous que le rôle d'exécution dispose également de toutes les autres autorisations nécessaires liées au VPC.

Problème de relation de confiance entre IAM

HyperPod L'opérateur d'inférence ne démarre pas avec une AssumeRoleWithWebIdentity erreur STS, ce qui indique un problème de configuration de la relation de confiance IAM.

Message d’erreur:

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

Résolution :

Mettez à jour la relation de confiance du rôle d'exécution IAM de l'opérateur d'inférence avec la configuration suivante.

Remplacez les espaces réservés suivants :

  • <ACCOUNT_ID>: votre identifiant AWS de compte

  • <REGION>: Votre AWS région

  • <OIDC_ID>: ID du fournisseur OIDC de votre cluster 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" } ] }

Vérification :

Après avoir mis à jour la relation de confiance :

  1. Vérifiez la configuration des rôles dans la console IAM

  2. Redémarrez l'opérateur d'inférence si nécessaire

  3. Surveillez les journaux des opérateurs pour un démarrage réussi

Erreur du plugin GPU NVIDIA manquant

Le déploiement du modèle échoue avec une erreur d'insuffisance du GPU malgré la disponibilité de nœuds GPU. Cela se produit lorsque le plug-in de périphérique NVIDIA n'est pas installé dans le HyperPod cluster.

Message d’erreur:

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.

Cause première :

  • Kubernetes ne peut pas détecter les ressources du GPU sans le plug-in pour appareil NVIDIA

  • Cela entraîne des échecs de planification pour les charges de travail du GPU

Résolution :

Installez le plug-in GPU NVIDIA en exécutant :

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

Étapes de vérification :

  1. Vérifiez l'état du déploiement du plugin :

    kubectl get pods -n kube-system | grep nvidia-device-plugin
  2. Vérifiez que les ressources du GPU sont désormais visibles :

    kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\\.com/gpu
  3. Réessayer le déploiement du modèle

Note

Assurez-vous que les pilotes NVIDIA sont installés sur les nœuds GPU. L'installation du plugin s'effectue une seule fois par cluster. L'installation peut nécessiter des privilèges d'administrateur du cluster.

L'opérateur d'inférence ne démarre pas

Le module de l'opérateur d'inférence n'a pas pu démarrer et est à l'origine du message d'erreur suivant. Cette erreur est due à la politique d'autorisation selon laquelle le rôle d'exécution de l'opérateur n'est pas autorisé à exécutersts:AssumeRoleWithWebIdentity. De ce fait, la partie opérateur exécutée sur le plan de commande n'est pas démarrée.

Message d’erreur:

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)

Cause première :

  • La politique d'autorisation du rôle d'exécution de l'opérateur d'inférence n'est pas définie pour accéder au jeton d'autorisation pour les ressources.

Résolution :

Définissez la politique suivante concernant le rôle d'exécution de EXECUTION_ROLE_ARN pour l'opérateur d' HyperPod inférence :

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": "*" } ] }

Étapes de vérification :

  1. Modifiez la stratégie.

  2. Arrêtez le module de l'opérateur d' HyperPod inférence.

  3. Le pod sera redémarré sans aucune exception.