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 der AWS CLI
Die folgenden Themen enthalten Anleitungen zum Schreiben von SageMaker HyperPod API-Anforderungsdateien im JSON-Format und zum Ausführen dieser Dateien mithilfe der AWS CLI Befehle.
Themen
- Erstellen Sie einen neuen Cluster
- Beschreiben Sie einen Cluster
- Listet die Details der Clusterknoten auf
- Beschreiben Sie die Details eines Clusterknotens
- Cluster auflisten
- Aktualisieren Sie die Clusterkonfiguration
- Aktualisieren Sie die SageMaker HyperPod Plattformsoftware eines Clusters
- Einen Cluster löschen
Erstellen Sie einen neuen Cluster
-
Bereiten Sie Skripts für die Lebenszykluskonfiguration vor und laden Sie sie in einen S3-Bucket hoch, z.
s3://sagemaker-<your-s3-bucket>/<lifecycle-script-directory>/src/
B. Im folgenden Schritt 2 wird davon ausgegangen, dasson_create.sh
im angegebenen S3-Bucket ein Einstiegspunktskript benannt ist.Wichtig
Stellen Sie sicher, dass Sie den S3-Pfad für den Anfang festlegen
s3://sagemaker-
. Der IAM-Rolle für SageMaker HyperPod hat das ManagedAmazonSageMakerClusterInstanceRolePolicy
angehängt, was den Zugriff auf S3-Buckets mit dem spezifischen Präfixsagemaker-
ermöglicht. -
Bereiten Sie eine CreateClusterAPI-Anforderungsdatei im JSON-Format vor. Sie sollten die Instanzgruppen so konfigurieren, dass sie mit dem von Ihnen entworfenen Slurm-Cluster in der
provisioning_params.json
Datei übereinstimmen, die bei der Cluster-Erstellung als Teil der Ausführung einer Reihe von Lifecycle-Skripten verwendet wird. Weitere Informationen hierzu finden Sie unter SageMaker HyperPod Bewährte Methoden zur Lebenszykluskonfiguration. Die folgende Vorlage enthält zwei Instanzgruppen, um die Mindestanforderung für einen Slurm-Cluster zu erfüllen: einen Controller-Knoten (Head) und einen Compute-Knoten (Worker). Geben Sie für den ARN der IAM-Rolle anExecutionRole
, die Sie mit derAmazonSageMakerClusterInstanceRolePolicy
aus dem Abschnitt IAM-Rolle für SageMaker HyperPod verwalteten Rolle erstellt haben.// create_cluster.json
{ "ClusterName": "your-hyperpod-cluster
", "InstanceGroups": [ { "InstanceGroupName": "controller-group
", "InstanceType": "ml.m5.xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<your-s3-bucket>/<lifecycle-script-directory>/src/
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "arn:aws:iam::111122223333
:role/iam-role-for-cluster
",// 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": "worker-group-1
", "InstanceType": "ml.p4d.xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<your-s3-bucket>/<lifecycle-script-directory>/src/
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "arn:aws:iam::111122223333
:role/iam-role-for-cluster
" } ], // Optional "Tags": [ { "Key": "string
", "Value": "string
" } ], // Optional "VpcConfig": { "SecurityGroupIds": [ "string
" ], "Subnets": [ "string
" ] } }Je nachdem, wie Sie die Clusterstruktur mithilfe Ihrer Lifecycle-Skripts entwerfen, können Sie bis zu 20 Instanzgruppen unter dem
InstanceGroups
Parameter konfigurieren.Für den
Tags
Anforderungsparameter können Sie benutzerdefinierte Tags hinzufügen, um den SageMaker HyperPod Cluster als AWS Ressource zu verwalten. Sie können Ihrem Cluster auf die gleiche Weise Tags hinzufügen, wie Sie sie in anderen AWS Diensten hinzufügen, die Tagging unterstützen. Weitere Informationen zum Taggen von AWS Ressourcen im Allgemeinen finden Sie im Tagging AWS Resources User Guide.Geben Sie für den
VpcConfig
Anforderungsparameter die Informationen einer VPC an, die Sie verwenden möchten. Weitere Informationen finden Sie unter (Optional) SageMaker HyperPod Mit Ihrer Amazon VPC einrichten. -
Führen Sie den folgenden Befehl aus, um die
CreateCluster
API-Anfrage einzureichen.aws sagemaker create-cluster \ --cli-input-json
file://complete/path/to/create_cluster.json
Dies sollte den ARN des neuen Clusters zurückgeben.
Beschreiben Sie einen Cluster
Führen Sie ausdescribe-cluster
, um den Status des Clusters zu überprüfen. Sie können entweder den Namen oder den ARN des Clusters angeben.
aws sagemaker describe-cluster --cluster-name
your-hyperpod-cluster
Wenn der Status des Clusters zu wechseltInService
, fahren Sie mit dem nächsten Schritt fort. Mit dieser API können Sie auch Fehlermeldungen aus anderen HyperPod API-Vorgängen abrufen.
Listet die Details der Clusterknoten auf
Führen Sie den Befehl auslist-cluster-nodes
, um die wichtigsten Informationen der Clusterknoten zu überprüfen.
aws sagemaker list-cluster-nodes --cluster-name
your-hyperpod-cluster
Dies gibt eine Antwort zurück, und das InstanceId
ist es, was Sie für die Anmeldung (Verwendungaws ssm
) bei ihnen verwenden müssen.
Beschreiben Sie die Details eines Clusterknotens
Ausführendescribe-cluster-node
, um Details eines Clusterknotens abzurufen. Sie können die Clusterknoten-ID aus der list-cluster-nodes Ausgabe abrufen. Sie können entweder den Namen oder den ARN des Clusters angeben.
aws sagemaker describe-cluster-node \ --cluster-name
your-hyperpod-cluster
\ --node-idi-111222333444555aa
Cluster auflisten
Führen Sie list-clusters
den Befehl aus, um alle Cluster in Ihrem Konto aufzulisten.
aws sagemaker list-clusters
Sie können auch zusätzliche Flags hinzufügen, um die Liste der Cluster nach unten zu filtern. Weitere Informationen darüber, wie dieser Befehl auf niedriger Ebene ausgeführt wird, und weitere Flags zum Filtern finden Sie in der ListClustersAPI-Referenz.
Aktualisieren Sie die Clusterkonfiguration
Führen Sie ausupdate-cluster
, um die Konfiguration eines Clusters zu aktualisieren.
-
Erstellen Sie eine
UpdateCluster
Anforderungsdatei im JSON-Format. Stellen Sie sicher, dass Sie den richtigen Clusternamen und Instanzgruppennamen für die Aktualisierung angeben. Sie können den Instanztyp, die Anzahl der Instanzen, das Einstiegsskript für die Lebenszykluskonfiguration und den Pfad zum Skript ändern.-
Geben Sie für
ClusterName
den Namen des Clusters an, den Sie aktualisieren möchten. -
Für
InstanceGroupName
-
Um eine bestehende Instanzgruppe zu aktualisieren, geben Sie den Namen der Instanzgruppe an, die Sie aktualisieren möchten.
-
Um eine neue Instanzgruppe hinzuzufügen, geben Sie einen neuen Namen an, der in Ihrem Cluster nicht vorhanden ist.
-
-
Für
InstanceType
-
Um eine bestehende Instanzgruppe zu aktualisieren, müssen Sie den Instanztyp, den Sie ursprünglich angegeben haben, der Gruppe zuordnen.
-
Um eine neue Instanzgruppe hinzuzufügen, geben Sie einen Instanztyp an, mit dem Sie die Gruppe konfigurieren möchten.
-
-
Für
InstanceCount
-
Um eine bestehende Instanzgruppe zu aktualisieren, geben Sie eine Ganzzahl an, die größer als die aktuelle Anzahl von Instanzen ist. Derzeit können Sie nur die Anzahl der Instanzen erhöhen.
-
Um eine neue Instanzgruppe hinzuzufügen, geben Sie eine Ganzzahl größer oder gleich 1 an.
-
-
Denn
LifeCycleConfig
Sie könnenSourceS3Uri
sowohl als auchOnCreat
Werte ändern, wenn Sie die Instanzgruppe aktualisieren möchten. -
Für
ExecutionRole
-
Verwenden Sie zum Aktualisieren einer vorhandenen Instanzgruppe weiterhin dieselbe IAM-Rolle, die Sie bei der Clustererstellung zugewiesen haben.
-
Um eine neue Instanzgruppe hinzuzufügen, geben Sie eine IAM-Rolle an, die Sie anhängen möchten.
-
-
Für
TreadsPerCore
-
Verwenden Sie für die Aktualisierung einer vorhandenen Instanzgruppe weiterhin denselben Wert, den Sie bei der Clustererstellung angegeben haben.
-
Um eine neue Instanzgruppe hinzuzufügen, können Sie einen beliebigen Wert aus den zulässigen Optionen pro Instanztyp wählen. Weitere Informationen finden Sie in der Referenztabelle unter CPU-Kerne und Threads pro CPU-Kern pro Instance-Typ in der Spalte Gültige Threads pro Kern im Amazon EC2 EC2-Benutzerhandbuch.
-
Der folgende Codeausschnitt ist eine JSON-Anforderungsdateivorlage, die Sie verwenden können. Weitere Informationen zur Anforderungssyntax und zu den Parametern dieser API finden Sie in der UpdateClusterAPI-Referenz.
// update_cluster.json { // Required "ClusterName": "
name-of-cluster-to-update
", // Required "InstanceGroups": [ { "InstanceGroupName": "name-of-instance-group-to-update
", "InstanceType": "ml.m5.xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<your-s3-bucket>/<lifecycle-script-directory>/src/
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "arn:aws:iam::111122223333
:role/iam-role-for-cluster
",// 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
, } } ] }, // add more blocks of instance groups as needed { ... } ] } -
-
Führen Sie den folgenden
update-cluster
Befehl aus, um die Anfrage einzureichen.aws sagemaker update-cluster \ --cli-input-json
file://complete/path/to/update_cluster.json
Aktualisieren Sie die SageMaker HyperPod Plattformsoftware eines Clusters
Führen Sie ausupdate-cluster-software
, um vorhandene Cluster mit Software und Sicherheitspatches zu aktualisieren, die vom SageMaker HyperPod Dienst bereitgestellt werden. Geben Sie für --cluster-name
entweder den Namen oder den ARN des zu aktualisierenden Clusters an.
Wichtig
Beachten Sie, dass Sie Ihre Arbeit sichern müssen, bevor Sie diese API ausführen können. Beim Patchen wird das Root-Volume durch das aktualisierte AMI ersetzt, was bedeutet, dass Ihre zuvor auf dem Instance-Root-Volume gespeicherten Daten verloren gehen. Stellen Sie sicher, dass Sie Ihre Daten vom Instance-Root-Volume auf Amazon S3 oder Amazon FSx for Lustre sichern. Weitere Informationen finden Sie unter Verwenden Sie das Backup-Skript von SageMaker HyperPod.
aws sagemaker update-cluster-software --cluster-name
your-hyperpod-cluster
Dieser Befehl ruft die UpdateClusterSoftware-API auf. Nach dem API-Aufruf SageMaker HyperPod aktualisiert die Cluster-Instances so, dass sie die neuesten Versionen verwenden, SageMaker HyperPod DLAMI und führt Ihre Lifecycle-Skripts in dem S3-Bucket aus, den Sie bei der Clustererstellung oder -aktualisierung angegeben haben. Das SageMaker HyperPod Serviceteam bringt regelmäßig neue SageMaker HyperPod DLAMI Funktionen zur Erhöhung der Sicherheit und Verbesserung der Benutzererfahrung auf den Markt. Wir empfehlen Ihnen, immer auf die neueste Version von SageMaker HyperPod DLAMI zu aktualisieren. Für future SageMaker HyperPod DLAMI-Updates für Sicherheitspatches folgen Sie bitte. SageMaker HyperPod Versionshinweise von Amazon
Tipp
Wenn der Sicherheitspatch fehlschlägt, können Sie Fehlermeldungen abrufen, indem Sie die DescribeCluster
API wie unter beschrieben ausführen. Beschreiben Sie einen Cluster
Anmerkung
Sie können diese API nur programmatisch ausführen. Die Patching-Funktionalität ist in der Benutzeroberfläche der SageMaker HyperPod Konsole nicht implementiert.
Verwenden Sie das Backup-Skript von SageMaker HyperPod
SageMaker HyperPod bietet ein Skript zum Sichern und Wiederherstellen Ihrer Daten 1.architectures/5.sagemaker-hyperpod/patching-backup.sh
Um Daten vor dem Patchen in einem S3-Bucket zu sichern
sudo bash patching-backup.sh --create
<s3-buckup-bucket-path>
Nachdem Sie den Befehl ausgeführt haben, prüft das Skript, squeue
ob sich Jobs in der Warteschlange befinden, stoppt Slurm, wenn sich kein Job in der Warteschlange befindet, sichert und kopiert lokale Objekte auf der Festplattemariadb
, die unter definiert sind. LOCAL_ITEMS
Sie können weitere Dateien und Verzeichnisse hinzufügen. LOCAL_ITEMS
# Define files and directories to back up. LOCAL_ITEMS=( "/var/spool/slurmd" "/var/spool/slurmctld" "/etc/systemd/system/slurmctld.service" "/home/ubuntu/backup_slurm_acct_db.sql" # ... Add more items as needed )
Sie können dem bereitgestellten Skript auch benutzerdefinierten Code hinzufügen, um alle Anwendungen für Ihren Anwendungsfall zu sichern.
Um nach dem Patchen Daten aus einem S3-Bucket wiederherzustellen
sudo bash patching-backup.sh --restore
<s3-buckup-bucket-path>
Einen Cluster löschen
Ausführendelete-cluster
, um einen Cluster zu löschen. Sie können entweder den Namen oder den ARN des Clusters angeben.
aws sagemaker delete-cluster --cluster-name
your-hyperpod-cluster