Verteiltes Training
Entdecken Sie, wie verteiltes Training KI-Workloads auf mehrere GPUs verteilt. Erfahren Sie, wie Sie das Ultralytics Training mit DDP beschleunigen können, um schnellere und genauere Ergebnisse zu erzielen.
Verteiltes Training ist eine Methode im maschinellen Lernen, bei der die Arbeitslast für das Training eines Modells auf mehrere
Prozessoren oder Maschinen aufgeteilt wird. Dieser Ansatz ist für die Verarbeitung großer Datensätze und komplexer neuronaler Netzwerkarchitekturen unerlässlich
, deren Training auf einem einzelnen Gerät sonst unpraktisch viel Zeit in Anspruch nehmen würde. Durch die Nutzung der
kombinierten Rechenleistung mehrerer
Grafikprozessoren (GPUs) oder
Tensor Units (TPUs) beschleunigt das verteilte Training den Entwicklungszyklus erheblich, sodass
Forscher und Ingenieure schneller iterieren und eine höhere
Genauigkeit ihrer Modelle erreichen können.
Wie verteiltes Training funktioniert
Die Kernidee hinter verteiltem Training ist die Parallelisierung. Anstatt Daten sequenziell auf einem Chip zu verarbeiten, wird die
Aufgabe in kleinere Teile aufgeteilt, die gleichzeitig verarbeitet werden. Es gibt zwei Hauptstrategien, um dies zu erreichen
:
-
Datenparallelismus: Dies
ist der gängigste Ansatz für Aufgaben wie die
Objekterkennung. Bei dieser Konfiguration wird eine Kopie des
gesamten Modells auf jedem Gerät abgelegt. Die globalen
Trainingsdaten werden in kleinere Stapel aufgeteilt, und
jedes Gerät verarbeitet gleichzeitig einen anderen Stapel. Nach jedem Schritt werden die Gradienten (Aktualisierungen des Modells)
über alle Geräte hinweg synchronisiert, um sicherzustellen, dass die
Modellgewichte konsistent bleiben.
-
Modellparallelismus: Wenn ein
neuronales Netzwerk (NN) zu groß ist, um in den
Speicher einer einzelnen GPU zu passen, wird das Modell selbst auf mehrere Geräte aufgeteilt. Verschiedene Schichten oder Komponenten des
Modells befinden sich auf verschiedenen Chips, und die Daten fließen zwischen ihnen. Dies ist oft notwendig für das Training massiver
Grundlagenmodelle und
großer Sprachmodelle (LLMs).
Anwendungsfälle in der Praxis
Verteiltes Training hat die Industrie verändert, indem es die Lösung von Problemen ermöglicht, die zuvor
rechnerisch nicht machbar waren.
-
Autonomes Fahren: Die Entwicklung sicherer
autonomer Fahrzeuge erfordert die Analyse
von Petabytes an Video- und Sensordaten. Automobilingenieure verwenden große verteilte Cluster, um Bildverarbeitungsmodelle für die
semantische Segmentierung und Spurerkennung in Echtzeit zu trainieren.
Dieser enorme Umfang stellt sicher, dass die
KI in Automobilsystemen zuverlässig auf
unterschiedliche Straßenbedingungen reagieren kann.
-
Medizinische Bildgebung: Im Gesundheitswesen erfordert die Analyse hochauflösender 3D-Scans wie MRTs
erhebliche Speicher- und Rechenleistung. Durch verteiltes Training können Forscher leistungsstarke
Diagnosetools für die
Tumorerkennung
und andere wichtige Aufgaben entwickeln. Mithilfe von Frameworks wie
NVIDIA können Krankenhäuser Modelle anhand verschiedener Datensätze trainieren,
ohne dass es zu Speicherengpässen kommt, wodurch sich die
KI-Ergebnisse im Gesundheitswesen verbessern.
Einsatz von verteiltem Training mit Ultralytics
Die ultralytics Die Bibliothek macht es einfach, Distributed Data Parallel (DDP)-Training zu implementieren.
Sie können Ihr Training auf dem neuesten Stand der Technik skalieren.
YOLO26 Modelle über mehrere GPUs hinweg, indem Sie einfach die
Geräteindizes in Ihren Trainingsargumenten angeben.
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model using two GPUs (device 0 and 1)
# The library automatically handles the DDP communication backend
results = model.train(data="coco8.yaml", epochs=100, device=[0, 1])
Verwandte Konzepte und Vergleiche
Es ist hilfreich, verteiltes Training von ähnlichen Begriffen im Machine-Learning-Ökosystem zu unterscheiden, um
ihre spezifischen Rollen zu verstehen:
-
Im Vergleich zum föderierten Lernen: Obwohl bei beiden Verfahren mehrere Geräte beteiligt sind, unterscheiden sich ihre Ziele. Beim verteilten
Training werden die Daten in der Regel in einem Hochleistungscluster zentralisiert, um die Geschwindigkeit zu maximieren. Im Gegensatz dazu
bleiben die Daten beim föderierten Lernen dezentral auf den
Benutzergeräten (wie Smartphones) gespeichert, um den Datenschutz zu priorisieren
und das globale Modell zu aktualisieren, ohne dass die Rohdaten
jemals die Quelle verlassen.
-
Im Vergleich zu High-Performance Computing (HPC): HPC ist ein weites Feld, das Supercomputing für
wissenschaftliche Simulationen wie Wettervorhersagen umfasst. Distributed Training ist eine spezifische Anwendung von HPC, die auf
Optimierungsalgorithmen im Deep Learning angewendet wird.
Es stützt sich häufig auf spezielle Kommunikationsbibliotheken wie
NVIDIA , um die Latenz zwischen GPUs zu minimieren.
Skalierung mit Cloud-Plattformen
Die Verwaltung der Infrastruktur für verteiltes Training kann komplex sein. Moderne Plattformen vereinfachen dies durch das Angebot
verwalteter Umgebungen. Beispielsweise Ultralytics
Benutzern die Verwaltung von Datensätzen und die Initiierung von Trainingsläufen, die in Cloud-Umgebungen oder lokalen Clustern bereitgestellt werden können. Diese
Integration optimiert den Workflow von der
Datenannotation bis zur endgültigen
Modellbereitstellung und stellt sicher, dass die Skalierung auf
mehrere GPUs so nahtlos wie möglich erfolgt. In ähnlicher Weise bieten Cloud-Anbieter wie
Google Vertex AI und
Amazon SageMaker eine robuste Infrastruktur für die Ausführung verteilter
Trainingsjobs im Unternehmensmaßstab.