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.
Verwenden Sie die AWS CLI Befehle für SageMaker HyperPod APIs
Erstellen Sie Ihren ersten SageMaker HyperPod Cluster mit den AWS CLI Befehlen für HyperPod.
Erstelle deinen ersten SageMaker HyperPod Cluster mit Slurm
Das folgende Tutorial zeigt, wie Sie mithilfe der AWS CLI
Befehle für einen neuen SageMaker HyperPod Cluster erstellen und ihn mit Slurm einrichten. SageMaker HyperPod Im Anschluss an das Tutorial erstellen Sie einen HyperPod Cluster mit drei Slurm-Knoten, my-controller-group
my-login-group
, und. worker-group-1
-
Bereiten Sie zunächst Lebenszyklus-Skripts vor und laden Sie sie in einen Amazon S3 S3-Bucket hoch. HyperPod Führt sie während der Clustererstellung in jeder Instanzgruppe aus. Laden Sie Lifecycle-Skripte mit dem folgenden Befehl auf Amazon S3 hoch.
aws s3 sync \ ~/
local-dir-to-lifecycle-scripts
/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
Anmerkung
Der S3-Bucket-Pfad sollte mit einem Präfix beginnen
sagemaker-
, da das IAMRolle für SageMaker HyperPod withAmazonSageMakerClusterInstanceRolePolicy
nur den Zugriff auf Amazon S3 S3-Buckets ermöglicht, die mit dem spezifischen Präfix beginnen.Wenn Sie bei Null anfangen, verwenden Sie Lebenszyklus-Beispielskripts, die im Awsome Distributed Training GitHub
Repository bereitgestellt werden. In den folgenden Teilschritten wird gezeigt, wie Sie die Lebenszyklus-Beispielskripts herunterladen, ändern und in einen Amazon S3 S3-Bucket hochladen. -
Laden Sie eine Kopie der Lifecycle-Skript-Beispiele in ein Verzeichnis auf Ihrem lokalen Computer herunter.
git clone https://github.com/aws-samples/awsome-distributed-training/
-
Gehen Sie in das Verzeichnis
1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
, in dem Sie eine Reihe von Lifecycle-Skripten finden. cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
Weitere Informationen zu den Beispielen für Lebenszyklus-Skripte finden Sie unterPassen Sie SageMaker HyperPod Cluster mithilfe von Lebenszyklusskripten an.
-
Schreiben Sie eine Slurm-Konfigurationsdatei und speichern Sie sie unter.
provisioning_params.json
Geben Sie in der Datei grundlegende Slurm-Konfigurationsparameter an, um Slurm-Knoten den SageMaker HyperPod Cluster-Instanzgruppen ordnungsgemäß zuzuweisen. Richten Sie in diesem Tutorial drei Slurm-Knoten mit den Namenmy-controller-group
,my-login-group
und einworker-group-1
, wie in der folgenden Beispielkonfiguration gezeigt.provisioning_params.json
{ "version": "1.0.0", "workload_manager": "
slurm
", "controller_group": "my-controller-group
", "login_group": "my-login-group
", "worker_groups": [ { "instance_group_name": "worker-group-1
", "partition_name": "partition-1
" } ] } -
Laden Sie die Skripte auf
s3://sagemaker-
hoch. Sie können dies tun, indem Sie die Amazon S3 S3-Konsole verwenden oder den folgenden AWS CLI Amazon S3 S3-Befehl ausführen.<unique-s3-bucket-name>
/<lifecycle-script-directory>
/srcaws s3 sync \ ~/
local-dir-to-lifecycle-scripts
/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
-
-
Bereiten Sie eine CreateClusterAnforderungsdatei im JSON Format vor und speichern Sie sie unter
create_cluster.json
. Die folgende Anforderungsvorlage entspricht der in Schritt 1.c definierten Slurm-Knotenkonfiguration.provisioning_params.json
Geben Sie für die Rolle anExecutionRole
, die Sie mit ARN der verwalteten IAM Rolle erstellt haben.AmazonSageMakerClusterInstanceRolePolicy
Voraussetzungen für die Verwendung von SageMaker HyperPod{
// Required: Specify the name of the cluster.
"ClusterName": "my-hyperpod-cluster
",// Required: Configure instance groups to be launched in the cluster
"InstanceGroups": [ {// Required: Specify the basic configurations to set up a controller node.
"InstanceGroupName": "my-controller-group
", "InstanceType": "ml.c5.xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
",// Optional: Configure an additional storage per instance group.
"InstanceStorageConfigs": [ {// Attach an additional EBS volume to each instance within the instance group.
// The default mount path for the additional EBS volume is /opt/sagemaker.
"EbsVolumeConfig":{// Specify an integer between 1 and 16384 in gigabytes (GB).
"VolumeSizeInGB":integer
, } } ] }, { "InstanceGroupName": "my-login-group
", "InstanceType": "ml.m5.4xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
" }, { "InstanceGroupName": "worker-group-1
", "InstanceType": "ml.trn1.32xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
" } ] } -
Führen Sie den folgenden Befehl aus, um den Cluster zu erstellen.
aws sagemaker create-cluster --cli-input-json
file://complete/path/to/create_cluster.json
Dies sollte den ARN des erstellten Clusters zurückgeben.
Wenn Sie aufgrund von Ressourcenbeschränkungen eine Fehlermeldung erhalten, stellen Sie sicher, dass Sie den Instance-Typ auf einen Instance-Typ mit ausreichenden Kontingenten in Ihrem Konto ändern, oder fordern Sie zusätzliche Kontingente an, indem Sie unter folgenSageMaker HyperPod Kontingente.
-
Führen Sie
describe-cluster
den Befehl aus, um den Status des Clusters zu überprüfen.aws sagemaker describe-cluster --cluster-name
my-hyperpod-cluster
Wenn der Status des Clusters zu wechselt
InService
, fahren Sie mit dem nächsten Schritt fort. -
Führen Sie
list-cluster-nodes
den Befehl aus, um die Details der Clusterknoten zu überprüfen.aws sagemaker list-cluster-nodes --cluster-name
my-hyperpod-cluster
Dies gibt eine Antwort zurück, und das
InstanceId
ist es, was Ihre Clusterbenutzer benötigen, um sich bei ihnen anzumelden (aws ssm
). Weitere Informationen zur Anmeldung bei den Clusterknoten und zum Ausführen von ML-Workloads finden Sie unterJobs in SageMaker HyperPod Clustern.
Löschen Sie den Cluster und bereinigen Sie die Ressourcen
Nachdem Sie die Erstellung eines SageMaker HyperPod Clusters erfolgreich getestet haben, läuft er im InService
Status weiter, bis Sie den Cluster löschen. Wir empfehlen, alle Cluster zu löschen, die mit SageMaker On-Demand-Kapazität erstellt wurden, wenn sie nicht genutzt werden, um zu vermeiden, dass weitere Servicegebühren aufgrund von On-Demand-Preisen anfallen. In diesem Tutorial haben Sie einen Cluster erstellt, der aus zwei Instanzgruppen besteht. Eine davon verwendet eine C5-Instance. Stellen Sie also sicher, dass Sie den Cluster löschen, indem Sie den folgenden Befehl ausführen.
aws sagemaker delete-cluster --cluster-name
my-hyperpod-cluster
Um die Lifecycle-Skripts aus dem Amazon S3 S3-Bucket zu bereinigen, der für dieses Tutorial verwendet wurde, wechseln Sie zu dem Amazon S3 S3-Bucket, den Sie bei der Cluster-Erstellung verwendet haben, und entfernen Sie die Dateien vollständig.
Wenn Sie die Ausführung von Modelltraining-Workloads auf dem Cluster getestet haben, überprüfen Sie auch, ob Sie Daten hochgeladen haben oder ob Ihr Job Artefakte in verschiedenen Amazon S3 S3-Buckets oder Dateisystemdiensten wie Amazon FSx for Lustre und Amazon Elastic File System gespeichert hat. Um Gebühren zu vermeiden, löschen Sie alle Artefakte und Daten aus dem Speicher- oder Dateisystem.