View a markdown version of this page

SageMaker HyperPod Handbuch zu Amazon Essential Commands - Amazon Nova

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.

SageMaker HyperPod Handbuch zu Amazon Essential Commands

Amazon SageMaker HyperPod bietet umfangreiche Befehlszeilenfunktionen für die Verwaltung von Trainingsabläufen. In diesem Handbuch werden wichtige Befehle für gängige Operationen behandelt, von der Verbindung zu Ihrem Cluster bis hin zur Überwachung des Auftragsfortschritts.

Voraussetzungen

Bevor Sie diese Befehle verwenden, stellen Sie sicher, dass Sie das folgende Setup abgeschlossen haben:

  • SageMaker HyperPod Cluster mit erstelltem RIG (normalerweise in us-east-1)

  • Ausgabe: Amazon S3-Bucket, der für das Training von Artefakten erstellt wurde

  • IAM-Rollen, die mit den entsprechenden Berechtigungen konfiguriert sind

  • Trainingsdaten wurden im richtigen JSONL-Format hochgeladen

  • Die FSx for Lustre-Synchronisierung ist abgeschlossen (überprüfen Sie dies in den Cluster-Protokollen beim ersten Job)

Recipe CLI wird installiert

Navigieren Sie zum Stammverzeichnis Ihres Rezept-Repositorys, bevor Sie den Installationsbefehl ausführen.

Verwenden Sie das Hyperpodrecipes-Repository, wenn Sie andere Anpassungstechniken verwenden. Für Forge-basierte Anpassungen wenden Sie sich an das Forge-spezifische Rezept-Repository.

Führen Sie die folgenden Befehle aus, um die CLI zu installieren: SageMaker HyperPod

Anmerkung

Stellen Sie sicher, dass Sie sich nicht in einer aktiven Conda/Anaconda/Miniconda Umgebung oder einer anderen virtuellen Umgebung befinden

Wenn ja, verlassen Sie bitte die Umgebung mit:

  • conda deactivatefür Conda/Anaconda/Miniconda Umgebungen

  • deactivatefür virtuelle Python-Umgebungen

Wenn Sie eine Non-Forge-Anpassungstechnik verwenden, laden Sie die Sagemaker-Hyperpod-Rezepte wie unten gezeigt herunter:

git clone -b release_v2 https://github.com/aws/sagemaker-hyperpod-cli.git cd sagemaker-hyperpod-cli pip install -e . cd .. root_dir=$(pwd) export PYTHONPATH=${root_dir}/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nemo/nemo_framework_launcher/launcher_scripts:$PYTHONPATH curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh rm -f ./get_helm.sh

Wenn Sie ein Forge-Abonnent sind, sollten Sie die Rezepte mithilfe des unten angegebenen Verfahrens herunterladen.

mkdir NovaForgeHyperpodCLI cd NovaForgeHyperpodCLI aws s3 cp s3://nova-forge-c7363-206080352451-us-east-1/v1/ ./ --recursive pip install -e . curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh rm -f ./get_helm.sh
Tipp

Um vor der Ausführung eine neue virtuelle Umgebung zu verwendenpip install -e ., führen Sie Folgendes aus:

  • python -m venv nova_forge

  • source nova_forge/bin/activate

  • Ihre Befehlszeile wird jetzt (nova_forge) am Anfang Ihrer Eingabeaufforderung angezeigt

  • Dadurch wird sichergestellt, dass bei der Verwendung der CLI keine konkurrierenden Abhängigkeiten bestehen

Zweck: Warum tun wir daspip install -e .?

Mit diesem Befehl wird die SageMaker HyperPod CLI im bearbeitbaren Modus installiert, sodass Sie aktualisierte Rezepte verwenden können, ohne sie jedes Mal neu installieren zu müssen. Außerdem können Sie damit neue Rezepte hinzufügen, die von der CLI automatisch übernommen werden können.

Verbindungsaufbau mit Ihrem Cluster

Verbinden Sie die SageMaker HyperPod CLI mit Ihrem Cluster, bevor Sie Jobs ausführen:

export AWS_REGION=us-east-1 && hyperpod connect-cluster --cluster-name <your-cluster-name> --region us-east-1
Wichtig

Mit diesem Befehl wird eine Kontextdatei (/tmp/hyperpod_context.json) erstellt, die für nachfolgende Befehle erforderlich ist. Wenn Sie eine Fehlermeldung erhalten, dass diese Datei nicht gefunden wurde, führen Sie den Befehl connect erneut aus.

Profi-Tipp: Sie können Ihren Cluster weiter so konfigurieren, dass er immer den kubeflow Namespace verwendet, indem Sie das --namespace kubeflow Argument wie folgt zu Ihrem Befehl hinzufügen:

export AWS_REGION=us-east-1 && \ hyperpod connect-cluster \ --cluster-name <your-cluster-name> \ --region us-east-1 \ --namespace kubeflow

Das erspart Ihnen die Mühe, das -n kubeflow in jedem Befehl hinzuzufügen, wenn Sie mit Ihren Jobs interagieren.

