SageMaker HyperPod Verweise - Amazon SageMaker KI

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 Verweise

Weitere Informationen und Referenzen zur Verwendung finden Sie SageMaker HyperPod in den folgenden Themen.

SageMaker HyperPod Preisgestaltung

Die folgenden Themen enthalten Informationen zur SageMaker HyperPod Preisgestaltung. Weitere Informationen zum Preis pro Stunde für die Nutzung von SageMaker HyperPod Instances finden Sie auch unter SageMaker Amazon-Preise.

Kapazitätsanfragen

Sie können mit SageMaker KI Rechenkapazität auf Abruf oder reservierte Rechenkapazität zur Nutzung auf SageMaker HyperPod zuweisen. Bei der On-Demand-Clustererstellung werden verfügbare Kapazitäten aus dem SageMaker KI-On-Demand-Kapazitätspool zugewiesen. Alternativ können Sie reservierte Kapazität anfordern, um den Zugriff sicherzustellen, indem Sie ein Ticket für eine Erhöhung des Kontingents einreichen. Eingehende Kapazitätsanfragen werden von SageMaker KI priorisiert und Sie erhalten eine geschätzte Zeit für die Kapazitätszuweisung.

Service – Fakturierung

Wenn Sie Rechenkapazität am bereitstellen SageMaker HyperPod, wird Ihnen die Dauer der Kapazitätszuweisung in Rechnung gestellt. SageMaker HyperPod Die Abrechnung erscheint in Ihren Jubiläumsrechnungen mit einer Zeile für die Art der Kapazitätszuweisung (auf Abruf, reserviert), den Instance-Typ und die für die Nutzung der Instance aufgewendete Zeit.

Informationen zum Einreichen eines Tickets für eine Erhöhung des Kontingents finden Sie unter SageMaker HyperPod Kontingente.

SageMaker HyperPod APIs

Die folgende Liste enthält eine vollständige Liste von Optionen SageMaker HyperPod APIs für die Einreichung von Aktionsanfragen im JSON-Format an SageMaker KI über AWS CLI oder AWS SDK für Python (Boto3).

SageMaker HyperPod Slurm-Konfiguration

HyperPod unterstützt zwei Ansätze für die Konfiguration von Slurm auf Ihrem Cluster. Wählen Sie den Ansatz, der Ihren Bedürfnissen am besten entspricht.

Ansatz Beschreibung Empfohlen für
API-gesteuerte Konfiguration Definieren Sie die Slurm-Konfiguration direkt in den CreateCluster und API-Anfragen UpdateCluster Neue Cluster; vereinfachtes Management
Legacy-Konfiguration Verwenden Sie eine separate provisioning_parameters.json Datei, die in Amazon S3 gespeichert ist Bestehende Cluster; Abwärtskompatibilität

API-gesteuerte Slurm-Konfiguration (empfohlen)

Bei der API-gesteuerten Konfiguration definieren Sie Slurm-Knotentypen, Partitionszuweisungen und Dateisystem-Mounts direkt in den und API-Anfragen. CreateCluster UpdateCluster Dieser Ansatz bietet:

  • Zentrale Informationsquelle — Die gesamte Konfiguration in der API-Anfrage

  • Keine S3-Dateiverwaltung — Keine Erstellung oder Wartung erforderlich provisioning_parameters.json

  • Integrierte Validierung — Die API validiert die Slurm-Topologie vor der Clustererstellung

  • Drift-Erkennung — Erkennt unbefugte Änderungen an slurm.conf

  • Per-instance-group Speicher — Konfigurieren Sie verschiedene FSx Dateisysteme für verschiedene Instanzgruppen

  • FSx für OpenZFS-Unterstützung — Mounten Sie zusätzlich zu Lustre auch OpenZFS-Dateisysteme FSx

SlurmConfig (pro Instanzgruppe)

