HyperPod Fehlerbehebung bei Inferenzen - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

HyperPod Fehlerbehebung bei Inferenzen

In diesem Leitfaden zur Fehlerbehebung werden häufig auftretende Probleme behandelt, die bei der Bereitstellung und dem Betrieb von SageMaker HyperPod KI-Inferenzen auftreten können. Zu diesen Problemen gehören in der Regel VPC-Netzwerkkonfiguration, IAM-Berechtigungen, Kubernetes-Ressourcenmanagement und Probleme mit der Betreiberkonnektivität, die eine erfolgreiche Modellbereitstellung verhindern oder dazu führen können, dass Bereitstellungen fehlschlagen oder im Status „Ausstehend“ verbleiben.

In diesem Leitfaden zur Fehlerbehebung wird die folgende Terminologie verwendet: Schritte zur Fehlerbehebung sind Diagnoseverfahren zur Identifizierung und Untersuchung von Problemen, Lösung enthält die spezifischen Maßnahmen zur Behebung identifizierter Probleme und Verifizierung bestätigt, dass die Lösung ordnungsgemäß funktioniert hat.

Timeout beim Herunterladen von Zertifikaten

Bei der Bereitstellung eines SageMaker KI-Endpunkts schlägt der Erstellungsprozess fehl, da das Zertifikat der Zertifizierungsstelle (CA) in einer VPC-Umgebung nicht heruntergeladen werden kann. Ausführliche Konfigurationsschritte finden Sie im Administratorhandbuch.

Fehlermeldung:

Der folgende Fehler wird in den SageMaker CloudWatch AI-Endpunktprotokollen angezeigt:

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

Grundursache:

  • Dieses Problem tritt auf, wenn der Inferenzoperator nicht auf das selbstsignierte Zertifikat in Amazon S3 in Ihrer VPC zugreifen kann.

  • Die richtige Konfiguration des Amazon S3 S3-VPC-Endpunkts ist für den Zertifikatszugriff unerlässlich.

Auflösung

  1. Wenn Sie keinen Amazon S3 S3-VPC-Endpunkt haben:

    • Erstellen Sie einen Amazon S3 S3-VPC-Endpunkt gemäß der Konfiguration in Abschnitt 5.3 des Admin-Handbuchs.

  2. Wenn Sie bereits einen Amazon S3 S3-VPC-Endpunkt haben:

    • Stellen Sie sicher, dass die Subnetz-Routentabelle so konfiguriert ist, dass sie auf den VPC-Endpunkt verweist (wenn Sie den Gateway-Endpunkt verwenden) oder dass privates DNS für den Schnittstellenendpunkt aktiviert ist.

    • Der Amazon S3 S3-VPC-Endpunkt sollte der Konfiguration ähneln, die in Abschnitt 5.3 Schritt zur Endpunkterstellung erwähnt wurde

Die Modellbereitstellung blieb im Status „Ausstehend“ hängen

Bei der Bereitstellung eines Modells verbleibt die Bereitstellung über einen längeren Zeitraum im Status „Ausstehend“. Dies weist darauf hin, dass der Inferenzoperator die Modellbereitstellung in Ihrem HyperPod Cluster nicht initiieren kann.

Betroffene Komponenten:

Während der normalen Bereitstellung sollte der Inferenzoperator:

  • Model Pod bereitstellen

  • Einen Load Balancer erstellen

  • SageMaker KI-Endpunkt erstellen

Schritte zur Fehlerbehebung:

  1. Überprüfen Sie den Pod-Status des Inferenz-Operators:

    kubectl get pods -n hyperpod-inference-system

    Beispiel für eine erwartete Ausgabe:

    NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h
  2. Überprüfen Sie die Protokolle der Inferenzoperatoren und überprüfen Sie die Operatorprotokolle auf Fehlermeldungen:

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

Worauf Sie achten sollten:

  • Fehlermeldungen in den Bedienerprotokollen

  • Status des Bediener-Pods

  • Alle Warnungen oder Fehler im Zusammenhang mit der Bereitstellung

Anmerkung

