HyperPod risoluzione dei problemi di inferenza - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

HyperPod risoluzione dei problemi di inferenza

Questa guida alla risoluzione dei problemi affronta i problemi più comuni che possono verificarsi durante l'implementazione e il HyperPod funzionamento dell'inferenza SageMaker AI. Questi problemi riguardano in genere la configurazione della rete VPC, le autorizzazioni IAM, la gestione delle risorse Kubernetes e i problemi di connettività degli operatori che possono impedire la corretta implementazione del modello o causare il fallimento delle implementazioni o il mantenimento di stati in sospeso.

Questa guida alla risoluzione dei problemi utilizza la seguente terminologia: le procedure di risoluzione dei problemi sono procedure diagnostiche per identificare e analizzare i problemi, Resolution fornisce le azioni specifiche per risolvere i problemi identificati e Verification conferma che la soluzione ha funzionato correttamente.

Timeout per il download del certificato

Quando si implementa un endpoint SageMaker AI, il processo di creazione fallisce a causa dell'impossibilità di scaricare il certificato dell'autorità di certificazione (CA) in un ambiente VPC. Per i passaggi di configurazione dettagliati, consulta la guida per l'amministratore.

Messaggio di errore:

Il seguente errore appare nei CloudWatch log degli endpoint SageMaker AI:

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

Causa principale:

  • Questo problema si verifica quando l'operatore di inferenza non può accedere al certificato autofirmato in Amazon S3 all'interno del tuo VPC.

  • La corretta configurazione dell'endpoint VPC Amazon S3 è essenziale per l'accesso ai certificati

Risoluzione:

  1. Se non disponi di un endpoint VPC Amazon S3:

  2. Se disponi già di un endpoint VPC Amazon S3:

    • Assicurati che la tabella di routing della sottorete sia configurata per puntare all'endpoint VPC (se si utilizza un endpoint gateway) o che il DNS privato sia abilitato per l'endpoint di interfaccia.

    • L'endpoint VPC di Amazon S3 dovrebbe essere simile alla configurazione menzionata nella sezione 5.3 (fase di creazione dell'endpoint)

Distribuzione del modello bloccata in sospeso

Quando si distribuisce un modello, la distribuzione rimane nello stato «In sospeso» per un periodo prolungato. Ciò indica che l'operatore di inferenza non è in grado di avviare la distribuzione del modello nel cluster. HyperPod

Componenti interessati:

Durante la normale implementazione, l'operatore di inferenza deve:

  • Implementare un pod modello

  • Creazione di un sistema di bilanciamento del carico

  • Crea un SageMaker endpoint AI

Fasi di risoluzione dei problemi:

  1. Controlla lo stato del pod dell'operatore di inferenza:

    kubectl get pods -n hyperpod-inference-system

    Esempio di output previsto:

    NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h
  2. Esamina i registri degli operatori di inferenza ed esamina i registri degli operatori per verificare la presenza di messaggi di errore:

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

Cosa cercare:

  • Messaggi di errore nei registri degli operatori

  • Stato del pod dell'operatore

  • Eventuali avvisi o guasti relativi all'implementazione

Nota

Una distribuzione efficace dovrebbe andare oltre lo stato «In sospeso» entro un periodo di tempo ragionevole. Se i problemi persistono, esamina i registri degli operatori di inferenza per individuare messaggi di errore specifici per determinare la causa principale.

Risoluzione dei problemi relativi allo stato di distribuzione del modello

Quando l'implementazione di un modello entra in uno stato «Non riuscito», l'errore può verificarsi in uno dei tre componenti:

  • Implementazione del modello pod

  • Creazione di sistemi di bilanciamento del carico

  • SageMaker Creazione di endpoint AI

Fasi di risoluzione dei problemi:

  1. Controlla lo stato dell'operatore di inferenza:

    kubectl get pods -n hyperpod-inference-system

    Output previsto:

    NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h
  2. Esamina i registri dell'operatore:

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

Cosa cercare:

I registri dell'operatore indicheranno quale componente è guasto:

  • Errori di distribuzione del pod del modello

  • Problemi di creazione del sistema di bilanciamento del carico

  • SageMaker Errori degli endpoint AI

Verifica dell'avanzamento dell'implementazione del modello

Per monitorare l'avanzamento della distribuzione del modello e identificare potenziali problemi, è possibile utilizzare i comandi kubectl per controllare lo stato dei vari componenti. Questo aiuta a determinare se l'implementazione sta procedendo normalmente o se ha riscontrato problemi durante la creazione del pod modello, la configurazione del load balancer o SageMaker le fasi di configurazione degli endpoint AI.

Metodo 1: verifica dello stato del modello JumpStart

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

