Distributed Training
Erfahre, wie verteiltes Training KI-Workloads über mehrere GPUs skaliert. Lerne, das Training von Ultralytics YOLO26 mit DDP für schnellere und genauere Ergebnisse zu beschleunigen.
Verteiltes Training ist eine Methode im maschinellen Lernen, bei der die Arbeitslast des Modelltrainings auf mehrere Prozessoren oder Maschinen verteilt wird. Dieser Ansatz ist entscheidend für die Verarbeitung umfangreicher Datensätze und komplexer neuronaler Netzwerkarchitekturen, deren Training auf einem einzelnen Gerät andernfalls eine unpraktische Menge an Zeit in Anspruch nehmen würde. Durch die Nutzung der kombinierten Rechenleistung mehrerer Graphics Processing Units (GPUs) oder Tensor Processing Units (TPUs) beschleunigt verteiltes Training den Entwicklungszyklus erheblich, was es Forschern und Ingenieuren ermöglicht, schneller zu iterieren und eine höhere Genauigkeit bei ihren Modellen zu erzielen.
Link to this sectionWie verteiltes Training funktioniert#
Der Kerngedanke hinter dem verteilten Training ist die Parallelisierung. Anstatt Daten sequenziell auf einem Chip zu verarbeiten, wird die Aufgabe in kleinere Teile unterteilt, die gleichzeitig verarbeitet werden. Es gibt zwei primäre Strategien, um dies zu erreichen:
- Datenparallelität: Dies ist der gängigste Ansatz für Aufgaben wie Objekterkennung. In diesem Setup wird eine Kopie des gesamten Modells auf jedem Gerät platziert. Die globalen Trainingsdaten werden in kleinere Batches unterteilt und jedes Gerät verarbeitet gleichzeitig einen anderen Batch. Nach jedem Schritt werden die Gradienten (Updates für das Modell) über alle Geräte hinweg synchronisiert, um sicherzustellen, dass die Modellgewichte konsistent bleiben.
- Modellparallelität: 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 unterschiedlichen Chips und Daten fließen zwischen ihnen. Dies ist oft notwendig für das Training massiver Basismodelle und Large Language Models (LLMs).
Link to this sectionPraxisanwendungen#
Verteiltes Training hat Branchen verändert, indem es möglich wurde, Probleme zu lösen, die zuvor rechnerisch nicht machbar waren.
- Autonomes Fahren: Die Entwicklung sicherer autonomer Fahrzeuge erfordert die Analyse von Petabytes an Video- und Sensordaten. Automobilingenieure nutzen große verteilte Cluster, um Vision-Modelle für die semantische Segmentierung und Spurerkennung in Echtzeit zu trainieren. Dieser massive Maßstab stellt sicher, dass die KI-Systeme in der Automobilbranche zuverlässig auf unterschiedliche Straßenbedingungen reagieren können.
- Medizinische Bildgebung: Im Gesundheitssektor erfordert die Analyse hochauflösender 3D-Scans wie MRTs erheblichen Speicher und Rechenleistung. Verteiltes Training ermöglicht es Forschern, leistungsstarke Diagnosetools für die Tumorerkennung und andere kritische Aufgaben zu entwickeln. Durch die Verwendung von Frameworks wie NVIDIA MONAI können Krankenhäuser Modelle auf diversen Datensätzen trainieren, ohne auf Speicherengpässe zu stoßen, was die Ergebnisse der KI im Gesundheitswesen verbessert.
Link to this sectionVerteiltes Training mit Ultralytics nutzen#
Die ultralytics-Bibliothek macht es einfach, das Distributed Data Parallel (DDP)-Training zu implementieren. Du kannst dein Training modernster YOLO26-Modelle auf mehrere GPUs skalieren, indem du einfach die Geräteindizes in deinen Trainingsargumenten angibst.
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])Link to this sectionVerwandte Konzepte und Vergleiche#
Es ist hilfreich, verteiltes Training von ähnlichen Begriffen im Ökosystem des maschinellen Lernens zu unterscheiden, um ihre spezifischen Rollen zu verstehen:
- Vs. Föderiertes Lernen: Obwohl beide mehrere Geräte einbeziehen, unterscheiden sich ihre Ziele. Verteiltes Training zentralisiert Daten normalerweise in einem Hochleistungs-Cluster, um die Geschwindigkeit zu maximieren. Im Gegensatz dazu hält föderiertes Lernen Daten dezentral auf Benutzergeräten (wie Smartphones), um die Datenschutz zu priorisieren, indem das globale Modell aktualisiert wird, ohne dass Rohdaten jemals die Quelle verlassen.
- Vs. High-Performance Computing (HPC): HPC ist ein breites Feld, das Supercomputing für wissenschaftliche Simulationen wie Wettervorhersagen umfasst. Verteiltes Training ist eine spezifische Anwendung von HPC, die auf Optimierungsalgorithmen im Deep Learning angewendet wird. Es stützt sich häufig auf spezialisierte Kommunikationsbibliotheken wie NVIDIA NCCL, um die Latenz zwischen GPUs zu minimieren.
Link to this sectionSkalierung mit Cloud-Plattformen#
Die Verwaltung der Infrastruktur für verteiltes Training kann komplex sein. Moderne Plattformen vereinfachen dies, indem sie verwaltete Umgebungen anbieten. Zum Beispiel ermöglicht die Ultralytics Platform Benutzern das Verwalten von Datensätzen und das Initiieren von Trainingsläufen, die in Cloud-Umgebungen oder lokalen Clustern bereitgestellt werden können. Diese Integration rationalisiert den Workflow von der Datenannotation bis zur finalen Modellbereitstellung und stellt sicher, dass die Skalierung auf mehrere GPUs so nahtlos wie möglich erfolgt. Ähnlich bieten Cloud-Anbieter wie Google Cloud Vertex AI und Amazon SageMaker eine robuste Infrastruktur für die Ausführung verteilter Trainingsjobs im Unternehmensmaßstab.