Bei einer fehlerfreien Bereitstellung sollte der Status „Ausstehend“ innerhalb eines angemessenen Zeitraums überschritten werden. Falls die Probleme weiterhin bestehen, überprüfen Sie die Protokolle der Inferenzoperatoren auf spezifische Fehlermeldungen, um die Ursache zu ermitteln.

Die Modellbereitstellung ist fehlgeschlagen, Status „Fehlerbehebung“

Wenn eine Modellbereitstellung in den Status „Fehlgeschlagen“ übergeht, kann der Fehler in einer von drei Komponenten auftreten:

  • Bereitstellung eines Modell-Pods

  • Erstellung eines Load Balancers

  • SageMaker Erstellung von KI-Endpunkten

Schritte zur Fehlerbehebung:

  1. Überprüfen Sie den Status des Inferenzoperators:

    kubectl get pods -n hyperpod-inference-system

    Erwartete Ausgabe:

    NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h
  2. Überprüfen Sie die Operatorprotokolle:

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

Worauf Sie achten sollten:

In den Benutzerprotokollen wird angegeben, welche Komponente ausgefallen ist:

  • Fehler bei der Bereitstellung des Modell-Pods

  • Probleme bei der Erstellung des Load Balancers

  • SageMaker Fehler an KI-Endpunkten

Überprüfung des Fortschritts der Modellbereitstellung

Um den Fortschritt Ihrer Modellbereitstellung zu überwachen und potenzielle Probleme zu identifizieren, können Sie kubectl-Befehle verwenden, um den Status verschiedener Komponenten zu überprüfen. Auf diese Weise können Sie feststellen, ob die Bereitstellung normal verläuft oder ob bei der Erstellung des Modell-Pods, beim Load Balancer-Setup oder bei der Konfiguration der SageMaker KI-Endgeräte Probleme aufgetreten sind.

Methode 1: Überprüfen Sie den Modellstatus JumpStart

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

Wichtige zu überwachende Statusindikatoren:

  1. Bereitstellungsstatus

    • Suchen Sie nachStatus.State: Sollte angezeigt werden DeploymentComplete

    • Prüfen Status.Deployment Status.Available Replicas

    • Überwachen Sie Status.Conditions den Fortschritt der Bereitstellung

  2. SageMaker Status des KI-Endpunkts

    • PrüfenStatus.Endpoints.Sagemaker.State: Sollte angezeigt werden CreationCompleted

    • Verifizieren Status.Endpoints.Sagemaker.Endpoint Arn

  3. Status des TLS-Zertifikats

    • Status.Tls CertificateEinzelheiten anzeigen

    • Überprüfen Sie den Ablauf des Zertifikats in Last Cert Expiry Time

Methode 2: Überprüfen Sie die Konfiguration des Inferenzendpunkts

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

Allgemeine Statuszustände:

  • DeploymentInProgress: Erste Bereitstellungsphase

  • DeploymentComplete: Erfolgreicher Einsatz

  • Failed: Die Bereitstellung ist fehlgeschlagen

Anmerkung

Überwachen Sie den Abschnitt Ereignisse auf Warnungen oder Fehler. Prüfen Sie, ob die Anzahl der Replikate der erwarteten Konfiguration entspricht. Stellen Sie sicher, dass alle Bedingungen Status: True für eine fehlerfreie Bereitstellung vorliegen.

Problem mit der VPC-ENI-Berechtigung

SageMaker Die Erstellung von KI-Endpunkten schlägt fehl, da die Berechtigungen zum Erstellen von Netzwerkschnittstellen in VPC nicht ausreichen.

Fehlermeldung:

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

Grundursache:

Der Ausführungsrolle des Inferenzoperators fehlt die erforderliche EC2 Amazon-Berechtigung zum Erstellen von Netzwerkschnittstellen (ENI) in VPC.

Auflösung

Fügen Sie der Ausführungsrolle des Inferenzoperators die folgende IAM-Berechtigung hinzu:

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

Überprüfung:

Nach dem Hinzufügen der Erlaubnis:

  1. Löschen Sie den ausgefallenen Endpunkt (falls vorhanden)

  2. Versuchen Sie erneut, den Endpunkt zu erstellen

  3. Überwachen Sie den Bereitstellungsstatus, um den erfolgreichen Abschluss sicherzustellen

Anmerkung

Diese Berechtigung ist für SageMaker KI-Endpunkte, die im VPC-Modus ausgeführt werden, unerlässlich. Stellen Sie sicher, dass die Ausführungsrolle auch über alle anderen erforderlichen VPC-bezogenen Berechtigungen verfügt.

Problem mit der IAM-Vertrauensbeziehung

HyperPod Der Inferenzoperator startet nicht mit einem AssumeRoleWithWebIdentity STS-Fehler, was auf ein Problem mit der Konfiguration der IAM-Vertrauensbeziehung hinweist.

Fehlermeldung:

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

Auflösung

Aktualisieren Sie die Vertrauensstellung der IAM-Ausführungsrolle des Inferenzoperators mit der folgenden Konfiguration.

Ersetzen die folgenden Platzhalter:

  • <ACCOUNT_ID>: Ihre Konto-ID AWS

  • <REGION>: Deine AWS Region

  • <OIDC_ID>: Die OIDC-Anbieter-ID Ihres Amazon EKS-Clusters

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

Überprüfung:

Nach der Aktualisierung der Vertrauensbeziehung:

  1. Überprüfen Sie die Rollenkonfiguration in der IAM-Konsole

  2. Starten Sie den Inferenzoperator bei Bedarf neu

  3. Überwachen Sie die Operatorprotokolle für einen erfolgreichen Start

Fehler beim fehlenden NVIDIA-GPU-Plugin

Die Modellbereitstellung schlägt mit einem GPU-Insuffizienzfehler fehl, obwohl GPU-Knoten verfügbar sind. Dies tritt auf, wenn das NVIDIA-Geräte-Plug-In nicht im HyperPod Cluster installiert ist.

Fehlermeldung:

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.

Grundursache:

  • Kubernetes kann ohne das NVIDIA-Geräte-Plugin keine GPU-Ressourcen erkennen

  • Führt zu Planungsfehlern für GPU-Workloads

Auflösung

Installieren Sie das NVIDIA-GPU-Plug-In, indem Sie Folgendes ausführen:

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

Schritte zur Überprüfung:

  1. Überprüfen Sie den Status der Plugin-Bereitstellung:

    kubectl get pods -n kube-system | grep nvidia-device-plugin
  2. Stellen Sie sicher, dass die GPU-Ressourcen jetzt sichtbar sind:

    kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\\.com/gpu
  3. Versuchen Sie erneut, das Modell bereitzustellen

Anmerkung

Stellen Sie sicher, dass die NVIDIA-Treiber auf den GPU-Knoten installiert sind. Die Plugin-Installation ist ein einmaliges Setup pro Cluster. Für die Installation sind möglicherweise Cluster-Administratorrechte erforderlich.

Der Inferenzoperator kann nicht gestartet werden

Der Inferenzoperator-Pod konnte nicht gestartet werden und verursacht die folgende Fehlermeldung. Dieser Fehler ist darauf zurückzuführen, dass die Berechtigungsrichtlinie für die Operator-Ausführungsrolle nicht autorisiert ist. sts:AssumeRoleWithWebIdentity Aus diesem Grund wird der Operatorteil, der auf der Steuerungsebene ausgeführt wird, nicht gestartet.

Fehlermeldung:

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)

Grundursache:

  • Die Berechtigungsrichtlinie der Ausführungsrolle des Inferenzoperators ist nicht auf den Zugriff auf das Autorisierungstoken für Ressourcen festgelegt.

Auflösung

Legen Sie die folgende Richtlinie für die Ausführungsrolle EXECUTION_ROLE_ARN für den HyperPod Inferenzoperator fest:

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

Schritte zur Überprüfung:

  1. Ändern der Richtlinie

  2. Beenden Sie den HyperPod Inferenzoperator-Pod.

  3. Der Pod wird neu gestartet, ohne dass Ausnahmen ausgelöst werden.