Principali indicatori di stato da monitorare:

  1. Stato dell'implementazione

    • CercaStatus.State: Dovrebbe mostrare DeploymentComplete

    • Controlla Status.Deployment Status.Available Replicas

    • Monitora Status.Conditions l'avanzamento dell'implementazione

  2. SageMaker Stato dell'endpoint AI

    • VerificaStatus.Endpoints.Sagemaker.State: dovrebbe apparire CreationCompleted

    • Verifica Status.Endpoints.Sagemaker.Endpoint Arn

  3. Stato del certificato TLS

    • Visualizza dettagli Status.Tls Certificate

    • Verifica la scadenza del certificato in Last Cert Expiry Time

Metodo 2: verifica la configurazione dell'endpoint di inferenza

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

Stati di stato comuni:

  • DeploymentInProgress: Fase iniziale di implementazione

  • DeploymentComplete: Implementazione riuscita

  • Failed: distribuzione non riuscita

Nota

Monitora la sezione Eventi per eventuali avvisi o errori. Verifica che il numero di repliche corrisponda alla configurazione prevista. Verifica tutte le condizioni indicate Status: True per una distribuzione corretta.

Rilascio dell'autorizzazione VPC ENI

SageMaker La creazione di endpoint AI non riesce a causa delle autorizzazioni insufficienti per la creazione di interfacce di rete in VPC.

Messaggio di errore:

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

Causa principale:

Il ruolo di esecuzione dell'operatore di inferenza non dispone dell' EC2 autorizzazione Amazon richiesta per creare interfacce di rete (ENI) in VPC.

Risoluzione:

Aggiungi la seguente autorizzazione IAM al ruolo di esecuzione dell'operatore di inferenza:

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

Verifica:

Dopo aver aggiunto l'autorizzazione:

  1. Elimina l'endpoint fallito (se esiste)

  2. Riprova a creare l'endpoint

  3. Monitora lo stato della distribuzione per garantirne il corretto completamento

Nota

Questa autorizzazione è essenziale per gli endpoint SageMaker AI in esecuzione in modalità VPC. Assicurati che il ruolo di esecuzione disponga anche di tutte le altre autorizzazioni necessarie relative al VPC.

Problema di relazione fiduciaria IAM

HyperPod l'operatore di inferenza non riesce a iniziare con un AssumeRoleWithWebIdentity errore STS, il che indica un problema di configurazione della relazione di fiducia IAM.

Messaggio di errore:

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

Risoluzione:

Aggiorna la relazione di trust del ruolo di esecuzione IAM dell'operatore di inferenza con la seguente configurazione.

Sostituire i seguenti segnaposto:

  • <ACCOUNT_ID>: L'ID del tuo AWS account

  • <REGION>: La tua AWS regione

  • <OIDC_ID>: ID provider OIDC del tuo 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" } ] }

Verifica:

Dopo aver aggiornato la relazione di fiducia:

  1. Verifica la configurazione del ruolo nella console IAM

  2. Se necessario, riavvia l'operatore di inferenza

  3. Monitora i registri degli operatori per un avvio corretto

Errore mancante del plug-in GPU NVIDIA

L'implementazione del modello non riesce a causa di un errore di insufficienza della GPU nonostante siano disponibili nodi GPU. Ciò si verifica quando il plug-in del dispositivo NVIDIA non è installato nel cluster. HyperPod

Messaggio di errore:

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 principale:

  • Kubernetes non è in grado di rilevare le risorse della GPU senza il plug-in del dispositivo NVIDIA

  • Provoca errori di pianificazione per i carichi di lavoro della GPU

Risoluzione:

Installa il plug-in GPU NVIDIA eseguendo:

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

Passaggi di verifica:

  1. Controlla lo stato di distribuzione del plugin:

    kubectl get pods -n kube-system | grep nvidia-device-plugin
  2. Verifica che le risorse della GPU siano ora visibili:

    kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\\.com/gpu
  3. Riprova la distribuzione del modello

Nota

Assicurati che i driver NVIDIA siano installati sui nodi GPU. L'installazione del plugin è una configurazione unica per cluster. Potrebbe richiedere i privilegi di amministratore del cluster per l'installazione.

L'operatore di inferenza non si avvia

Il pod dell'operatore di inferenza non è stato avviato e causa il seguente messaggio di errore. Questo errore è dovuto alla politica di autorizzazione relativa al ruolo di esecuzione dell'operatore che non è autorizzato a svolgerests:AssumeRoleWithWebIdentity. Per questo motivo, la parte dell'operatore che gira sul piano di controllo non viene avviata.

Messaggio di errore:

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 principale:

  • La politica di autorizzazione del ruolo di esecuzione dell'operatore di inferenza non è impostata per accedere al token di autorizzazione per le risorse.

Risoluzione:

Imposta la seguente politica del ruolo di esecuzione di EXECUTION_ROLE_ARN per l'operatore di HyperPod inferenza:

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

Fasi di verifica:

  1. Modifica la politica.

  2. Termina il pod dell'operatore di HyperPod inferenza.

  3. Il pod verrà riavviato senza generare eccezioni.