View a markdown version of this page

Führen Sie verteilte Schulungen auf einem heterogenen Cluster in Amazon AI durch SageMaker - 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.

Führen Sie verteilte Schulungen auf einem heterogenen Cluster in Amazon AI durch SageMaker

Mithilfe des distribution Arguments der SageMaker ModelTrainer AI-Klasse können Sie eine bestimmte Instanzgruppe zuweisen, um verteiltes Training durchzuführen. Nehmen wir beispielsweise an, dass Sie über die folgenden zwei Instance-Gruppe verfügen und für eine davon ein Multi-GPU-Training durchführen möchten.

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)

Sie können die verteilte Trainingskonfiguration für eine der Instance-Gruppen festlegen. Die folgenden Codebeispiele zeigen beispielsweise, wie training_group_2 mit zwei ml.p3dn.24xlarge Instances der verteilten Trainingskonfiguration zugewiesen wird.

Anmerkung

Derzeit kann nur eine Instance-Gruppe eines heterogenen Clusters für die Verteilungskonfiguration angegeben werden. Im SageMaker AI Python SDK v3 akzeptiert die Torchrun verteilte Konfiguration keinen Instanzgruppenparameter und gilt für alle Instanzen im Trainingsjob.

Mit MPI

PyTorch

from sagemaker.train import ModelTrainer from sagemaker.train.distributed import Torchrun # Note: In v3, Torchrun does not support scoping to a specific instance group. # It applies to all instances in the training job. Use instance_groups with # Channel/S3DataSource to control which group receives training data. model_trainer = ModelTrainer( ... instance_groups=[instance_group_1, instance_group_2], distributed=Torchrun() )

TensorFlow

from sagemaker.train import ModelTrainer from sagemaker.train.distributed import Torchrun # Note: In v3, Torchrun does not support scoping to a specific instance group. # It applies to all instances in the training job. Use instance_groups with # Channel/S3DataSource to control which group receives training data. model_trainer = ModelTrainer( ... instance_groups=[instance_group_1, instance_group_2], distributed=Torchrun() )

Mit der SageMaker KI-Datenparallelbibliothek

PyTorch

from sagemaker.train import ModelTrainer from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ... instance_groups=[instance_group_1, instance_group_2], distributed=Torchrun() )

TensorFlow

from sagemaker.train import ModelTrainer from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ... instance_groups=[instance_group_1, instance_group_2], distributed=Torchrun() )
Anmerkung

Wenn Sie die SageMaker KI-Datenparallelbibliothek verwenden, stellen Sie sicher, dass die Instanzgruppe aus den von der Bibliothek unterstützten Instanztypen besteht.

Weitere Informationen zur SageMaker KI-Datenparallelbibliothek finden Sie unter SageMaker AI Data Parallel Training.

Mit der Parallelbibliothek für SageMaker KI-Modelle

PyTorch

from sagemaker.train import ModelTrainer from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ... instance_groups=[instance_group_1, instance_group_2], distributed=Torchrun() )

TensorFlow

from sagemaker.train import ModelTrainer from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ... instance_groups=[instance_group_1, instance_group_2], distributed=Torchrun() )

Weitere Informationen zur Parallelbibliothek für SageMaker KI-Modelle finden Sie unter Paralleltraining für SageMaker KI-Modelle.