Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Ändern Sie Ihr Trainingsskript, um Instanzgruppen zuzuweisen

Fokusmodus
Ändern Sie Ihr Trainingsskript, um Instanzgruppen zuzuweisen - 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.

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.

Mit der heterogenen Cluster-Konfiguration in den vorherigen Abschnitten haben Sie die SageMaker Trainingsumgebung und die Instances für Ihre Trainingsaufgabe vorbereitet. Um die Instance-Gruppen weiter bestimmten Trainings- und Datenverarbeitungsaufgaben zuzuweisen, müssen Sie im nächsten Schritt Ihr Trainingsskript ändern. Standardmäßig erstellt der Trainingsauftrag einfach Trainingsskriptreplikate für alle Knoten, unabhängig von der Größe der Instance, was zu Leistungsverlusten führen kann.

Wenn Sie beispielsweise CPU-Instanzen und GPU-Instanzen in einem heterogenen Cluster mischen und gleichzeitig ein Trainingsskript für tiefe neuronale Netzwerke an das entry_point Argument des SageMaker AI-Estimators übergeben, wird das entry_point Skript auf jede Instanz repliziert. Das bedeutet, dass CPU-Instances ohne korrekte Aufgabenzuweisungen auch das gesamte Skript ausführen und den Trainingsauftrag starten, der für verteiltes Training auf GPU-Instances konzipiert ist. Daher müssen Sie Änderungen an bestimmten Verarbeitungsfunktionen vornehmen, die Sie auslagern und auf den CPU-Instances ausführen möchten. Sie können die SageMaker KI-Umgebungsvariablen verwenden, um die Informationen des heterogenen Clusters abzurufen und bestimmte Prozesse entsprechend ausführen zu lassen.

Wenn Ihr Trainingsjob gestartet wird, liest Ihr Trainingsskript Informationen zur SageMaker Trainingsumgebung, zu denen auch die heterogene Clusterkonfiguration gehört. Die Konfiguration enthält Informationen wie die aktuellen Instance-Gruppe, die aktuellen Hosts in jeder Gruppe und die Gruppe, in der sich der aktuelle Host befindet.

Sie können Instanzgruppeninformationen während der Initialisierungsphase eines SageMaker AI-Trainingsjobs auf folgende Weise abfragen.

(Empfohlen) Lesen von Instanzgruppeninformationen mit dem SageMaker Schulungs-Toolkit

Verwenden Sie das Python-Umgebungsmodul, das die SageMaker Schulungstoolkit-Bibliothek bereitstellt. Die Toolkit-Bibliothek ist in den SageMaker Framework-Containern für TensorFlow und vorinstalliert PyTorch, sodass Sie keinen zusätzlichen Installationsschritt benötigen, wenn Sie die vorgefertigten Container verwenden. Dies ist die empfohlene Methode, um die SageMaker KI-Umgebungsvariablen mit weniger Codeänderungen in Ihrem Trainingsskript abzurufen.

from sagemaker_training import environment env = environment.Environment()

Umgebungsvariablen im Zusammenhang mit allgemeinem SageMaker Training und heterogenen Clustern:

  • env.is_hetero – Gibt ein boolesches Ergebnis zurück, unabhängig davon, ob ein heterogener Cluster konfiguriert ist oder nicht.

  • env.current_host – Gibt den aktuellen Host zurück.

  • env.current_instance_type – Gibt den Instance-Typ des aktuellen Hosts zurück.

  • env.current_instance_group – Gibt den Namen der aktuellen Instance-Gruppe zurück.

  • env.current_instance_group_hosts – Gibt eine Liste der Hosts in der aktuellen Instance-Gruppe zurück.

  • env.instance_groups – Gibt eine Liste von Instance-Gruppennamen zurück, die für das Training verwendet werden.

  • env.instance_groups_dict – Gibt die gesamte heterogene Clusterkonfiguration des Trainingsauftrages zurück.

  • env.distribution_instance_groups— Gibt eine Liste von Instanzgruppen zurück, die dem distribution Parameter der SageMaker AI-Estimator-Klasse zugewiesen sind.

  • env.distribution_hosts— Gibt eine Liste von Hosts zurück, die zu den Instanzgruppen gehören, die dem distribution Parameter der SageMaker AI-Estimator-Klasse zugewiesen sind.

Betrachten Sie zum Beispiel das folgende Beispiel für einen heterogenen Cluster, der aus zwei Instance-Gruppen besteht.

from sagemaker.instance_group import InstanceGroup instance_group_1 = InstanceGroup( "instance_group_1", "ml.c5.18xlarge", 1) instance_group_2 = InstanceGroup( "instance_group_2", "ml.p3dn.24xlarge", 2)

Die Ausgabe des env.instance_groups_dict heterogenen Beispielclusters sollte folgendermaßen oder ähnlich aussehen.

{ "instance_group_1": { "hosts": [ "algo-2" ], "instance_group_name": "instance_group_1", "instance_type": "ml.c5.18xlarge" }, "instance_group_2": { "hosts": [ "algo-3", "algo-1" ], "instance_group_name": "instance_group_2", "instance_type": "ml.p3dn.24xlarge" } }

(Optional) Lesen von Instance-Gruppeninformationen aus der JSON-Datei mit der Ressourcenkonfiguration

Wenn Sie die Umgebungsvariablen lieber im JSON-Format abrufen möchten, können Sie die JSON-Datei für die Ressourcenkonfiguration direkt verwenden. Die JSON-Datei in einer SageMaker Trainingsinstanz befindet sich /opt/ml/input/config/resourceconfig.json standardmäßig unter.

file_path = '/opt/ml/input/config/resourceconfig.json' config = read_file_as_json(file_path) print(json.dumps(config, indent=4, sort_keys=True))
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.