Einen Trainingsjob beginnen

Anmerkung

Wenn Sie PPO/RFT Jobs ausführen, stellen Sie sicher, dass Sie Label-Selector-Einstellungen zu hinzufügen, src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/cluster/k8s.yaml damit alle Pods auf demselben Knoten geplant werden.

label_selector: required: sagemaker.amazonaws.com/instance-group-name: - <rig_group>

Starten Sie einen Trainingsjob mithilfe eines Rezepts mit optionalen Parameterüberschreibungen:

hyperpod start-job -n kubeflow \ --recipe fine-tuning/nova/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_p4d_gpu_lora_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest" }'

Erwartete Ausgabe:

Final command: python3 <path_to_your_installation>/NovaForgeHyperpodCLI/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=fine-tuning/nova/nova_micro_p5_gpu_sft cluster_type=k8s cluster=k8s base_results_dir=/local/home/<username>/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" container="708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-SFT-DATAMIX-latest" Prepared output directory at /local/home/<username>/results/<job-name>/k8s_templates Found credentials in shared credentials file: ~/.aws/credentials Helm script created at /local/home/<username>/results/<job-name>/<job-name>_launch.sh Running Helm script: /local/home/<username>/results/<job-name>/<job-name>_launch.sh NAME: <job-name> LAST DEPLOYED: Mon Sep 15 20:56:50 2025 NAMESPACE: kubeflow STATUS: deployed REVISION: 1 TEST SUITE: None Launcher successfully generated: <path_to_your_installation>/NovaForgeHyperpodCLI/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nova/k8s_templates/SFT { "Console URL": "https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/cluster-management/<your-cluster-name>" }

Jobstatus wird überprüft

Überwachen Sie Ihre laufenden Jobs mit kubectl:

kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep <your-job-name>)
Grundlegendes zum Pod-Status

In der folgenden Tabelle werden allgemeine Pod-Status erklärt:

Status

Description

Pending

Der Pod wurde akzeptiert, aber noch nicht auf einem Knoten eingeplant, oder er wartet darauf, dass Container-Images abgerufen werden

Running

Pod, der an einen Knoten gebunden ist, auf dem mindestens ein Container läuft oder startet

Succeeded

Alle Container wurden erfolgreich abgeschlossen und werden nicht neu gestartet

Failed

Alle Container wurden beendet, wobei mindestens einer mit einem Fehler endete

Unknown

Der Pod-Status kann nicht bestimmt werden (normalerweise aufgrund von Problemen mit der Knotenkommunikation)

CrashLoopBackOff

Der Container fällt wiederholt aus; Kubernetes macht bei Neustartversuchen einen Rückzieher

ImagePullBackOff / ErrImagePull

Das Container-Image kann nicht aus der Registrierung abgerufen werden

OOMKilled

Der Container wurde wegen Überschreitung der Speichergrenzen beendet

Completed

Job oder Pod wurde erfolgreich abgeschlossen (Batch-Job-Abschluss)

Tipp

Verwenden Sie die -w Flagge, um Pod-Statusaktualisierungen in Echtzeit zu verfolgen. Drücken SieCtrl+C, um das Ansehen zu beenden.

Überwachung von Jobprotokollen

Sie können Ihre Logs auf drei Arten einsehen:

Verwenden CloudWatch

Ihre Protokolle sind in Ihrem AWS Konto verfügbar, unter dem sich der Hyperpodcluster befindet. CloudWatch Um sie in Ihrem Browser anzuzeigen, navigieren Sie zur CloudWatch Startseite in Ihrem Konto und suchen Sie nach Ihrem Cluster-Namen. Wenn Ihr Cluster beispielsweise genannt würde, hätte my-hyperpod-rig die Log-Gruppe das Präfix:

  • Protokollgruppe: /aws/sagemaker/Clusters/my-hyperpod-rig/{UUID}

  • Sobald Sie in der Protokollgruppe sind, können Sie Ihr spezifisches Protokoll anhand der Knoteninstanz-ID wie - findenhyperpod-i-00b3d8a1bf25714e4.

    • i-00b3d8a1bf25714e4hier steht für den Hyperpodfreundlichen Computernamen, auf dem Ihr Trainingsjob ausgeführt wird. Erinnern Sie sich daran, wie wir in der vorherigen kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-cpt-run) Befehlsausgabe eine Spalte mit dem Namen NODE erfasst haben.

    • Der „Master“ -Knotenlauf lief in diesem Fall auf Hyperpod- i-00b3d8a1bf25714e4 und daher verwenden wir diese Zeichenfolge, um die anzuzeigende Protokollgruppe auszuwählen. Wählen Sie den aus, der sagt SagemakerHyperPodTrainingJob/rig-group/[NODE]

CloudWatch Insights verwenden

Wenn Sie Ihren Jobnamen griffbereit haben und nicht alle oben genannten Schritte ausführen möchten, können Sie einfach alle Protokolle unter abfragen, /aws/sagemaker/Clusters/my-hyperpod-rig/{UUID} um das einzelne Protokoll zu finden.