Fügen Sie SlurmConfig jede Instanzgruppe hinzu, um den Slurm-Knotentyp und die Partitionszuweisung zu definieren.

"SlurmConfig": { "NodeType": "Controller | Login | Compute", "PartitionNames": ["string"] }

Parameter:

  • NodeType – Erforderlich. Der Slurm-Knotentyp für diese Instanzgruppe. Zulässige Werte:

    • Controller— Slurm-Controller-Knoten (Kopf). Führt den slurmctld Daemon aus. Genau eine Instanzgruppe muss diesen Knotentyp haben.

    • Login— Login-Knoten für den Benutzerzugriff. Optional. Höchstens eine Instanzgruppe kann diesen Knotentyp haben.

    • Compute— Worker-Knoten, die Jobs ausführen. Kann mehrere Instanzgruppen mit diesem Knotentyp haben.

    Wichtig

    NodeTypeist unveränderlich. Sobald es bei der Clustererstellung festgelegt wurde, kann es nicht geändert werden. Um einen anderen Knotentyp zu verwenden, erstellen Sie eine neue Instanzgruppe.

  • PartitionNames— Bedingt. Eine Reihe von Slurm-Partitionsnamen. Erforderlich für Compute Knotentypen; nicht zulässig für Controller Login Node-Typen. Unterstützt derzeit einen einzelnen Partitionsnamen pro Instanzgruppe.

    Anmerkung

    Alle Knoten werden der universellen dev Partition zusätzlich zu ihrer angegebenen Partition automatisch hinzugefügt.

Beispiel:

{ "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 8, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole" }

Orchestrator.Slurm (Clusterebene)

Fügen Sie der Cluster-Konfiguration hinzuOrchestrator.Slurm, um anzugeben, wie die Datei verwaltet wird. HyperPod slurm.conf

"Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed | Overwrite | Merge" } }

Parameter:

  • SlurmConfigStrategy— Erforderlich, Orchestrator.Slurm wenn angegeben. Steuert, wie die slurm.conf Datei auf dem Controller-Knoten HyperPod verwaltet wird. Zulässige Werte:

    • Managed(Standard) — Steuert HyperPod vollständig die Partitionsknoten-Zuordnungen in. slurm.conf Die Drift-Erkennung ist aktiviert: Wenn der aktuelle Wert von der erwarteten Konfiguration slurm.conf abweicht, UpdateCluster schlägt der Fehler fehl. Verwenden Sie diese Strategie, wenn Sie HyperPod die zentrale Informationsquelle für die Slurm-Konfiguration sein möchten.

    • Overwrite— HyperPod erzwingt die Anwendung der API-Konfiguration und überschreibt alle manuellen Änderungen an. slurm.conf Die Drifterkennung ist deaktiviert. Verwenden Sie diese Strategie, um die Drift zu beheben oder den Cluster auf einen bekannten Zustand zurückzusetzen.

    • Merge— HyperPod behält manuelle slurm.conf Änderungen bei und führt sie mit der API-Konfiguration zusammen. Die Drifterkennung ist deaktiviert. Verwenden Sie diese Strategie, wenn Sie manuelle Änderungen an der Slurm-Konfiguration vornehmen müssen, die auch nach Updates beibehalten werden sollen.

Anmerkung

Wenn sie in der Anfrage weggelassen Orchestrator.Slurm wird, ist Managed das Standardverhalten Strategie.

Tipp

Sie können SlurmConfigStrategy jederzeit Änderungen vornehmen mit UpdateCluster. Es gibt keine Bindung an eine bestimmte Strategie.

Beispiel:

{ "ClusterName": "my-hyperpod-cluster", "InstanceGroups": [...], "Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed" } } }

SlurmConfigStrategy Vergleich

