Expertenparallelität in Mixture-of-Experts-Modellen

Modelle mit Hunderten Milliarden oder sogar Billionen Parametern erzielen Spitzenleistungen in der Verarbeitung natürlicher Sprache, im Bereich Computer Vision und in weiteren Anwendungsfeldern. Allerdings ist das Training – oder sogar schon der reine Betrieb – solcher riesigen Sprachmodelle mit heutiger Hardware extrem rechenintensiv und teuer. Um diese Systeme weiter zu skalieren, wurden Verfahren entwickelt, die die Rechenarbeit eines Modells auf viele Prozessoren oder Grafikprozessoren (GPUs) verteilen. Strategien wie Datenparallelität, Tensorparallelität und Pipelineparallelität haben die Grenzen des Machbaren deutlich verschoben.

Trotzdem reicht Parallelität allein nicht aus, um die Ineffizienz zu beseitigen, dass bei jedem Token sämtliche Teile eines Netzwerks berechnet werden. Um dieses Problem stärker zu adressieren, wurde die Mixture-of-Experts-Architektur (MoE) vorgeschlagen. Dabei wird ein Netzwerk in mehrere kleinere, spezialisierte Teilnetze aufgeteilt, die als Experten bezeichnet werden.

Expertenparallelität geht dabei noch einen Schritt weiter, indem diese Experten auf unterschiedliche GPUs oder Nodes verteilt werden. In diesem Beitrag erklären wir, was Expertenparallelität ist, wie sie funktioniert, wie sie sich von anderen Parallelisierungstechniken unterscheidet und warum sie ein zentraler Baustein moderner KI-Systeme ist.

Zentrale Erkenntnisse

  • Effiziente Skalierung durch Expert-Sharding: Expertenparallelität verteilt vollständige Experten eines Mixture-of-Experts-Modells auf GPUs oder Nodes. Dadurch wird das Training von Systemen mit Billionen Parametern praktikabel, weil jede GPU nur die Parameter ihrer eigenen Experten halten muss – im Gegensatz zur Datenparallelität, bei der das gesamte Modell repliziert wird.
  • Sparse Aktivierung spart Rechenaufwand: MoE nutzt eine spärliche Aktivierung, sodass pro Token nur eine kleine Top-k-Auswahl an Experten aktiv wird. Das verringert die benötigte Rechenleistung beim Training sehr großer, kapazitätsstarker Modelle.
  • Kombinierbar mit anderen Parallelformen: Expertenparallelität lässt sich gemeinsam mit Daten-, Tensor- und Pipelineparallelität einsetzen. Dadurch entstehen hybride Trainingsansätze, die Rechenlast, Speicherbedarf und Kommunikationskosten in großen GPU-Clustern ausbalancieren.
  • Unterstützung durch Frameworks: DeepSpeed, Megatron-LM und TensorRT-LLM bieten MoE- und Expert-Parallel-Training über Konfigurationen wie ep_size und num_experts an.
  • Herausforderungen und Optimierung: Das Routing über Gating kann zusätzlichen Kommunikationsaufwand und Probleme beim Lastenausgleich verursachen. Diese Effekte werden häufig durch klüger gestaltete Gating-Mechanismen, schnelle Interconnects mit hoher Bandbreite und geringe Latenz sowie hybride Parallel-Setups abgeschwächt.

Was ist Expertenparallelität?

Vereinfacht gesagt beschreibt Expertenparallelität das Verteilen der Experten eines Modells auf mehrere Geräte sowie das gezielte Weiterleiten von Eingaben an die passenden Geräte. In einer Mixture-of-Experts-Schicht ist jeder Experte ein Feed-Forward-Block (meist ein mehrschichtiges Perzeptron, also ein MLP), der Tokens unabhängig verarbeitet. Klassische MoE-Modelle nutzen ein gelerntes Routing-Netz, das für jede Eingabe die Top-k-Experten auswählt.

Diese ausgewählten Experten berechnen ihre Ergebnisse parallel, und anschließend werden die Ausgaben mithilfe von Gating-Gewichten zusammengeführt. Diese Gewichte legen fest, wie stark jeder Experte zum Endergebnis beiträgt.

Spärliche Aktivierung bedeutet, dass pro Token höchstens k Experten aktiv sind. Die übrigen Experten bleiben inaktiv, was Rechenressourcen spart. Expertenparallelität nutzt diese Sparsität, indem unterschiedliche Experten verschiedenen Geräten zugewiesen werden, sodass jede GPU nur die Tokens verarbeitet, die zu ihren Experten geroutet werden.

Durch die Verteilung der Experten sinken Speicher- und Rechenlast pro Gerät. Da jede GPU lediglich ihre eigenen Expertenparameter vorhalten muss und nicht den kompletten Expertenpool, lassen sich MoE-Modelle mit sehr vielen Experten zuverlässig skalieren. Weil jedes Token nur einen kleinen Teil der Modellparameter berührt, können extrem große Netze auch mit begrenztem Hardwarebudget trainiert werden.

Wie Expertenparallelität funktioniert

Um die Arbeitsweise in der Praxis besser zu verstehen, lohnt sich ein Blick auf den Ablauf: wie Tokens geroutet werden, wie Experten ausgewählt werden und wie ihre Berechnungen über GPUs hinweg koordiniert sind. Wenn ein Eingabe-Token eine MoE-Schicht mit Expertenparallelität erreicht, passiert Folgendes:

image

  1. Routing: Ein Gating-Router berechnet für jeden Experten einen Score. Für das Token werden die Top-k-Experten mit den höchsten Werten ausgewählt. Einige Varianten wie Switch Transformers gehen weiter und wählen nur einen einzigen Experten (k=1), was den Overhead zusätzlich reduziert.
  2. Verteilung: Die Tokens werden an die GPUs geschickt, auf denen die ausgewählten Experten liegen. Da jede GPU nur einen Teil der Experten speichert, entsteht eine Many-to-One-Beziehung: Mehrere Tokens können auf derselben GPU landen, wenn sie dieselben Experten wählen.
  3. Berechnung: Die GPUs mit den selektierten Experten führen Vorwärts- und Rückwärtsdurchläufe aus, verarbeiten ihre Tokens und berechnen Teilgradienten.
  4. Aggregation: Nach der Berechnung werden die Expert-Outputs an den Router zurückgesendet und mit den Gating-Gewichten zusammengeführt. In der Backpropagation laufen die Gradienten analog zurück zu den jeweiligen Experten.

GPU-Kommunikation

Expertenparallelität erzeugt zusätzlichen Kommunikationsaufwand, weil Tokens zu den passenden GPUs geschickt und anschließend wieder eingesammelt werden müssen. Typisch sind All-to-All-Muster, bei denen jede GPU Daten an viele andere sendet und empfängt – besonders wenn die Zahl der Experten oder GPUs stark wächst.

Framework-Integration

Mehrere Deep-Learning-Frameworks unterstützen Expertenparallelität. In DeepSpeed verwendet die MoE-API den Parameter ep_size, der die Anzahl der Prozesse in einer Expert-Parallel-Gruppe angibt. Die Gesamtzahl der Experten wird auf diese Prozesse verteilt. Beispielsweise bedeutet num_experts=8 und ep_size=2, dass jede Gruppe aus zwei GPUs vier Experten hält und Tokens nur innerhalb dieser Gruppe ausgetauscht werden.

TensorsRT-LLM und Megatron-LM ermöglichen hybride Parallelität. Dabei geben Nutzer –moe_ep_size (Expert-Parallel-Größe) und –moe_tp_size (Tensor-Parallel-Größe) an, wenn ein Checkpoint konvertiert wird. Tensorparallelität teilt die Gewichte innerhalb der Experten über Geräte auf, während Expertenparallelität komplette Experten über GPU-Gruppen verteilt. Solche Hybrid-Ansätze balancieren Speicher, Rechenaufwand und Kommunikation. Ein typischer MoE-Pipeline-Ablauf kombiniert z. B. Datenparallelität über Nodes, Tensorparallelität innerhalb der Expert-Matrizen und Expertenparallelität zur Verteilung der Experten über GPUs.

Expertenparallelität im Vergleich zu anderen Parallelisierungstechniken

Unterschiedliche Parallelstrategien teilen den Arbeitsaufwand auf verschiedene Weise. Die folgende Tabelle stellt Expertenparallelität den Verfahren Daten-, Tensor- und Pipelineparallelität gegenüber.

Parallelism type Description Use case
Data parallelism Copies the full model onto every GPU and splits the dataset into shards. Each GPU processes its shard, computes gradients, and synchronizes via all-reduce. Best for straightforward training when the model fits in one GPU’s memory; common in standard pipelines.
Tensor parallelism Divides layer weights across GPUs (such as column-splitting weight matrices). Each GPU computes part of the matmul, and outputs are merged with all-gather. Used when individual layers are too large for one GPU; typical for big Transformer models.
Pipeline parallelism Breaks the model into sequential stages across GPUs. Activations flow stage-to-stage forward, then gradients flow backward. Fits deep, sequential architectures and lowers memory use by spreading layers.
Expert parallelism Places complete MoE experts on separate GPUs. A gating router selects top-k experts per token, and only those GPUs process it. Ideal for sparse MoE models, scaling to trillions of parameters without proportional compute growth.

Das folgende Diagramm soll verdeutlichen, wie Expertenparallelität funktioniert und worin sie sich von anderen Ansätzen unterscheidet. Eine Darstellung zeigt, wie das Gating Tokens an die über GPUs verteilten Experten sendet. Eine weitere kontrastiert Daten-, Tensor-, Pipeline- und Expertenparallelität und illustriert, welche Dimension der Daten bzw. Modellstruktur jeweils partitioniert wird.

image

Vorteile der Expertenparallelität

Expertenparallelität bringt mehrere wesentliche Vorteile für großskaliges Training:

  • Hohe Effizienz bei Speicher und Rechenleistung: Da jede GPU nur einen Teil der Experten hält, sinkt der Speicherbedarf pro Gerät erheblich. So lassen sich Modelle mit extrem vielen Parametern erstellen, ohne dass eine einzelne GPU überlastet wird.
  • Skalierbarkeit auf riesige Modellgrößen: Expertenparallelität ist ein Grundpfeiler, um Modelle im Billionen-Parameter-Bereich und darüber hinaus zu ermöglichen. Die Modellkapazität wächst nahezu linear mit zusätzlichen Experten und GPUs, ohne die typischen Engpässe dichter Modelle. MoE-Modelle wie Switch Transformer, GShard und GLaM zeigen diese Skalierung bereits.
  • Reduzierte Trainingszeit und Kosten: Da mehr Kapazität ohne lineares Wachstum der Berechnung genutzt werden kann, lässt sich die gewünschte Modellqualität schneller erreichen. MoE-Modelle berichten deutliche Speed-Ups, etwa eine ungefähr vierfache Vor-Trainings-Beschleunigung gegenüber ähnlich leistungsfähigen dichten Modellen beim Switch Transformer.

Implementierungsbeispiel

Schauen wir uns nun ein praktisches Beispiel für Expertenparallelität mit DeepSpeed an. Der folgende Ausschnitt zeigt, wie eine MoE-Schicht in ein Transformer-ähnliches Modell eingebunden wird.

Beispielcode mit DeepSpeed

Hier ist ein vereinfachtes PyTorch/DeepSpeed-Beispiel, das zeigt, wie eine MoE-Schicht mit Expertenparallelität konfiguriert wird:

import torch
from deepspeed.moe.layer import MoE
from deepspeed.pipe import PipelineModule

class ExpertLayer(torch.nn.Module):
    def __init__(self, model_dim, hidden_dim):
        super().__init__()
        self.ff1 = torch.nn.Linear(model_dim, hidden_dim)
        self.ff2 = torch.nn.Linear(hidden_dim, model_dim)
        self.activation = torch.nn.ReLU()
    def forward(self, x):
        return self.ff2(self.activation(self.ff1(x)))

# Define the expert parallel group size and number of experts
ep_size = 2  # number of GPUs per expert group
num_experts = 8

# Create an MoE layer with distributed experts
moe_layer = MoE(
    hidden_size=1024,
    expert_class=ExpertLayer,
    num_experts=num_experts,
    ep_size=ep_size,
    k=1,  # top-1 gating (Switch style)
    expert_args=(1024, 4096)
)

# Integrate into a pipeline or Transformer model
model = PipelineModule(layers=[moe_layer, ...], loss_fn=torch.nn.CrossEntropyLoss())

Dieses Beispiel definiert einen kompakten Expert-MLP (ExpertLayer) und nutzt anschließend DeepSpeeds MoE-Schicht, um vollständige Experten über GPUs zu verteilen. Mit ep_size=2 werden GPUs in Zweiergruppen organisiert. Bei num_experts=8 und k=1 entscheidet ein leichtgewichtiger Router, welcher Experte jedes Token erhält. Jeder Experte ist ein zweistufiges MLP (Linear → ReLU → Linear), das 1024 → 4096 → 1024 abbildet. DeepSpeed übernimmt das Token-Routing innerhalb der EP-Gruppe automatisch. Danach wird moe_layer in eine PipelineModule-Struktur integriert, sodass das Gesamtmodell mit einem Standard-CrossEntropyLoss end-to-end trainiert werden kann.

Illustrative „Expert-Parallelism“-Konfiguration

Die folgende Pseudo-Konfiguration zeigt, wie DeepSpeed mehrere Parallelisierungsdimensionen bei MoE-Training kombiniert. Sie nutzt gemischte Präzision mit bf16, AdamW mit 2e-4 Lernrate und ZeRO Stage-2 zur Aufteilung von Optimizer-States und zur Reduktion des Speicherverbrauchs.

Es werden Datenparallelität mit Größe 4 (Modellreplikation über vier Gruppen), Tensorparallelität mit Größe 2 (Aufteilung großer Matrizen über zwei GPUs), Pipelineparallelität mit Größe 1 (kein Pipelining) sowie Expertenparallelität mit Größe 4 (Verteilung der Experten über vier GPUs) eingesetzt.

{
  "bf16": { "enabled": true },
  "optimizer": { "type": "adamw", "params": { "lr": 2e-4 } },
  "zero_optimization": { "stage": 2 },
  "parallelism": {
    "data_parallel_size": 4,
    "tensor_parallel_size": 2,
    "pipeline_parallel_size": 1,
    "expert_parallel_size": 4
  },
  "moe": {
    "enabled": true,
    "num_experts": 64,
    "top_k": 2,
    "capacity_factor": 1.25,
    "load_balancing_loss_coef": 1e-2,
    "router": "softmax",
    "token_drop_policy": "capacity"  // or "dropless" depending on framework
  }
}

MoE Settings:

  • Enabled: true — erforderlich für MoE.
  • Num Experts: 64 — ein typischer Expertenumfang.
  • top_k: 2 — jedes Token wird nur an die zwei besten Experten geroutet.
  • capacity_factor: 1.25 — begrenzt, wie viele Tokens ein Experte verarbeiten darf; übliche Werte liegen etwa zwischen 1.0 und 2.0.
  • load_balancing_loss_coef: 0.01 — moderater Druck für gleichmäßige Expert-Nutzung.
  • router: softmax — eine Standardwahl für das Gating.
  • token_drop_policy: capacity oder dropless — regelt das Verhalten bei Überlastung eines Experten.

Anwendungsfälle und Einsatzbereiche

Expertenparallelität ist besonders geeignet für Modelle mit hoher Kapazität bei begrenztem Compute-Budget:

  • Training großer Sprachmodelle: Sehr große LLMs (GPT-4, Switch Transformers, Mixtral und andere) nutzen MoE-Schichten, um Parameterzahlen zu erhöhen und Rechenkosten kontrollierbar zu halten. Expertenparallelität ermöglicht den effizienten Betrieb über GPU-Cluster.
  • Spärliche Transformer-Architekturen: In Transformers werden MoE-Schichten meist mit Multi-Head-Attention-Blöcken kombiniert. Bei Mixtral 8×7B wird Top-k-Gating mit k=2 genutzt, also zwei Experten pro Token, deren Ausgaben gewichtet zusammengeführt werden. Expertenparallelität erlaubt, jeden Experten auf ein eigenes Gerät zu legen.
  • Effizientes Fine-Tuning: Bei sehr großen MoE-Modellen kann man nur einen Teil der Experten für neue Aufgaben feinjustieren und den Rest fix lassen. Expertenparallelität macht das effizient, weil nur die GPUs mit den aktiven Experten am Training teilnehmen müssen.
  • Adaptives Inferenz-Verhalten: Während der Inferenz werden nur die relevanten Experten aktiviert, was Latenz und Compute reduziert. Der Router entscheidet je Token über die aktiven Experten, während inaktive Experten keinerlei Ressourcen verbrauchen.

Herausforderungen und wichtige Punkte

Trotz der Vorteile bringt Expertenparallelität zusätzliche Komplexität mit sich:

Kommunikationsaufwand

Da Tokens zu den GPUs mit ihren ausgewählten Experten geschickt werden müssen, erzeugt Expertenparallelität an jeder MoE-Schicht All-to-All-Verkehr. Tokens gehen an Experten hinaus und kommen anschließend zurück. Bei großen Systemen kann diese Kommunikation zur dominanten Trainingszeit werden. Deshalb wird Expertenparallelität häufig mit Daten- oder Tensorparallelität kombiniert, um die Last zu verteilen. In der Switch-Transformer-Arbeit wurden diese Trade-offs über eine binäre Zuordnungsmatrix für Token-Expert-Routing und Kommunikationskosten formal beschrieben.

Lastenausgleich

Wenn einige Experten deutlich mehr Tokens zugewiesen bekommen als andere, entstehen GPU-Engpässe. Der Gating-Router muss zwischen Genauigkeit (beste Expertenwahl) und Balance (keine Überlastung einzelner GPUs) abwägen. Fortgeschrittene Strategien wie load-balanced gating können Tokens umverteilen, was jedoch mitunter die optimale Expertenwahl beeinträchtigt. Kapazitätsfaktor und Gating-Algorithmus müssen sorgfältig abgestimmt werden, um Hot-Spots, Überläufe oder Token-Drops zu vermeiden.

Hardware- und Infrastrukturanforderungen

Expertenparallelität erhöht den Druck auf GPU-Interconnects sowie CPU-Speicher. Nicht optimierte Dispatch-All-to-All-Operationen erzeugen viele kleine Nachrichten, die das Netzwerk belasten können. Moderne Interconnect-Technologien wie NVSwitch innerhalb eines Nodes sowie NVLink oder InfiniBand zwischen Nodes sind für großskaliges Expert-Parallel-Training nahezu zwingend erforderlich.

FAQ-Bereich

Wie unterscheidet sich Expertenparallelität von anderen Formen der Modellparallelität?

Bei Expertenparallelität werden komplette Experten (Teilnetze) über GPUs verteilt. Andere Verfahren teilen an anderen Stellen: Datenparallelität partitioniert Token-Batches, Tensorparallelität zerlegt Matrizen, und Pipelineparallelität teilt Schichten auf. Zusätzlich werden pro Token nur die ausgewählten Experten aktiviert, was Rechen- und Speicherbedarf reduziert.

Warum kombinieren wir MoE-Schichten mit Expertenparallelität?

Der Gating-Router routet jedes Token nur zu wenigen Experten (Top-k), wodurch die MoE-Schicht spärlich bleibt. Expertenparallelität platziert diese Experten auf unterschiedlichen GPUs oder Nodes. Dadurch kann die Zahl der Experten – und damit die Modellkapazität – weit über das hinaus wachsen, was auf einer einzelnen GPU möglich wäre. MoE und Expertenparallelität zusammen ermöglichen rechnerisch machbare Billionen-Parameter-Modelle.

Was sind die größten Herausforderungen bei Expertenparallelität?

Hauptprobleme sind Kommunikation, Lastverteilung und die Geschwindigkeit des Interconnects. Jedes Token muss an die GPUs mit seinen ausgewählten Experten geschickt werden, was All-to-All-Transfer pro Layer erfordert und sehr teuer sein kann. Wenn der Router schlecht balanciert, verstopfen einzelne GPUs, weil zu viele Tokens an wenige Experten gehen.

Verbesserte Routing-Algorithmen, sorgfältige Regularisierung der Gating-Verluste für Balance sowie schnelle Verbindungen wie NVLink oder InfiniBand sind entscheidend, um diese Einschränkungen zu überwinden.

Fazit

Daten-, Tensor- und Pipelineparallelität gehören zu den drei allgemeinen Formen der Modellparallelität und verteilen die Berechnung über Datenbatches, Matrizen oder Schichten. Expertenparallelität erweitert hingegen die Modellkapazität, indem vollständige Experten einer Mixture-of-Experts-Schicht über GPUs verteilt werden. Da jedes Token nur wenige Experten aktiviert, rechnen nur diese GPUs, wodurch sehr große spärliche Modelle effizient mit moderner Hardware trainiert werden können.

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

TensorRT und ONNX: High-Performance-ML auf NVIDIA-GPUs

AI/ML, Tutorial
Vijona16 Dez. um 12:58 Uhr Machine-Learning-Frameworks, Modell-Tools und Deployment-Strategien in der ML-Pipeline Machine-Learning-Frameworks, spezialisierte Modell-Tools und Deployment-Lösungen übernehmen jeweils unterschiedliche Aufgaben innerhalb eines Machine-Learning-(ML)-Workflows. In jeder Phase – von der Modellerstellung…