Expert Parallelism
Erfahre, wie der Expertenparallelismus Mixture-of-Experts-Modelle auf GPUs verteilt, wodurch der Speicherbedarf gesenkt und gleichzeitig Routing, Kommunikation und Leistung ausbalanciert werden.
Expert-Parallelismus ist eine verteilte Rechentechnik, die verschiedene Experten aus einem Mixture-of-Experts-Modell auf unterschiedlichen GPUs oder Beschleunigern platziert. Anstatt dass jedes Gerät jeden Experten speichert, hält jedes Gerät nur eine Teilmenge. Ein gelernter Router sendet jeden Eingabetoken an die ausgewählten Experten, was es sehr großen Modellen ermöglicht, ihre Parameterkapazität zu erhöhen, ohne für jede Eingabe jeden Parameter zu aktivieren.
Die Technik wird speziell auf Mixture-of-Experts-Architekturen angewendet, nicht auf gewöhnliche dichte neuronale Netze. Sie wird häufig beim Training oder Bereitstellen großer Sprach- und Vision-Language-Modelle verwendet, deren Expertenschichten sonst zu viel Speicher auf einem einzelnen Gerät verbrauchen würden.
Wie Expert-Parallelismus funktioniert#
Eine MoE-Schicht enthält mehrere Expertennetzwerke, typischerweise Feed-Forward-Netzwerke, sowie einen Router. Für jeden Token erzeugt der Router Bewertungen und wählt eine kleine Anzahl von Experten aus, was oft als Top-k-Routing bezeichnet wird.
In einer Schicht mit acht Experten, die beispielsweise auf vier GPUs verteilt ist, speichert jede GPU möglicherweise zwei Experten. Die Verarbeitung folgt dann vier Hauptschritten:
- Der Router wählt Experten für jeden Token aus.
- Token werden zwischen GPUs ausgetauscht, damit sie die Geräte erreichen, die diese Experten hosten.
- Jeder Experte verarbeitet seine zugewiesenen Token lokal.
- Die Ergebnisse kehren zu den ursprünglichen Token-Positionen zurück und durchlaufen das Modell weiter.
Dieser Austausch stützt sich üblicherweise auf All-to-All-Kommunikation, eine kollektive Operation, die in der Dokumentation zu den kollektiven Operationen von NVIDIA NCCL beschrieben wird. Der Parallelitätsleitfaden für NVIDIA Megatron Bridge zeigt, wie die Anzahl der Experten und die Größe der Expertenparallelität die Anzahl der auf jeder GPU platzierten Experten bestimmen.
Expert-Parallelismus spart gerätespezifischen Speicher, da die Expertengewichte partitioniert sind. Er beseitigt jedoch weder Rechen- noch Kommunikationskosten: Token können in jeder MoE-Schicht Geräte- oder Knotengrenzen überschreiten.
Expert-Parallelismus im Vergleich zu verwandten Techniken#
Expert-Parallelismus ist eine Form des distributed training, teilt ein Modell jedoch anders auf als andere Strategien:
- Datenparallelität: Jedes Gerät speichert eine vollständige Modereplik und verarbeitet einen unterschiedlichen Batch. Gradienten werden zwischen den Repliken synchronisiert, wie in der Übersicht zum verteilten Training von PyTorch erläutert. Dies ist effektiv, wenn das vollständige Modell auf jedes Gerät passt.
- Tensor parallelism: Einzelne Gewichtsmatrizen und mathematische Operationen innerhalb einer Schicht werden auf Geräte aufgeteilt. Der Expert-Parallelismus weist stattdessen vollständige Experten Geräten zu.
- Pipeline parallelism: Aufeinanderfolgende Gruppen von Schichten laufen auf verschiedenen Geräten, wobei Mikro-Batches als Pipelinestufen durch sie hindurchfließen.
- Context parallelism: Lange Eingabesequenzen werden über Geräte hinweg partitioniert, um die Anforderungen an den Aktivierungsspeicher zu reduzieren.
- Expert-Tensor-Parallelismus: Experten werden auf Geräte verteilt, und jeder einzelne Experte wird zusätzlich per Tensor-Sharding aufgeteilt. Dieser hybride Ansatz kann größere Experten aufnehmen, führt jedoch zu zusätzlicher Kommunikation.
Diese Ansätze ergänzen sich. Große MoE-Systeme können Experten-, Daten-, Tensor-, Pipeline- und Kontextparallelismus je nach Modellgröße und Hardware-Topologie kombinieren.
Anwendungen in der Praxis#
Großflächige mehrsprachige Assistenten: Ein MoE-Sprachmodell kann viele Expertennetzwerke enthalten und dabei für jeden Token nur wenige aktivieren. Expert-Parallelismus verteilt diese Netzwerke auf einen Serving-Cluster, sodass das System eine hohe Modellkapazität beibehalten kann, ohne jeden Experten auf jede GPU zu laden. Produktions-Runtimes wie die vLLM-Bereitstellung mit Expertenparallelität und die TensorRT-LLM-Expertenparallelität unterstützen diese Art von Inferenz-Layout.
Multimodale Inhaltsanalyse: Ein großes MoE-Modell, das Bild-Patches und Text-Token verarbeitet, kann Eingaben durch ausgewählte Experten leiten, die über mehrere Beschleuniger verteilt sind. Dies kann das Dokumentenverständnis, die visuelle Fragenbeantwortung und andere multimodale KI-Dienste unterstützen, während der Expertenspeicher pro Gerät überschaubar bleibt. Dasselbe Prinzip gilt für spärliche, großflächige Vision Transformer, obwohl die meisten kompakten Echtzeit-Visionsmodelle dies nicht erfordern.
Vorteile, Engpässe und praktische Hinweise#
Expert-Parallelismus bietet drei Hauptvorteile: reduzierten Expertengewichtsspeicher pro GPU, Unterstützung für Modelle mit größerer Gesamtkapazität und effiziente spärliche Berechnungen, wenn pro Token nur wenige Experten aktiviert werden. Der Leitfaden zur Expertenparallelität von Amazon SageMaker veranschaulicht, wie ein expertenparalleler Grad die Verteilung über einen Cluster steuert.
Die größte Herausforderung ist die Lastenverteilung. Wenn der Router zu viele Token an einen Experten sendet, wird die GPU dieses Experten zu einem Nachzügler, während andere warten. Die Folgen sind ein geringerer Durchsatz, eine instabile Latenz und möglicherweise ein Verwerfen von Token, wenn die Expertenkapazität begrenzt ist. Ingenieure sollten Token pro Experten, Routing-Ausgleich, Kommunikationszeit, Speichernutzung und End-to-End-Latenz überwachen. Interconnects mit hoher Bandbreite und die Überlappung von Kommunikation und Berechnung können den Transfer-Overhead reduzieren.
Expert-Parallelismus ist bei der Verwendung eines dichten Modells wie Ultralytics YOLO26 unnötig. Das GPU-übergreifende Ultralytics-YOLO-Training verwendet stattdessen verteilte Datenparallelität:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Two-GPU YOLO training uses data parallelism, not expert parallelism.
results = model.train(
data="coco8.yaml",
epochs=10,
imgsz=640,
device=[0, 1],
)Dieser Workflow repliziert YOLO26 auf zwei GPUs und teilt die Trainings-Batches zwischen ihnen auf; er leitet Eingaben nicht an Expertennetzwerke weiter. Teams können auch das Ultralytics Platform Cloud Training verwenden, um Vision-Datensätze, Training, Metriken, Export und Bereitstellung zu verwalten, ohne verteilte Infrastrukturen manuell konfigurieren zu müssen.









