LLM-Parallelismus: Wie unterscheiden sich TP, PP, DP und EP?

Automatische Übersetzung

Dieser Artikel wurde automatisch aus der englischen Originalversion übersetzt.

Tensorparallelismus teilt Operationen auf Weights auf. Pipelineparallelismus teilt Schichten auf. Datenparallelismus beim Serving betreibt unabhängige Model-Replikate. Expertenparallelismus verteilt die Experten eines Mixture-of-Experts-Models. Entscheiden Sie anhand des Speicherbedarfs des Models, des Anfrageaufkommens und der Verbindungen zwischen GPUs.

Dies sind vier gängige Ansätze. Große Deployments können sie kombinieren, und beim Training mit langem Kontext kann zusätzlich Sequenz- oder Kontextparallelismus zum Einsatz kommen.

Was speichert jede GPU?

AnsatzModel-VerteilungZu berücksichtigende Kommunikation
Tensorparallelismus, TPTeile von Weight-MatrizenHäufige kollektive Operationen während der Model-Ausführung
Pipelineparallelismus, PPGruppen aufeinanderfolgender SchichtenWeitergabe von Activations zwischen Stufen
Datenparallelismus, DPVollständige Serving-ReplikateKeine Model-Berechnungen zwischen Replikaten bei unabhängigen Anfragen
Expertenparallelismus, EPUnterschiedliche MoE-ExpertenRouting von Tokens zu Experten, oft über All-to-All-Austausch

DP beim Training unterscheidet sich von Serving-Replikaten: Beim Training werden Gradienten zusammengeführt, und ZeRO oder FSDP können den Trainingszustand aufteilen. MoE-Systeme können auch gemeinsame Komponenten koordinieren, selbst wenn ein Teil der Arbeit datenparallel erfolgt.

Der Llama-3-Bericht beschreibt kombinierten Parallelismus beim Training großer Models und pipelineparallele Inference. Das Deployment zeigt, warum Model-Verteilung und Topologie gemeinsam betrachtet werden müssen; es legt keine universelle Konfiguration fest.

Wählen Sie die kleinste Gruppe, die den Workload bewältigt

Wenn ein Serving-Model mit ausreichender Kapazität für den KV cache auf eine GPU passt, testen Sie zunächst unabhängige Replikate. Sie können den gesamten Throughput erhöhen, ohne jeder Anfrage kollektive Operationen hinzuzufügen.

Wenn das Model mehrere GPUs benötigt, testen Sie TP innerhalb eines Knotens mit schnellen GPU-Verbindungen. Mehr Shards können den Speicherbedarf pro GPU senken, verursachen aber zusätzliche Kommunikation. Wenn das Model mehrere Knoten umfasst, vergleichen Sie PP und Kombinationen aus TP und PP; ungleiche Laufzeiten der Stufen und Leerlaufphasen der Pipeline können die Auslastung verringern.

Messen Sie bei einem MoE-Model die Expertenverteilung, die Verteilung der Tokens und den Datenverkehr zwischen GPUs, bevor Sie EP hinzufügen. Der verfügbare Speicher für Experten ist nur ein Teil der Entscheidung.

Halten Sie Prompts, Ausgabelängen, Präzision und Latency-Grenzwerte im Vergleich konstant. Geben Sie den Throughput für die gesamte Serving-Gruppe an; die Division durch die GPU-Anzahl sagt nicht voraus, wie eine andere Topologie skaliert.

Der Abschnitt zum Parallelismus im LLM Engineering Guide veranschaulicht die vier Verteilungen.