CPT:

fields @timestamp, @message, @logStream, @log | filter @message like /(?i)Starting CPT Job/ | sort @timestamp desc | limit 100

Für die Erledigung des Auftrags Starting CPT Job ersetzen durch CPT Job completed

Dann können Sie sich durch die Ergebnisse klicken und den Knoten mit der Aufschrift „Epoche 0" auswählen, da dies Ihr Master-Knoten sein wird.

Verwendung der AWS CLI

Sie können wählen, ob Sie Ihre Protokolle mit dem verfolgen möchten. AWS CLI Bevor Sie dies tun, überprüfen Sie bitte Ihre AWS CLI Version mitaws --version. Es wird auch empfohlen, dieses Utility-Skript zu verwenden, das beim Live-Log-Tracking in Ihrem Terminal hilft

für V1:

aws logs get-log-events \ --log-group-name /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --start-from-head | jq -r '.events[].message'

für V2:

aws logs tail /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --since 10m \ --follow

Aktive Jobs auflisten

Sehen Sie sich alle Jobs an, die in Ihrem Cluster ausgeführt werden:

hyperpod list-jobs -n kubeflow

Beispielausgabe:

{ "jobs": [ { "Name": "test-run-nhgza", "Namespace": "kubeflow", "CreationTime": "2025-10-29T16:50:57Z", "State": "Running" } ] }

Stornieren eines Auftrags

Stoppen Sie einen laufenden Job jederzeit:

hyperpod cancel-job --job-name <job-name> -n kubeflow
Finden Sie Ihren Jobnamen

Option 1: Aus deinem Rezept

Der Jobname ist im run Block Ihres Rezepts angegeben:

run: name: "my-test-run" # This is your job name model_type: "amazon.nova-micro-v1:0:128k" ...

Option 2: Aus dem Befehl list-jobs

Verwenden hyperpod list-jobs -n kubeflow und kopieren Sie das Name Feld aus der Ausgabe.

Einen Evaluierungsjob ausführen

Evaluieren Sie ein trainiertes Modell oder Basismodell mithilfe eines Bewertungsrezepts.

Voraussetzungen

Stellen Sie vor der Ausführung von Evaluierungsaufträgen sicher, dass Sie über Folgendes verfügen:

  • Überprüfen Sie die Amazon S3-URI aus der manifest.json Datei Ihres Trainingsauftrags (für trainierte Modelle)

  • Der Bewertungsdatensatz wurde im richtigen Format auf Amazon S3 hochgeladen

  • Geben Sie den Amazon S3-Pfad für die Bewertungsergebnisse aus

Befehl

Führen Sie den folgenden Befehl aus, um einen Evaluierungsauftrag zu starten:

hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_2_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'

Beschreibungen der Parameter:

  • recipes.run.name: Eindeutiger Name für Ihren Bewertungsauftrag

  • recipes.run.model_name_or_path: Amazon S3-URI aus dem manifest.json Pfad des Basismodells (z. B.nova-micro/prod)

  • recipes.run.output_s3_path: Amazon S3-Standort für Evaluierungsergebnisse

  • recipes.run.data_s3_path: Amazon S3-Speicherort Ihres Bewertungsdatensatzes

Tipps:

  • Model-specific Rezepte: Jede Modellgröße (Micro, Lite, Pro) hat ihr eigenes Bewertungsrezept

  • Bewertung des Basismodells: Verwenden Sie Basismodellpfade (z. B.nova-micro/prod) anstelle von Checkpoint-URIs, um Basismodelle zu evaluieren

Format der Evaluierungsdaten

Eingabeformat (JSONL):

{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }

Ausgabeformat:

{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }

Beschreibungen der Felder:

  • prompt: Formatierte Eingabe, die an das Modell gesendet wurde

  • inference: Die generierte Antwort des Modells

  • gold: Erwartete korrekte Antwort aus dem Eingabedatensatz

  • metadata: Optionale Metadaten, die aus der Eingabe weitergegeben wurden

Häufige Probleme

  • ModuleNotFoundError: No module named 'nemo_launcher', möglicherweise müssen Sie Ihrem Python-Pfad etwas nemo_launcher hinzufügen, je nachdem, wo er installiert hyperpod_cli ist. Beispielbefehl:

    export PYTHONPATH=<path_to_hyperpod_cli>/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nemo/nemo_framework_launcher/launcher_scripts:$PYTHONPATH
  • FileNotFoundError: [Errno 2] No such file or directory: '/tmp/hyperpod_current_context.json'zeigt an, dass Sie den Befehl hyperpod connect cluster nicht ausgeführt haben.

  • Wenn Ihr Job nicht geplant ist, überprüfen Sie noch einmal, ob die Ausgabe Ihrer SageMaker HyperPod CLI diesen Abschnitt mit Auftragsnamen und anderen Metadaten enthält. Wenn nicht, installieren Sie helm chart erneut, indem Sie Folgendes ausführen:

    curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh rm -f ./get_helm.sh