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.
Häufig gestellte Fragen zur Amazon SageMaker AI-Bibliothek für verteilte Datenparallelität
Im Folgenden finden Sie Antworten auf häufig gestellte Fragen zur SMDDP-Bibliothek.
F: Wie werden bei der Nutzung der Bibliothek die allreduce
CPU-Instances verwaltet, die diese unterstützen? Muss ich heterogene CPU-GPU-Cluster erstellen, oder erstellt der SageMaker AI-Dienst zusätzliche C5s für Jobs, die die SMDDP-Bibliothek verwenden?
Die SMDDP-Bibliothek unterstützt nur GPU-Instanzen, genauer gesagt P4d- und P4de-Instanzen mit NVIDIA A100 und EFA. GPUs Es werden keine zusätzlichen C5- oder CPU-Instances gestartet. Wenn sich Ihr SageMaker KI-Trainingsjob auf einem P4D-Cluster mit 8 Knoten befindet, werden nur 8 Instanzen verwendet. ml.p4d.24xlarge
Es werden keine zusätzlichen Instances bereitgestellt.
F: Ich habe einen Trainingsjob, der 5 Tage für eine einzelne ml.p3.24xlarge
Instance mit einem Satz von Hyperparametern H1 (Lernrate, Batchgröße, Optimizer usw.) dauert. Reicht die Verwendung der Datenparallelitätsbibliothek von SageMaker KI und eines fünfmal größeren Clusters aus, um eine ungefähre fünffache Beschleunigung zu erreichen? Oder muss ich die Trainings-Hyperparameter erneut aufrufen, nachdem ich die SMDDP-Bibliothek aktiviert habe?
Die Bibliothek ändert die gesamte Batchgröße. Die neue Gesamtstapelgröße wird linear mit der Anzahl der verwendeten Trainings-Instances skaliert. Aus diesem Grund müssen Hyperparameter wie die Lernrate geändert werden, um die Konvergenz sicherzustellen.
F: Unterstützt die SMDDP-Bibliothek Spot?
Ja. So verwenden Sie Managed Spot Training. Sie geben den Pfad zur Checkpoint-Datei im Trainingsjob an SageMaker . Sie speichern und stellen Checkpoints in ihrem Trainingsskript wieder her, wie in den letzten Schritten von Verwenden Sie die SMDDP-Bibliothek in Ihrem TensorFlow Schulungsskript (veraltet) und Verwenden Sie die SMDDP-Bibliothek in Ihrem Trainingsskript PyTorch beschrieben.
F: Ist die SMDDP-Bibliothek für eine Konfiguration mit einem Host und mehreren Geräten relevant?
Die Bibliothek kann für Trainings mit einem Host und mehreren Geräten verwendet werden. Leistungsverbesserungen bietet die Bibliothek jedoch nur bei Trainings mit mehreren Hosts.
F: Wo sollte der Trainingsdatensatz gespeichert werden?
Der Trainingsdatensatz kann in einem Amazon S3 S3-Bucket oder auf einem Amazon FSx Drive gespeichert werden. In diesem Dokument finden Sie verschiedene unterstützte Eingabedateisysteme für einen Trainingsjob
F: Ist es bei der Verwendung der SMDDP-Bibliothek zwingend erforderlich, Trainingsdaten FSx für Lustre zu haben? Können Amazon EFS und Amazon S3 verwendet werden?
Wir empfehlen Ihnen generell, Amazon zu verwenden FSx , da es eine geringere Latenz und einen höheren Durchsatz bietet. Wenn Sie möchten, können Sie auch Amazon EFS oder Amazon S3 verwenden.
F: Kann die Bibliothek mit CPU-Knoten verwendet werden?
Nein. Informationen zu Instance-Typen, die von der SMDDP-Bibliothek unterstützt werden, finden Sie unter. Unterstützte Instance-Typen
F: Welche Frameworks und Framework-Versionen werden derzeit bei der Markteinführung von der SMDDP-Bibliothek unterstützt?
Die SMDDP-Bibliothek unterstützt derzeit PyTorch v1.6.0 oder höher und v2.3.0 oder höher. TensorFlow Sie unterstützt 1.x nicht. TensorFlow Weitere Informationen darüber, welche Version der SMDDP-Bibliothek in AWS Deep Learning Containers verpackt ist, finden Sie unter Versionshinweise für Deep Learning-Container.
F: Unterstützt die Bibliothek AMP?
Ja, die SMDDP-Bibliothek unterstützt Automatic Mixed Precision (AMP) von Haus aus. Für die Verwendung von AMP sind außer den Änderungen an Ihrem Trainingsskript auf Framework-Ebene keine weiteren Maßnahmen erforderlich. Wenn Gradienten aktiviert sind FP16, wird der Vorgang in der SageMaker AI-Datenparallelitätsbibliothek ausgeführt. AllReduce
FP16 Weitere Informationen zur Implementierung von AMP APIs in Ihrem Trainingsskript finden Sie in den folgenden Ressourcen:
-
Frameworks — PyTorch
in der NVIDIA Deep Learning Performance-Dokumentation -
Frameworks — TensorFlow
in der NVIDIA Deep Learning Performace-Dokumentation -
Automatic Mixed Precision for Deep Learning
in den NVIDIA-Entwicklerdokumenten -
Vorstellung der systemeigenen PyTorch automatischen Mixed-Precision-Technologie für schnelleres Training auf NVIDIA GPUs
im Blog PyTorch -
TensorFlow gemischte Präzision APIs
in der TensorFlow Dokumentation
F: Wie stelle ich fest, ob mein verteilter Trainingsjob aufgrund von I/O-Engpässen verlangsamt wird?
Bei einem größeren Cluster erfordert der Trainingsjob einen höheren I/O-Durchsatz. Daher kann es länger dauern (mehr Epochen), bis der Trainingsdurchsatz die maximale Leistung erreicht. Dies deutet darauf hin, dass I/O-Engpässe auftreten und der Cache schwieriger aufzubauen ist, wenn Sie die Knoten vergrößern (höhere Durchsatzanforderungen und komplexere Netzwerktopologie). Weitere Informationen zur Überwachung des FSx CloudWatch Amazon-Durchsatzes finden Sie unter Monitoring FSx for Lustre im FSx for Lustre-Benutzerhandbuch.
F: Wie behebe ich I/O-Engpässe, wenn ich einen verteilten Trainingsjob mit Datenparallelität ausführe?
Wir empfehlen Ihnen dringend, Amazon FSx als Datenkanal zu verwenden, wenn Sie Amazon S3 verwenden. Wenn Sie Amazon bereits verwenden, FSx aber immer noch I/O-Engpassprobleme haben, haben Sie Ihr FSx Amazon-Dateisystem möglicherweise mit einem niedrigen I/O-Durchsatz und einer geringen Speicherkapazität eingerichtet. Weitere Informationen zur Schätzung und Auswahl der richtigen Größe der I/O-Durchsatzkapazität finden Sie unter Nutzen Sie Amazon FSx und richten Sie eine optimale Lager- und Durchsatzkapazität ein.
F: (Für die Bibliothek v1.4.0 oder höher) Wie behebe ich den Invalid backend
Fehler beim Initialisieren der Prozessgruppe.
Wenn Sie ValueError: Invalid backend: 'smddp'
beim Aufrufen auf die Fehlermeldung stoßeninit_process_group
, liegt das an der grundlegenden Änderung in der SMDDP-Bibliothek v1.4.0 und höher. Sie müssen den PyTorch Client der Bibliothek importierensmdistributed.dataparallel.torch.torch_smddp
, der sich smddp
als Backend für registriert. PyTorch Weitere Informationen hierzu finden Sie unter Verwenden Sie die SMDDP-Bibliothek in Ihrem Trainingsskript PyTorch .
F: (Für die SMDDP-Bibliothek v1.4.0 oder höher) möchte ich die kollektiven Primitiven der Schnittstelle aufrufen. torch.distributed
smddp
Backend?
In Version 1.4.0 unterstützt die SMDDP-Bibliothekall_reduce
,, broadcast
reduce
, all_gather
und von der Schnittstelle. barrier
torch.distributed
F: (Für die SMDDP-Bibliothek v1.4.0 oder höher) Funktioniert diese neue API mit anderen benutzerdefinierten DDP-Klassen oder -Bibliotheken wie Apex DDP?
Die SMDDP-Bibliothek wurde mit anderen verteilten datenparallelen Bibliotheken und Framework-Implementierungen von Drittanbietern getestet, die die Module verwenden. torch.distribtued
Die Verwendung der SMDDP-Bibliothek mit benutzerdefinierten DDP-Klassen funktioniert, solange die von den benutzerdefinierten DDP-Klassen verwendeten kollektiven Operationen von der SMDDP-Bibliothek unterstützt werden. In der vorherigen Frage finden Sie eine Liste der unterstützten Kollektive. Wenn Sie diese Anwendungsfälle haben und weitere Unterstützung benötigen, wenden Sie sich über das SageMaker AWS Support Center
F: Unterstützt die SMDDP-Bibliothek die Option bring-your-own-container (BYOC)? Falls ja, wie installiere ich die Bibliothek und führe einen verteilten Trainingsjob aus, indem ich ein benutzerdefiniertes Dockerfile schreibe?
Wenn Sie die SMDDP-Bibliothek und ihre minimalen Abhängigkeiten in Ihren eigenen Docker-Container integrieren möchten, ist BYOC der richtige Ansatz. Sie können Ihren eigenen Container mithilfe der Binärdatei der Bibliothek erstellen. Der empfohlene Prozess besteht darin, ein benutzerdefiniertes Dockerfile mit der Bibliothek und ihren Abhängigkeiten zu schreiben, den Docker-Container zu erstellen, ihn in Amazon ECR zu hosten und den ECR-Image-URI zu verwenden, um einen Trainingsjob mit der SageMaker generischen KI-Schätzerklasse zu starten. Weitere Anweisungen zur Vorbereitung einer benutzerdefinierten Dockerdatei für verteiltes Training in SageMaker KI mit der SMDDP-Bibliothek finden Sie unter. Erstellen Sie Ihren eigenen Docker-Container mit der SageMaker AI Distributed Data Parallel Library