Strategie Erkennung von Driften Manuelle Änderungen Anwendungsfall
Managed Aktiviert — blockiert Updates, wenn eine Drift erkannt wird Blocked HyperPod verwaltet
Overwrite Disabled Überschrieben Wiederherstellung nach Drift; auf bekannten Zustand zurückgesetzt
Merge Disabled Konserviert Fortgeschrittene Benutzer mit individuellen slurm.conf Bedürfnissen

FSx Konfiguration über InstanceStorageConfigs

Mit der API-gesteuerten Konfiguration können Sie FSx Dateisysteme pro Instanzgruppe mithilfe von konfigurieren. InstanceStorageConfigs Auf diese Weise können verschiedene Instanzgruppen unterschiedliche Dateisysteme mounten.

Voraussetzungen:

  • Ihr Cluster muss eine benutzerdefinierte VPC (viaVpcConfig) verwenden. FSx Dateisysteme befinden sich in Ihrer VPC, und die plattformverwaltete VPC kann sie nicht erreichen.

  • Mindestens eine Instanzgruppe muss mit haben. SlurmConfig NodeType: Controller

FsxLustreConfig

Konfigurieren Sie FSx das Lustre-Dateisystem-Mounten für eine Instanzgruppe.

"InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "string", "MountPath": "string", "MountName": "string" } } ]

Parameter:

  • DnsName – Erforderlich. Der DNS-Name des FSx for Lustre-Dateisystems. Beispiel: fs-0abc123def456789.fsx.us-west-2.amazonaws.com

  • MountPath – Optional. Der lokale Mountpfad auf der Instanz. Standard: /fsx

  • MountName – Erforderlich. Der Mount-Name des FSx for Lustre-Dateisystems. Sie finden dies in der FSx Amazon-Konsole oder indem Sie es ausführenaws fsx describe-file-systems.

FsxOpenZfsConfig

Konfigurieren Sie FSx das OpenZFS-Dateisystem-Mounten für eine Instance-Gruppe.

"InstanceStorageConfigs": [ { "FsxOpenZfsConfig": { "DnsName": "string", "MountPath": "string" } } ]

Parameter:

  • DnsName – Erforderlich. Der DNS-Name des FSx für OpenZFS-Dateisystems. Beispiel: fs-0xyz987654321.fsx.us-west-2.amazonaws.com

  • MountPath – Optional. Der lokale Mount-Pfad auf der Instanz. Standard: /home

Anmerkung

Jede Instanzgruppe kann höchstens eins FsxLustreConfig und eins habenFsxOpenZfsConfig.

Beispiel mit mehreren Dateisystemen:

{ "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 4, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } }, { "FsxOpenZfsConfig": { "DnsName": "fs-0xyz987654321.fsx.us-west-2.amazonaws.com", "MountPath": "/shared" } }, { "EbsVolumeConfig": { "VolumeSizeInGB": 500 } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole" }
Wichtig

FSx Konfigurationsänderungen gelten nur während der Knotenbereitstellung. Bestehende Knoten behalten ihre ursprüngliche FSx Konfiguration bei. Um eine neue FSx Konfiguration auf alle Knoten anzuwenden, reduzieren Sie die Instanzgruppe auf 0 und skalieren Sie dann wieder nach oben.

Vollständiges API-gesteuertes Konfigurationsbeispiel

Das folgende Beispiel zeigt eine vollständige CreateCluster Anfrage mit einer API-gesteuerten Slurm-Konfiguration:

{ "ClusterName": "ml-training-cluster", "InstanceGroups": [ { "InstanceGroupName": "controller", "InstanceType": "ml.c5.xlarge", "InstanceCount": 1, "SlurmConfig": { "NodeType": "Controller" }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 }, { "InstanceGroupName": "login", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "SlurmConfig": { "NodeType": "Login" }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 }, { "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 8, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2, "OnStartDeepHealthChecks": ["InstanceStress", "InstanceConnectivity"] }, { "InstanceGroupName": "cpu-compute", "InstanceType": "ml.c5.18xlarge", "InstanceCount": 4, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["cpu-preprocessing"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 } ], "Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed" } }, "VpcConfig": { "SecurityGroupIds": ["sg-0abc123def456789a"], "Subnets": ["subnet-0abc123def456789a", "subnet-0abc123def456789b"] }, "Tags": [ { "Key": "Project", "Value": "ML-Training" } ] }

Weitere Informationen zur Verwendung der API-gesteuerten Konfiguration finden Sie unter. Anpassen von SageMaker HyperPod Clustern mithilfe von Lifecycle-Skripten

Legacy-Konfiguration: provisioning_parameters.json

Anmerkung

Der provisioning_parameters.json Ansatz ist die alte Methode zur Konfiguration von Slurm on. HyperPod Für neue Cluster empfehlen wir, den oben beschriebenen API-gesteuerten Konfigurationsansatz zu verwenden. Der ältere Ansatz wird aus Gründen der Abwärtskompatibilität weiterhin vollständig unterstützt.

Beim Legacy-Ansatz erstellen Sie eine Slurm-Konfigurationsdatei mit dem Namen provisioning_parameters.json und laden sie als Teil Ihrer Lifecycle-Skripte auf Amazon S3 hoch. HyperPod liest diese Datei während der Clustererstellung, um Slurm-Knoten zu konfigurieren.

Konfigurationsformular für provisioning_parameters.json

Der folgende Code ist das Slurm-Konfigurationsformular, das Sie vorbereiten sollten, um Slurm-Knoten auf Ihrem Cluster ordnungsgemäß einzurichten. HyperPod Sie sollten dieses Formular ausfüllen und es während der Clustererstellung als Teil einer Reihe von Lebenszyklusskripten hochladen. Informationen darüber, wie dieses Formular während der HyperPod Clustererstellung vorbereitet werden sollte, finden Sie unter. Anpassen von SageMaker HyperPod Clustern mithilfe von Lifecycle-Skripten

// Save as provisioning_parameters.json. { "version": "1.0.0", "workload_manager": "slurm", "controller_group": "string", "login_group": "string", "worker_groups": [ { "instance_group_name": "string", "partition_name": "string" } ], "fsx_dns_name": "string", "fsx_mountname": "string" }

Parameter:

  • version – Erforderlich. Dies ist die Version des Formulars für HyperPod Bereitstellungsparameter. Belassen Sie es auf 1.0.0.

  • workload_manager – Erforderlich. Damit geben Sie an, welcher Workload-Manager auf dem HyperPod Cluster konfiguriert werden soll. Belassen Sie es auf slurm.

  • controller_group – Erforderlich. Dies dient zur Angabe des Namens der HyperPod Cluster-Instanzgruppe, die Sie dem Slurm-Controller-Knoten (Head) zuweisen möchten.

  • login_group – Optional. Dies dient zur Angabe des Namens der HyperPod Cluster-Instanzgruppe, die Sie dem Slurm-Login-Knoten zuweisen möchten.

  • worker_groups – Erforderlich. Dies dient zum Einrichten von Slurm-Worker-Knoten (Compute) auf dem HyperPod Cluster.

    • instance_group_name – Erforderlich. Dies dient zur Angabe des Namens der HyperPod Instanzgruppe, die Sie dem Slurm-Worker-Knoten (Compute) zuweisen möchten.

    • partition_name – Erforderlich. Dies dient zur Angabe des Partitionsnamens für den Knoten.

  • fsx_dns_name – Optional. Wenn Sie Ihre Slurm-Knoten auf dem HyperPod Cluster für die Kommunikation mit Amazon einrichten möchten FSx, geben Sie den FSx DNS-Namen an.

  • fsx_mountname – Optional. Wenn Sie Ihre Slurm-Knoten auf dem HyperPod Cluster für die Kommunikation mit Amazon einrichten möchten FSx, geben Sie den FSx Mount-Namen an.

Vergleich: API-gesteuerte Konfiguration im Vergleich zu älteren Konfigurationen

Merkmal API-gesteuert (empfohlen) Legacy (provisioning_parameters.json)
Speicherort der Konfiguration CreateCluster API-Anfrage S3-Datei
FSx für Lustre Ja — Pro Instanzgruppe Ja — Nur clusterweit
FSx für OpenZFS Ja — Pro Instanzgruppe Nein — Nicht unterstützt
Integrierte Validierung Ja Nein
Erkennung von Abweichungen Ja — (Verwaltete Strategie) Nein
S3-Dateiverwaltung Nicht erforderlich Erforderlich
Komplexität des Lebenszyklus-Skri Vereinfacht Vollständiges SLURM-Setup erforderlich

SageMaker HyperPod DLAMI

SageMaker HyperPod führt ein DLAMI aus, das auf Folgendem basiert:

Das SageMaker HyperPod DLAMI wird mit zusätzlichen Paketen zur Unterstützung von Open-Source-Tools wie Slurm, Kubernetes, Abhängigkeiten und SageMaker HyperPod Cluster-Softwarepaketen zur Unterstützung von Resilienzfunktionen wie Cluster-Integritätsprüfung und Auto-Resume gebündelt. Weitere Informationen zu HyperPod Softwareupdates, über die das Serviceteam verteilt, finden Sie unter. HyperPod DLAMIs SageMaker HyperPod Versionshinweise von Amazon

SageMaker HyperPod Referenz zu API-Berechtigungen

Wichtig

Benutzerdefinierte IAM-Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, SageMaker Amazon-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Berechtigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM-Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Tagging erlaubt, können "AccessDenied" Fehler beim Versuch, Ressourcen zu erstellen, auftreten. Weitere Informationen finden Sie unter Erteilen Sie Berechtigungen für das Taggen von SageMaker KI-Ressourcen.

AWS verwaltete Richtlinien für Amazon SageMaker AIdie Berechtigungen zum Erstellen von SageMaker Ressourcen gewähren, beinhalten bereits Berechtigungen zum Hinzufügen von Tags beim Erstellen dieser Ressourcen.

Wenn Sie die Zugriffskontrolle für die Ausführung von SageMaker HyperPod API-Vorgängen einrichten und eine Berechtigungsrichtlinie schreiben, die Sie IAM-Benutzern für Cloud-Administratoren zuordnen können, verwenden Sie die folgende Tabelle als Referenz.

SageMaker Amazon-API-Operationen Erforderliche Berechtigungen (API-Aktionen) Ressourcen
CreateCluster sagemaker:CreateCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DeleteCluster sagemaker:DeleteCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DescribeCluster sagemaker:DescribeCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DescribeClusterNode sagemaker:DescribeClusterNode arn:aws:sagemaker:region:account-id:cluster/cluster-id
ListClusterNodes sagemaker:ListClusterNodes arn:aws:sagemaker:region:account-id:cluster/cluster-id
ListClusters sagemaker:ListClusters arn:aws:sagemaker:region:account-id:cluster/cluster-id
UpdateCluster sagemaker:UpdateCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
UpdateClusterSoftware sagemaker:UpdateClusterSoftware arn:aws:sagemaker:region:account-id:cluster/cluster-id

Eine vollständige Liste der Berechtigungen und Ressourcentypen für SageMaker APIs finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon SageMaker AI in der AWS Service Authorization Reference.

SageMaker HyperPod Befehle in AWS CLI

Im Folgenden finden Sie die AWS CLI Befehle SageMaker HyperPod zum Ausführen der wichtigsten HyperPod API-Operationen.

SageMaker HyperPod Python-Module in AWS SDK für Python (Boto3)

Im Folgenden sind die Methoden des AWS SDK für Python (Boto3) Clients für SageMaker KI zum Ausführen der wichtigsten HyperPod API-Operationen aufgeführt.