Hardware, Laufzeitumgebungen und Entwicklerökosystem
Data Parallelism
Verteilte Verarbeitung unterschiedlicher Daten mit Modellkopien.
Bei Datenparallelität liegt auf jedem Beschleuniger eine vollständige Kopie des Modells, und jeder bearbeitet andere Datenbeispiele. Nach jedem Schritt werden die berechneten Änderungen zusammengeführt, sodass alle Kopien im selben Zustand bleiben. Das ist die einfachste Form verteilten Trainings. Rajbhandari et al.
Die Grenze ist der Speicher, nicht die Rechenleistung
Weil jede Kopie vollständig ist, muss das Modell auf eine einzelne Karte passen. Dazu kommen beim Training Gradienten und Optimiererzustände, die ein Mehrfaches des Modells belegen. Sobald das nicht mehr hineinpasst, reicht Datenparallelität allein nicht, und Verfahren kommen dazu, die das Modell selbst aufteilen. Shoeybi et al.
Der zweite Engpass ist die Abstimmung. Nach jedem Schritt müssen alle Beteiligten ihre Änderungen austauschen, was Netzwerklast erzeugt und mit der Zahl der Beschleuniger wächst.
So kannst du dir das vorstellen
Zehn Sachbearbeiter mit identischen Handbüchern bearbeiten verschiedene Akten und gleichen danach ihre Notizen ab. Das Verfahren skaliert, solange das Handbuch auf jeden Schreibtisch passt und der Abgleich nicht länger dauert als die Arbeit. Das Bild erklärt die beiden Grenzen, es beschreibt keinen konkreten Aufbau.
Was es in der Praxis konkret bedeutet
Für Inferenz ist das die übliche Betriebsform: mehrere Instanzen desselben Modells hinter einem Lastverteiler, jede bedient andere Anfragen. Eine Abstimmung untereinander braucht es dabei nicht, weil nichts gelernt wird. Relevant wird die Unterscheidung erst beim Training oder bei Modellen, die nicht auf eine Karte passen.
Wo es verwechselt wird
Datenparallelität verteilt Daten, nicht das Modell. Und im Inferenzbetrieb ist der Begriff meist überflüssig: Dort heißt dasselbe schlicht horizontale Skalierung.
Verwandte Begriffe
Tensor Parallelism, Pipeline Parallelism, ZeRO, Compute, VRAM, Managed Inference.