Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

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.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten