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)
Themen
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 pip 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 |
|---|---|
|
Der Pod wurde akzeptiert, aber noch nicht auf einem Knoten eingeplant, oder er wartet darauf, dass Container-Images abgerufen werden |
|
Pod, der an einen Knoten gebunden ist, auf dem mindestens ein Container läuft oder startet |
|
Alle Container wurden erfolgreich abgeschlossen und werden nicht neu gestartet |
|
Alle Container wurden beendet, wobei mindestens einer mit einem Fehler endete |
|
Der Pod-Status kann nicht bestimmt werden (normalerweise aufgrund von Problemen mit der Knotenkommunikation) |
|
Der Container fällt wiederholt aus; Kubernetes macht bei Neustartversuchen einen Rückzieher |
|
Das Container-Image kann nicht aus der Registrierung abgerufen werden |
|
Der Container wurde wegen Überschreitung der Speichergrenzen beendet |
|
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 - finden
hyperpod-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 vorherigenkubectl 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-00b3d8a1bf25714e4und daher verwenden wir diese Zeichenfolge, um die anzuzeigende Protokollgruppe auszuwählen. Wählen Sie den aus, der sagtSagemakerHyperPodTrainingJob/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.jsonDatei 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 demmanifest.jsonPfad 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 etwasnemo_launcherhinzufügen, je nachdem, wo er installierthyperpod_cliist. 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