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.
Beginnen Sie mit verteilten Schulungen in Amazon AI SageMaker
Auf der folgenden Seite finden Sie Informationen zu den Schritten, die für den Einstieg in verteilte Schulungen in Amazon SageMaker AI erforderlich sind. Wenn Sie bereits mit verteilten Trainings vertraut sind, wählen Sie zunächst eine der folgenden Optionen, die Ihrer bevorzugten Strategie oder Ihrem bevorzugten Framework entspricht. Weitere Informationen zu verteilten Trainings im Allgemeinen finden Sie unter Konzepte für verteiltes Training.
Die verteilten SageMaker KI-Schulungsbibliotheken sind für die SageMaker Trainingsumgebung optimiert. Sie helfen Ihnen dabei, Ihre verteilten Schulungsjobs an SageMaker KI anzupassen und die Trainingsgeschwindigkeit und den Trainingsdurchsatz zu verbessern. Die Bibliotheken bieten sowohl datenparallele als auch modellparallele Trainingsstrategien. Sie kombinieren Software- und Hardwaretechnologien, um die Kommunikation zwischen GPU und Knoten zu verbessern, und erweitern die Trainingsmöglichkeiten der SageMaker KI um integrierte Optionen, die nur minimale Codeänderungen an Ihren Trainingsskripten erfordern.
Bevor Sie beginnen:
SageMaker Das Training unterstützt verteiltes Training sowohl auf einer einzelnen als auch auf mehreren Instanzen, sodass Sie Schulungen jeder Größenordnung in großem Umfang durchführen können.
Wir empfehlen Ihnen, den ModelTrainer Kurs zusammen mit PyTorch CreateTrainingJob API im Backend aus, findet die Region, in der Ihre aktuelle Sitzung läuft, und ruft einen der vorgefertigten AWS Deep-Learning-Container ab, der eine Reihe von Bibliotheken enthält, darunter Deep-Learning-Frameworks, verteilte Trainingsframeworks und den EFA-Treiber. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html Wenn Sie ein FSx-Dateisystem auf den Trainingsinstanzen mounten möchten, müssen Sie Ihr VPC-Subnetz und Ihre Sicherheitsgruppen-ID an die übergeben ModelTrainer.
Lesen Sie die folgenden allgemeinen Hinweise zur grundlegenden Einrichtung der SageMaker Infrastruktur, bevor Sie Ihr verteiltes KI-Training ausführen.
Availability Zones und Netzwerk-Backplane
Bei der Verwendung mehrerer Instances (auch Knoten genannt) ist es wichtig, das Netzwerk zu verstehen, das die Instances verbindet, wie die Trainingsdaten gelesen und wie Informationen untereinander ausgetauscht werden. Wenn Sie beispielsweise einen verteilten datenparallelen Trainingsauftrag ausführen, spielen eine Reihe von Faktoren eine entscheidende Rolle, wie die Kommunikation zwischen den Knoten eines Compute-Clusters zur Ausführung des AllReduce-Vorgangs und die Datenübertragung zwischen den Knoten sowie die Datenspeicherung in Amazon Simple Storage Service oder Amazon FSx für Lustre, um eine optimale Nutzung der Datenverarbeitungsressourcen und eine schnellere Trainingsgeschwindigkeit zu erreichen. Um den Kommunikationsaufwand zu reduzieren, stellen Sie sicher, dass Sie Instances, VPC-Subnetz und Datenspeicher in derselben AWS-Region Availability Zone konfigurieren.
GPU-Instances mit schnellerem Netzwerk und Speicher mit hohem Durchsatz
Sie können technisch gesehen beliebiges Instances für verteilte Trainings verwenden. Für Fälle, in denen Sie verteilte Trainingsjobs mit mehreren Knoten ausführen müssen, um große Modelle wie große Sprachmodelle (LLMs) und Diffusionsmodelle zu trainieren, die eine schnellere Kommunikation zwischen den Knoten erfordern, empfehlen EFA-enabled wir GPU-Instances, die von KI unterstützt werden. SageMaker
Verwenden Sie die SMDDP-Bibliothek ( SageMaker AI Distributed Data Parallelism)
Die SMDDP-Bibliothek verbessert die Kommunikation zwischen Knoten mit Implementierungen AllReduce und AllGather kollektiven Kommunikationsvorgängen, die für die AWS Netzwerkinfrastruktur und die Amazon AI ML-Instance-Topologie optimiert sind. SageMaker Sie können die SMDDP-Bibliothek als Backend für PyTorch-based verteilte Trainingspakete verwenden: PyTorch Distributed Data Parallel (DDP)PyTorch-Schätzfunktion für das Starten eines verteilten Trainingsjobs auf zwei ml.p4d.24xlarge-Instances festlegen.
from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), # Activate distributed training with SMDDP distributed=Torchrun() )
Informationen zur Vorbereitung Ihres Trainingsskripts und zum Starten eines verteilten datenparallelen Trainingsauftrags zum Thema KI finden Sie unter. SageMaker Führen Sie verteilte Schulungen mit der SageMaker KI-Bibliothek für verteilte Datenparallelität durch
Verwenden Sie die SageMaker AI Model Parallelism Library (SMP)
SageMaker AI stellt die SMP-Bibliothek bereit und unterstützt verschiedene verteilte Trainingstechniken wie Sharded Data Parallelism, Pipelining, Tensorparallelism, Optimizer State Sharding und mehr. Weitere Informationen über das Angebot der SMP-Bibliothek finden Sie unter Kernfunktionen der SageMaker Model Parallelism Library.
Um die Modellparallelismus-Bibliothek von SageMaker AI zu verwenden, konfigurieren Sie die Parameter der KI-Framework-Schätzer. distribution SageMaker
Die ModelTrainer Klasse unterstützt und. PyTorch ml.p4d.24xlarge Instanzen erstellt wird.
from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), distributed=Torchrun() )
Informationen dazu, wie Sie Ihr Trainingsskript anpassen, Verteilungsparameter in der estimator Klasse konfigurieren und einen verteilten Trainingsjob starten, finden Sie in der Modellparallelismus-Bibliothek von SageMaker AI (siehe auch Distributed Training APIs
Verwenden verteilter Open-Source-Trainingsframeworks
SageMaker AI unterstützt auch die folgenden Optionen für die Bedienung mpirun und torchrun im Backend.
-
Um PyTorch DistributedDataParallel (DDP)
in SageMaker KI mit dem mpirunBackend zu verwenden, fügen Sie es Ihrem Schätzerdistribution={"pytorchddp": {"enabled": True}}hinzu. PyTorch Weitere Informationen finden Sie auch unter PyTorch Distributed Trainingund das distributionArgument von SageMaker AI PyTorch Estimator in derSageMaker Python-SDK-Dokumentation. Anmerkung
Diese Option ist für PyTorch 1.12.0 und höher verfügbar.
from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), distributed=Torchrun() # runs torchrun in the backend ) -
SageMaker AI unterstützt den PyTorch
torchrunLauncherfür verteiltes Training auf GPU-based Amazon EC2-Instances wie P3 und P4 sowie Trn1, das vom Trainium-Gerät unterstützt wird. AWS Um PyTorch DistributedDataParallel (DDP)
in SageMaker KI mit dem Backend zu verwenden, fügen Sie den Schätzer hinzu. torchrundistribution={"torch_distributed": {"enabled": True}}PyTorchAnmerkung
Diese Option ist für PyTorch 1.13.0 und höher verfügbar.
Der folgende Codeausschnitt zeigt ein Beispiel für die Erstellung eines SageMaker PyTorch KI-Schätzers, um verteiltes Training auf zwei
ml.p4d.24xlargeInstanzen mit der Verteilungsoption durchzuführen.torch_distributedfrom sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), distributed=Torchrun() # runs torchrun in the backend )Weitere Informationen finden Sie unter Distributed PyTorch Training
und das distributionArgument von SageMaker AI PyTorch Estimator inder Python-SDK-Dokumentation. SageMaker Hinweise für verteilte Trainings auf Trn1
Eine Trn1-Instanz besteht aus bis zu 16 Trainium-Geräten, und jedes Trainium-Gerät besteht aus zwei. NeuronCores
Spezifikationen der AWS Trainium-Geräte finden Sie unter Trainium-Architektur in der Neuron-Dokumentation. https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/arch/neuron-hardware/trn1-arch.html#id2 AWS Um mit den Trainium-powered Instanzen zu trainieren, müssen Sie nur den Trn1-Instanzcode als Zeichenfolge für das Argument der
ml.trn1.*instance_typeAI-Schätzerklasse angeben. SageMaker PyTorch Die verfügbaren Trn1-Instance-Typen finden Sie unter AWS Trn1-Architekturin der AWS Neuron-Dokumentation. Anmerkung
SageMaker Schulungen zu Amazon EC2 Trn1-Instances sind derzeit nur für das PyTorch Framework in den AWS Deep-Learning-Containern für Neuron ab Version 1.11.0 verfügbar. PyTorch Eine vollständige Liste der unterstützten Versionen von Neuron finden Sie unter PyTorch Neuron Containers im Deep-Learning-Container-Repository.
AWS GitHub Wenn Sie mithilfe des SageMaker Python-SDK einen Trainingsjob auf Trn1-Instanzen starten, übernimmt SageMaker AI automatisch den richtigen Container aus Neuron Containern, die von Deep Learning Containers
bereitgestellt werden, und führt ihn aus. AWS Die Neuron Container sind mit Einstellungen und Abhängigkeiten der Trainingsumgebung vorkonfiguriert, sodass Sie Ihren Trainingsjob leichter an die SageMaker Trainingsplattform und die Amazon EC2 Trn1-Instances anpassen können. Anmerkung
Um Ihren PyTorch Trainingsjob auf Trn1-Instances mit SageMaker KI auszuführen, sollten Sie Ihr Trainingsskript so ändern, dass Prozessgruppen mit dem Backend initialisiert und verwendet werden.
xlaPyTorch/XLAZur Unterstützung des XLA-Einführungsprozesses stellt das AWS Neuron SDK Neuron zur Verfügung, das XLA verwendet, um PyTorch Operationen in Trainium-Anweisungen umzuwandeln. PyTorch Informationen zum Ändern Ihres Trainingsskripts finden Sie im Entwicklerhandbuch für das Training mit PyTorch Neuron () in der Neuron-Dokumentation. torch-neuronxAWS Weitere Informationen finden Sie unter Verteiltes Training mit PyTorch Neuron auf Trn1-Instanzen
und das distributionArgument von SageMaker AI PyTorch Estimator in derPython-SDK-Dokumentation. SageMaker -
Um MPI in SageMaker KI zu verwenden, fügen Sie es Ihrem Estimator hinzu.
distribution={"mpi": {"enabled": True}}Die MPI-Verteilungsoption ist für die folgenden Frameworks verfügbar: MXNet, und. PyTorch TensorFlow -
Um einen Parameterserver in SageMaker AI zu verwenden, fügen Sie ihn Ihrem Schätzer
distribution={"parameter_server": {"enabled": True}}hinzu. Die Parameter-Serveroption ist für die folgenden Frameworks verfügbar: MXNet PyTorch, und. TensorFlowTipp
Weitere Informationen zur Verwendung der MPI- und Parameterserveroptionen pro Framework finden Sie unter den folgenden Links zur SageMaker Python-SDK-Dokumentation.
-
Das Argument von MXNet Distributed Training
und SageMaker AI MXNet Estimator distribution -
PyTorch Verteiltes Training
und das Argument von SageMaker AI Estimator PyTorch distribution -
TensorFlow Verteiltes Training
und das Argument von SageMaker AI TensorFlow Estimator . distribution
-