Distributed Training
Entdecke, wie verteiltes Training AI-Arbeitslasten auf mehrere GPUs skaliert. Lerne, das Training von Ultralytics YOLO26 mit DDP zu beschleunigen und schneller präzise Ergebnisse zu erzielen.
Verteiltes Training ist eine Methode im maschinellen Lernen, bei der die Arbeitslast zum Trainieren eines Modells auf mehrere Prozessoren oder Maschinen verteilt wird. Dieser Ansatz ist unerlässlich für die Verarbeitung großer Datensätze und komplexer neuronaler Netzwerkarchitekturen, deren Training auf einem einzelnen Gerät ansonsten unverhältnismäßig viel Zeit in Anspruch nehmen würde. Durch die Nutzung der gebündelten Rechenleistung mehrerer Grafikprozessoren (GPUs) oder Tensorverarbeitungseinheiten (TPUs) beschleunigt verteiltes Training den Entwicklungszyklus erheblich. Dadurch können Forschende und Ingenieurinnen und Ingenieure schneller iterieren und eine höhere Genauigkeit ihrer Modelle erreichen.
Funktionsweise von verteiltem Training#
Die zentrale Idee hinter verteiltem Training ist die Parallelisierung. Anstatt Daten nacheinander auf einem Chip zu verarbeiten, wird die Aufgabe in kleinere Teilmengen aufgeteilt, die gleichzeitig verarbeitet werden. Für die Umsetzung gibt es zwei grundlegende Strategien:
- Datenparallelisierung: Dies ist der häufigste Ansatz für Aufgaben wie die Objekterkennung. Bei diesem Verfahren wird auf jedem Gerät eine Kopie des vollständigen Modells bereitgestellt. 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, damit die Modellgewichte konsistent bleiben.
- Modellparallelisierung: 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 verteilt. Verschiedene Schichten oder Komponenten des Modells befinden sich auf unterschiedlichen Chips, und die Daten fließen zwischen ihnen. Dies ist häufig für das Training umfangreicher Basismodelle und großer Sprachmodelle (LLMs) erforderlich.
Anwendungen in der Praxis#
Verteiltes Training hat Branchen grundlegend verändert, da es die Lösung von Problemen ermöglicht, die zuvor aus Sicht der Rechenleistung nicht umsetzbar waren.
- Autonomes Fahren: Die Entwicklung sicherer autonomer Fahrzeuge erfordert die Analyse von Petabytes an Video- und Sensordaten. Ingenieurinnen und Ingenieure im Automobilbereich nutzen große verteilte Cluster, um Bildverarbeitungsmodelle für die semantische Segmentierung in Echtzeit und die Fahrbahnerkennung zu trainieren. Diese enorme Größenordnung stellt sicher, dass KI im Automobilbereich zuverlässig auf unterschiedliche Straßenbedingungen reagieren kann.
- Medizinische Bildgebung: Im Gesundheitswesen erfordert die Analyse hochauflösender 3D-Aufnahmen wie MRT-Scans erheblichen Speicherplatz und hohe Rechenleistung. Verteiltes Training ermöglicht es Forschenden, leistungsfähige Diagnosewerkzeuge zur Tumorerkennung und für andere wichtige Aufgaben zu entwickeln. Mithilfe von Frameworks wie NVIDIA MONAI können Krankenhäuser Modelle mit vielfältigen Datensätzen trainieren, ohne an Speichergrenzen zu stoßen, und so die Ergebnisse von KI im Gesundheitswesen verbessern.
Verteiltes Training mit Ultralytics nutzen#
Die Bibliothek ultralytics erleichtert die Implementierung von Training mit verteiltem Datenparallelismus (DDP). Du kannst das Training deiner hochmodernen 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])Verwandte Konzepte und Vergleiche#
Um ihre jeweiligen Aufgaben zu verstehen, ist es hilfreich, verteiltes Training von ähnlichen Begriffen im Umfeld des maschinellen Lernens abzugrenzen:
- Im Vergleich zu föderiertem Lernen: Obwohl bei beiden Ansätzen mehrere Geräte beteiligt sind, unterscheiden sich ihre Ziele. Beim verteilten Training werden Daten in der Regel in einem leistungsfähigen Cluster zentralisiert, um die Geschwindigkeit zu maximieren. Beim föderierten Lernen bleiben die Daten dagegen dezentral auf den Geräten der Nutzenden (etwa Smartphones), um den Datenschutz zu priorisieren. Das globale Modell wird aktualisiert, ohne dass Rohdaten jemals ihren Ursprungsort verlassen.
- Im Vergleich zum Hochleistungsrechnen (HPC): Hochleistungsrechnen ist ein umfassendes Gebiet, das auch Supercomputing für wissenschaftliche Simulationen wie Wettervorhersagen umfasst. Verteiltes Training ist eine spezifische Anwendung des Hochleistungsrechnens auf Optimierungsalgorithmen im Deep Learning. Dabei kommen häufig spezielle Kommunikationsbibliotheken wie NVIDIA NCCL zum Einsatz, 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, indem sie verwaltete Umgebungen anbieten. So ermöglicht die Ultralytics Platform die Verwaltung von Datensätzen und das Starten von Trainingsläufen, die in Cloud-Umgebungen oder lokalen Clustern bereitgestellt werden können. Diese Integration optimiert den Arbeitsablauf von der Datenannotation bis zur abschließenden Bereitstellung des Modells und sorgt dafür, dass die Skalierung auf mehrere GPUs so reibungslos wie möglich verläuft. Ebenso stellen Cloud-Anbieter wie Google Cloud Vertex AI und Amazon SageMaker eine leistungsfähige Infrastruktur für die Ausführung verteilter Trainingsaufträge im Unternehmensmaßstab bereit.









