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?
| Ansatz | Model-Verteilung | Zu berücksichtigende Kommunikation |
|---|---|---|
| Tensorparallelismus, TP | Teile von Weight-Matrizen | Häufige kollektive Operationen während der Model-Ausführung |
| Pipelineparallelismus, PP | Gruppen aufeinanderfolgender Schichten | Weitergabe von Activations zwischen Stufen |
| Datenparallelismus, DP | Vollständige Serving-Replikate | Keine Model-Berechnungen zwischen Replikaten bei unabhängigen Anfragen |
| Expertenparallelismus, EP | Unterschiedliche MoE-Experten | Routing 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.