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 SageMaker
Auf der folgenden Seite finden Sie Informationen zu den Schritten, die für den Einstieg in verteilte Schulungen bei Amazon erforderlich sind SageMaker. 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 Verteilte Trainingskonzepte.
Die SageMaker verteilten Schulungsbibliotheken sind für die SageMaker Schulungsumgebung optimiert, helfen Ihnen dabei, Ihre verteilten Schulungsaufgaben an diese SageMaker anzupassen und verbessern die Geschwindigkeit und den Durchsatz der Schulungen. Die Bibliotheken bieten sowohl datenparallele als auch modellparallele Trainingsstrategien. Sie kombinieren Software- und Hardwaretechnologien, um die Kommunikation zwischen GPU und zwischen den Knoten zu verbessern, und erweitern SageMaker die Schulungsmöglichkeiten um integrierte Optionen, die nur minimale Codeänderungen an Ihren Schulungsskripten erfordern.
Bevor Sie beginnen:
SageMaker Training unterstützt verteilte Schulungen sowohl auf einer einzelnen Instanz als auch auf mehreren Instanzen, sodass Sie Schulungen jeder Größenordnung in großem Umfang durchführen können. Wir empfehlen Ihnen, die Framework-Estimator-Klassen wie PyTorchCreateTrainingJob
API im Backend aus, sucht nach der Region, in der Ihre aktuelle Sitzung läuft, und ruft einen der vorgefertigten AWS Deep-Learning-Container ab, der mit einer Reihe von Bibliotheken wie Deep-Learning-Frameworks, verteilten Trainingsframeworks und dem Treiber vorkonfiguriert ist. EFA Wenn Sie ein FSx Dateisystem in die Trainingsinstanzen einbinden möchten, müssen Sie Ihr VPC Subnetz und Ihre Sicherheitsgruppen-ID an den Estimator übergeben. Bevor Sie Ihren verteilten Trainingsjob in ausführen SageMaker, lesen Sie die folgenden allgemeinen Hinweise zur grundlegenden Einrichtung der Infrastruktur.
Availability Zones und Netzwerk-Backplane
Wenn Sie mehrere Instanzen (auch Knoten genannt) verwenden, ist es wichtig, das Netzwerk zu verstehen, das die Instanzen verbindet, wie sie die Trainingsdaten lesen und wie sie Informationen untereinander austauschen. Wenn Sie beispielsweise einen verteilten datenparallelen Trainingsjob ausführen, spielen eine Reihe von Faktoren, wie die Kommunikation zwischen den Knoten eines Rechenclusters zur Ausführung des AllReduce
Vorgangs und die Datenübertragung zwischen den Knoten und die Datenspeicherung in Amazon Simple Storage Service oder Amazon FSx for Lustre, eine entscheidende Rolle, um eine optimale Nutzung der Rechenressourcen und eine schnellere Trainingsgeschwindigkeit zu erreichen. Um den Kommunikationsaufwand zu reduzieren, stellen Sie sicher, dass Sie Instanzen, VPC Subnetz und Datenspeicher in derselben Availability Zone AWS-Region und in derselben Availability Zone konfigurieren.
GPUInstanzen 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 Kommutierung zwischen den Knoten erfordern, empfehlen wir EFAGPU-fähige
Verwenden Sie die Bibliothek SageMaker Distributed Data Parallelism () SMDDP
Die SMDDP Bibliothek verbessert die Kommunikation zwischen Knoten durch Implementierungen AllReduce
und AllGather
kollektive Kommunikationsoperationen, die für die AWS Netzwerkinfrastruktur und die Amazon SageMaker ML-Instance-Topologie optimiert sind. Sie können die SMDDPBibliothek als Backend für PyTorch basierte verteilte Trainingspakete verwenden: PyTorch Distributed Data Parallel (DDP)PyTorch
Schätzwert für das Starten eines verteilten Trainingsjobs auf zwei Instanzen einrichten. ml.p4d.24xlarge
from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", # Activate distributed training with SMDDP distribution={ "pytorchddp": { "enabled": True } } # mpirun, activates SMDDP AllReduce OR AllGather # distribution={ "torch_distributed": { "enabled": True } } # torchrun, activates SMDDP AllGather # distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } # mpirun, activates SMDDP AllReduce OR AllGather )
Informationen zur Vorbereitung Ihres Trainingsskripts und zum Starten einer verteilten datenparallelen Trainingsaufgabe finden Sie SageMaker unterFühren Sie verteilte Schulungen mit der Bibliothek für SageMaker verteilte Datenparallelität durch.
Verwenden Sie die SageMaker Modellparallelitätsbibliothek () SMP
SageMaker stellt die SMP Bibliothek bereit und unterstützt verschiedene verteilte Trainingstechniken wie Sharded Data Parallelism, Pipelining, Tensorparallelismus, Optimizer-State-Sharding und mehr. Weitere Informationen über das Angebot der Bibliothek finden Sie unter. SMP Kernfunktionen der SageMaker Model Parallelism Library
Um die Modellparallelitätsbibliothek zu verwenden SageMaker, konfigurieren Sie die distribution
Parameter der SageMaker Framework-Schätzer. Unterstützte Framework-Schätzer sind und. PyTorchTensorFlowml.p4d.24xlarge
-Instances erstellen.
from sagemaker.
framework
importFramework
distribution={ "smdistributed": { "modelparallel": { "enabled":True, "parameters": { ... # enter parameter key-value pairs here } }, }, "mpi": { "enabled" : True, ... # enter parameter key-value pairs here } } estimator =Framework
( ..., instance_count=2
, instance_type="ml.p4d.24xlarge
", distribution=distribution )
Informationen zum Anpassen Ihres Trainingsskripts, zur Konfiguration von Verteilungsparametern in der estimator
Klasse und zum Starten eines verteilten Trainingsjobs finden Sie in SageMakerder Modellparallelismus-Bibliothek (siehe auch Distributed Training APIs
Verwenden verteilter Open-Source-Trainingsframeworks
SageMaker unterstützt auch die folgenden Optionen für den Betrieb mpirun
und torchrun
im Backend.
-
Um PyTorch DistributedDataParallel (DDP)
im SageMaker mpirun
Backend zu verwenden, fügen Sie es Ihrem PyTorch Schätzerdistribution={"pytorchddp": {"enabled": True}}
hinzu. Weitere Informationen finden Sie auch unter PyTorch Distributed Trainingand SageMaker PyTorch Estimator's distribution
argument in der SageMaker SDKPython-Dokumentation.Anmerkung
Diese Option ist für PyTorch 1.12.0 und höher verfügbar.
from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", distribution={"pytorchddp": {"enabled": True}} # runs mpirun in the backend ) -
SageMaker unterstützt den PyTorch
torchrun
Launcherfür verteiltes Training auf GPU basierten EC2 Amazon-Instances wie P3 und P4 sowie Trn1, das vom Trainium-Gerät unterstützt wird.AWS Um PyTorch DistributedDataParallel (DDP)
im torchrun
Backend zu verwenden, fügen Sie es SageMaker dem Estimator hinzu.distribution={"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 Konstruktion eines SageMaker PyTorch Schätzers zur Ausführung von verteiltem Training auf zwei
ml.p4d.24xlarge
Instances mit der Verteilungsoption.torch_distributed
from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", distribution={"torch_distributed": {"enabled": True}} # runs torchrun in the backend )Weitere Informationen finden Sie unter Distributed PyTorch Training
and SageMaker PyTorch Estimator's distribution
argument in der SageMaker SDKPython-Dokumentation.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
Die technischen Daten der AWS Trainium-Geräte finden Sie unter Trainium Architecture in der Neuron-Dokumentation.AWS Um auf den Trainium-basierten Instances zu trainieren, müssen Sie nur den Trn1-Instanzcode als Zeichenfolge für das Argument der Estimator-Klasse
ml.trn1.*
angeben.instance_type
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 Containers for PyTorch Neuron ab Version 1.11.0 verfügbar. Eine vollständige Liste der unterstützten Versionen von PyTorch Neuron finden Sie unter Neuron Containers im AWS Deep Learning Containers GitHub
Repository. Wenn Sie mit SageMaker Python einen Trainingsjob auf Trn1-Instances startenSDK, SageMaker wird automatisch der richtige Container aus Neuron
Containers, die von AWS Deep Learning Containers bereitgestellt werden, abgerufen und ausgeführt. Die Neuron Container sind mit Einstellungen und Abhängigkeiten für die Trainingsumgebung vorkonfiguriert, sodass Sie Ihre Trainingsaufgabe leichter an die SageMaker Trainingsplattform und Amazon EC2 Trn1-Instances anpassen können. Anmerkung
Um Ihren PyTorch Trainingsjob auf Trn1-Instances mit auszuführen, sollten Sie Ihr Trainingsskript ändern SageMaker, um Prozessgruppen mit dem Backend zu initialisieren und/zu verwenden.
xla
PyTorch XLAZur Unterstützung des XLA Einführungsprozesses SDK stellt AWS Neuron Neuron zur Verfügung, mit PyTorch dem Operationen in XLA Trainium-Befehle umgewandelt werden. PyTorch Informationen zum Ändern Ihres Trainingsskripts finden Sie im Entwicklerhandbuch für Training mit PyTorch Neuron ( torch-neuronx
) in der Neuron-Dokumentation.AWS Weitere Informationen finden Sie unter Distributed Training with PyTorch Neuron on Trn1-Instances
und SageMaker PyTorch Estimator's distribution
argument in der Python-Dokumentation. SageMaker SDK -
Um es zu verwenden SageMaker, fügen Sie es MPI Ihrem Schätzer hinzu
distribution={"mpi": {"enabled": True}}
. Die MPI Verteilungsoption ist für die folgenden Frameworks verfügbar: MXNet PyTorch, und TensorFlow. -
Um einen Parameterserver in zu verwenden SageMaker, fügen Sie ihn
distribution={"parameter_server": {"enabled": True}}
zu Ihrem Schätzer hinzu. Die Parameterserveroption ist für die folgenden Frameworks verfügbar: MXNet PyTorch, und TensorFlow.Tipp
Weitere Informationen zur Verwendung der Serveroptionen MPI und des Parameters pro Framework finden Sie unter den folgenden Links zur SageMaker SDKPython-Dokumentation.
-
MXNetDistributed Training
und das Argument von SageMaker MXNet distribution
Estimator -
PyTorch Distributed Training
und das Argument von SageMaker PyTorch Estimator distribution
-
TensorFlow Distributed Training
und das Argument von SageMaker TensorFlow distribution
Estimator.
-