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.
Einen Trainingsjob mit HyperPod CLI starten
HyperPod CLI ist ein Befehlszeilenschnittstellentool für die Verwaltung von SageMaker HyperPod Amazon-Clustern. Sie können HyperPod CLI verwenden, um HyperPod Cluster für Machine-Learning-Workloads zu erstellen, zu konfigurieren und zu überwachen. Weitere Informationen finden Sie im sagemaker-hyperpod-cli
Voraussetzungen
-
Installieren der HyperPod -CLI. Für die Anpassung von Amazon Nova bei Amazon müssen Sie sich die
release_v2
Filiale ansehen SageMaker HyperPod, um die SageMaker HyperPod CLI zu verwenden. -
Stellen Sie sicher, dass der Nova-Ausgabe-Bucket vorhanden ist, bevor Sie Jobs einreichen. Führen Sie zur Überprüfung den Befehl aus
aws s3 ls s3://nova-111122223333/
. -
Grundlegendes zu den FSx Datensynchronisierungsanforderungen von Amazon Amazon FSx benötigt Zeit, um Amazon S3 S3-Trainingsdaten zu synchronisieren, bevor Jobs ausgeführt werden können. Das Senden von Jobs vor Abschluss der Synchronisierung führt zu der Fehlermeldung „Keine solche Datei oder kein solches Verzeichnis“. Warten Sie, bis die Synchronisierung nach der Clustererstellung abgeschlossen ist.
HyperPod CLI für die Amazon Nova-Anpassung einrichten
Gehen Sie wie folgt vor, um HyperPod CLI für die Amazon Nova-Anpassung einzurichten.
-
Klonen Sie das sagemaker-hyperpod-cli
GitHub Repository mit Branch release_v2
.git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git --branch release_v2
-
Navigieren Sie zum Verzeichnis
sagemaker-hyperpod-cli
.cd sagemaker-hyperpod-cli
-
Vergewissern Sie sich, dass Sie alle Voraussetzungen unter Voraussetzungen erfüllen
. -
Gehen Sie wie folgt vor, um Helm einzurichten.
-
Um das Helm-Installationsskript herunterzuladen, führen Sie Folgendes aus:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
-
Um das Skript ausführbar zu machen, führen Sie Folgendes aus:
chmod 700 get_helm.sh
Dieser Befehl ändert die Berechtigungen, um das Skript ausführbar zu machen.
-
Um das Helm-Installationsskript auszuführen, führen Sie folgenden Befehl aus:
./get_helm.sh
-
Um das Installationsskript zu entfernen, führen Sie Folgendes aus:
rm -f ./get_helm.sh
-
-
Gehen Sie wie folgt vor, um HyperPod Abhängigkeiten mit Unterstützung für eingeschränkte Instanzgruppen (RIG) zu installieren.
Anmerkung
Bevor Sie die Abhängigkeiten installieren, benötigen Sie einen HyperPod EKS-Cluster mit RIG. Wenn Sie noch keinen haben, folgen Sie diesen Anweisungen, um einen zu erstellen.
-
Um eine Verbindung zu Ihrem HyperPod EKS-Cluster herzustellen, führen Sie Folgendes aus:
aws eks update-kubeconfig --name <eks_cluster_name> --region us-east-1
-
Führen Sie Folgendes aus, um die Verbindung zu Ihrem HyperPod EKS-Cluster zu überprüfen:
kubectl config current-context
-
Führen Sie folgenden Befehl aus, um Updates für HyperPod Standardabhängigkeiten abzurufen:
helm dependencies update helm_chart/HyperPodHelmChart
-
Um HyperPod Standardabhängigkeiten zu installieren, führen Sie folgenden Befehl aus:
helm install dependencies helm_chart/HyperPodHelmChart --namespace kube-system
-
Um zum Helm-Diagrammverzeichnis zu navigieren, führen Sie Folgendes aus:
cd helm_chart
-
Führen Sie den folgenden Befehl aus, um RIG-spezifische HyperPod Abhängigkeiten zu installieren.
Anmerkung
Beachten Sie vor der Installation der Abhängigkeiten Folgendes:
-
Sie sollten diesen Befehl nur einmal pro Cluster ausführen, nachdem er erstellt wurde.
-
Sie sollten sicherstellen, dass das yq-Hilfsprogramm mindestens Version 4 hat (z. B. v4). Es gibt eine integrierte Überprüfung, um sicherzustellen, dass yq >=4 im Installationsskript verfügbar ist.
-
Sie müssen die Installation bestätigen, indem Sie eingeben
y
, wenn Sie dazu aufgefordert werden. Optional können Sie sich vor der Bestätigung die geplante Installation unter ansehen./rig-dependencies.yaml
.
chmod 700 ./install_rig_dependencies.sh && ./install_rig_dependencies.sh
-
-
Um zurück zum Stammverzeichnis von
codesagemaker-hyperpod-cli
Repo zu navigieren, führen Sie folgenden Befehl aus:cd ..
-
-
Gehen Sie wie folgt vor
sagemaker-hyperpod-cli
, um mit der Installation der HyperPod CLI in fortzufahren.-
Installieren Sie die CLI mit pip:
pip install -e .
Überprüfen Sie die Installation:
hyperpod --help
-
Übermitteln eines Auftrags
Sie können HyperPod CLI verwenden, um einen Schulungsjob einzureichen.
Führen Sie den folgenden Befehl aus, um einen Job mithilfe eines Rezepts einzureichen.
hyperpod start-job [--namespace <namespace>] --recipe {{fine-tuning | evaluation | training}}/nova/<Your_Recipe_Name> --override-parameters \ '{ "instance_type":"p5d.48xlarge", "container": <Docker Image>, "recipes.run.name": <custom-run-name>, "recipes.run.output_s3_path": "<customer-s3-path>" }'
-
--recipe
: Der Typ des Jobs, den Sie mithilfe des Rezepts ausführen. Gültige Werte sind:fine-tuning
|evaluation
|training
.Job type Wert SFT/PEFT/PPO/DPO Aufträge fine-tuning
Auswertungsaufträge evaluation
CPT-Jobs training
-
Rezeptname: Sie finden den Namen im Repository unter dem Verzeichnis:
/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipe_collection/recipes/
. -
Beispielrezept:
--recipe evaluation/nova/nova_lite_g5_12xl_bring_your_own_dataset_eval
. -
Container: Dieses Feld ist erforderlich. Ihre Bilder für die Jobtypen finden Sie in der folgenden Tabelle.
Technik Container DPO 708977205387.dkr. ecr.us-east-1.amazonaws.com /:sm-HP-dpo-latest nova-fine-tune-repo Auswertungsaufträge 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-EVAL-Aktuell nova-evaluation-repo CPT 708977205387.dkr. ecr.us-east-1.amazonaws.com /:hp-cpt-latest nova-fine-tune-repo PPO 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SMHP-PPO-train-latest nova-fine-tune-repo SFT/PEFT 708977205387.dkr. ecr.us-east-1.amazonaws.com /:sm-HP-SFT-latest nova-fine-tune-repo -
Benutzerdefinierter Ausführungsname: Es gibt Definitionsbeschränkungen für die
custom-run-time
Eingabe, z. B. für Großbuchstaben, keine Leerzeichen, keine Unterstriche. Weitere Informationen finden Sie unter Objektnamenund. IDs
[Optional] Wenn Sie bereits einen Schulungsjob haben und für Ihren nächsten Job auf einen bestimmten Knoten abzielen möchten, gehen Sie wie folgt vor.
-
Führen Sie den folgenden Befehl aus, um alle freien Knoten abzurufen.
kubectl get nodes —no-headers | awk '$2 != "NotReady" && $3 != "SchedulingDisabled" {print $1}'
-
Fügen Sie der
src\hyperpod_cli\sagemaker_hyperpod_recipes\recipes_collection\cluster\k8s.yaml
Datei für den Labelselektor Folgendes hinzu.label_selector: required: kubernetes.io/hostname: - <node_name>
-
Führen Sie im Stammverzeichnis den folgenden Befehl aus. Dadurch SageMaker HyperPod wird sichergestellt, dass er auf dem System des Benutzers installiert ist, sodass dieser das Schlüsselwort „Hyperpod“ für die Auftragsübermittlung und andere Funktionen verwenden kann. Sie sollten diesen Befehl im Stammordner ausführen, in dem sich der HyperPod CLI-Code befindet.
pip install .
Auflisten von Aufträgen
Führen Sie den folgenden Befehl aus, um Jobs aufzulisten.
hyperpod list-jobs [--namespace <namespace>] [--all-namespaces]
Der Befehl listet alle Jobs im angegebenen Namespace oder in allen Namespaces auf.
Rufen Sie die Jobdetails ab
Führen Sie den folgenden Befehl aus, um die Details eines Jobs abzurufen.
hyperpod get-job --job-name <job-name> [--namespace <namespace>] [--verbose]
Der Befehl ruft detaillierte Informationen zu einem bestimmten Job ab.
Pods auflisten
Führen Sie den folgenden Befehl aus, um Pods aufzulisten.
hyperpod list-pods --job-name <job-name> [--namespace <namespace>]
Der Befehl listet alle Pods auf, die einem bestimmten Job im angegebenen Namespace zugeordnet sind.
Jobs stornieren
Führen Sie den folgenden Befehl aus, um einen Job abzubrechen.
hyperpod cancel-job --job-name <job-name> [--namespace <namespace>]
Mit diesem Befehl wird ein laufender Trainingsjob im angegebenen Namespace abgebrochen und gelöscht.