Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Verteiltes Training

Beschleunigen Sie das KI-Training mit verteiltem Training! Erfahren Sie, wie Sie die Trainingszeit verkürzen, Modelle skalieren und Ressourcen für komplexe ML-Projekte optimieren können.

Verteiltes Training ist eine leistungsstarke Technik im maschinellen Lernens (ML), die den Modellbildung beschleunigt, indem die Rechenlast auf mehrere Prozessoren verteilt wird, z. B. auf Grafikverarbeitungseinheiten (GPUs) oder Tensor Processing Units (TPUs). Durch die Nutzung der kombinierten Leistung gleichzeitiger Geräte - sei es auf einer einzelnen Workstation oder vernetzt über einen großen Cluster - können Entwickler die Zeit für das Training komplexer Deep Learning (DL)-Architekturen. Dieser Ansatz ist für die Verarbeitung riesiger Datensätze und die Entwicklung modernster Systeme für künstliche Intelligenz (KI), Er ermöglicht schnellere Iterationszyklen und umfangreichere Experimente.

Kernstrategien für die Parallelisierung

Um die Arbeitslast effektiv zu verteilen, verwenden Ingenieure in der Regel eine von zwei Hauptstrategien oder einen hybriden Ansatz um die Effizienz zu maximieren:

  • Datenparallelität: Dies ist die häufigste Methode für Aufgaben wie Objekterkennung. In dieser Konfiguration befindet sich eine vollständige Kopie des Modells auf jedem Gerät vorhanden. Die Trainingsdaten werden in kleinere Teile aufgeteilt, und jedes Gerät verarbeitet gleichzeitig eine andere Teilmenge. Während der Backpropagation-Phase werden die Gradienten Gradienten unabhängig voneinander berechnet und dann über alle Geräte synchronisiert, wobei Kommunikationsprotokolle wie das Message Passing Interface (MPI) synchronisiert, um die Modellgewichte konsistent zu aktualisieren.
  • Modellparallelität: Wenn ein neuronales Netzwerk (NN) zu groß ist, um in den den Speicher eines einzelnen GPU zu passen, ist Modellparallelität erforderlich. Die Schichten oder Komponenten des Modells werden auf verschiedene auf verschiedene Geräte aufgeteilt. Die Daten fließen sequentiell oder gleichzeitig zwischen den Geräten, während sie das Netzwerk durchlaufen. Diese Technik ist entscheidend für das Training massiver Grundlagenmodelle und Large Language Models (LLMs), bei denen die Anzahl der Parameter in die Billionen gehen kann und spezielle Tools wie Microsoft DeepSpeed zur Verwaltung des Speichers.

Anwendungsfälle in der Praxis

Die verteilte Ausbildung ermöglicht es der Industrie, Probleme zu lösen, die zuvor aufgrund von Zeit- oder Speicherbeschränkungen rechnerisch nicht machbar waren. oder Speicherbeschränkungen nicht möglich waren.

  • Autonomes Fahren: Die Entwicklung zuverlässiger selbstfahrender Autos erfordert die Verarbeitung von Petabytes an Video- und und Sensordaten. Automobilunternehmen nutzen große verteilte Cluster, um Bildverarbeitungsmodelle für die semantische semantische Segmentierung und Objektverfolgung zu trainieren. Durch den Einsatz von KI in Arbeitsabläufen der Automobilindustrie, können Ingenieure sicherheitskritische Modelle schnell iterieren, um die Leistung zu verbessern.
  • Medizinische Bildgebung: Unter KI im Gesundheitswesen erfordert die Analyse von hochauflösenden 3D Scans wie MRTs oder CTs erhebliche Rechenressourcen erforderlich. Verteiltes Training ermöglicht den Forschern hochpräzise Diagnosemodelle auf verschiedenen Datensätzen unter Wahrung der Privatsphäre trainieren. Frameworks wie NVIDIA CLARA stützen sich häufig auf verteilte Techniken um diese komplexen medizinischen Bilder effizient zu verarbeiten.

Implementierung von verteiltem Training mit YOLO

Die ultralytics Bibliothek vereinfacht die Implementierung von Distributed Data Parallel (DDP) Training. Sie können Ihr Training leicht skalieren von YOLO11 Modelle über mehrere GPUs durch einfache Angabe der Geräteindizes.

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Train the model using two GPUs (device 0 and 1)
# The library automatically handles DDP setup for parallel processing
results = model.train(data="coco8.yaml", epochs=5, device=[0, 1])

Verteiltes Training vs. verwandte Konzepte

Es ist wichtig, verteiltes Training von anderen verwandten Begriffen im KI-Ökosystem zu unterscheiden:

  • vs. Föderiertes Lernen: Bei beiden sind zwar mehrere Geräte beteiligt, aber ihre Hauptziele unterscheiden sich. Beim verteilten Lernen werden die Daten in der Regel in einem Hochleistungscluster zentralisiert, um Geschwindigkeit und Durchsatz zu maximieren. Unter Gegensatz dazu werden beim föderierten Lernen die Daten Daten dezentral auf Benutzergeräten (wie Smartphones), um den Datenschutz um den Datenschutz zu gewährleisten und Modellaktualisierungen zu aggregieren, ohne dass Rohdaten das Quellgerät nie verlassen.
  • vs. Hochleistungsrechnen (HPC): HPC ist ein weites Feld, das das Supercomputing für wissenschaftliche Simulationen, wie z. B. Wettervorhersagen. Verteiltes Training ist eine spezielle Anwendung von HPC, die auf Optimierungsalgorithmen in neuronalen neuronalen Netzen, wobei häufig spezielle Kommunikationsbibliotheken wie NVIDIA NCCL, um die Latenz zwischen GPUs zu reduzieren.

Tools und Ökosystem

Ein robustes Ökosystem von Open-Source-Tools und -Plattformen unterstützt die Durchführung von verteilten Schulungen:

  • Rahmenwerke: PyTorch bietet native Unterstützung über sein verteiltes Paket, während TensorFlow bietet Strategien wie MirroredStrategy für eine nahtlose Skalierung.
  • Orchestrierung: Die Verwaltung von Ressourcen in einem großen Cluster erfordert häufig Container-Orchestrierungs Tools wie Kubernetes oder Kubeflow, die die Bereitstellung und Skalierung von Schulungsaufgaben automatisieren.
  • Cloud-Infrastruktur: Große Anbieter bieten verwaltete Dienste wie AWS SageMaker und Google Cloud TPUs, die eine optimierte Infrastruktur für verteilte Arbeitslasten bieten und die Last der Hardware-Wartung beseitigen.
  • Universelle Skalierbarkeit: Bibliotheken wie Horovod und Ray bieten Framework-agnostische Ansätze zur Skalierung, die es Entwicklern ermöglichen, ihren ihren Code mit minimalen Änderungen an verteilte Umgebungen anzupassen.

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