Als nächstesNächster Leitfaden
Tensorparallelität für große Modelle
Technisch
Technischer Leitfaden
Wenn ein Modell zu groß ist, um auf eine GPU zu passen, wird das Modell selbst durch Modell- und Pipeline-Parallelität auf mehrere Geräte aufgeteilt.
This is what makes training giant language models with hundreds of billions of parameters physically possible.
Durch die Modellparallelität wird ein einzelnes Modell auf mehrere GPUs aufgeteilt, sodass kein Gerät alle Gewichte halten muss. Es gibt zwei Hauptgeschmacksrichtungen. Tensor-(Intra-Layer-)Parallelität teilt die Mathematik innerhalb einer Ebene auf, z. B. das Zerteilen einer großen Matrixmultiplikation auf GPUs, die jeweils einen Teil der Ausgabe berechnen. Durch die Pipeline-Parallelität (zwischen Schichten) werden verschiedene aufeinanderfolgende Schichten verschiedenen GPUs zugewiesen, sodass Schichtblock 1 auf GPU 0, Block 2 auf GPU 1 und so weiter lebt, wobei Aktivierungen wie am Fließband weitergeleitet werden. Die Herausforderung beim naiven Pipelining ist die „Blase“: Während GPU 0 im ersten Batch arbeitet, bleiben nachgeschaltete GPUs im Leerlauf. Beim Pipelining wird jede Charge in Mikrochargen aufgeteilt, sodass alle Phasen ausgelastet bleiben und die Auslastung erheblich verbessert wird.
Architekturentscheidungen beeinflussen über Jahre hinweg die Leistung und die Betriebskosten.
Technische Schulungen helfen Teams dabei, den richtigen Stack auszuwählen, nicht nur den neuesten.
Bessere technische Entscheidungen reduzieren Zuverlässigkeitsvorfälle in der Produktion.
Frameworks automatisieren zunehmend das schwierige Problem der Entscheidung, wie ein Modell auf mehrere Geräte aufgeteilt werden soll, indem sie Profilerstellung und Suche verwenden, um Rechenleistung und Kommunikation in Einklang zu bringen. Erwarten Sie eine engere Integration von Tensor-, Pipeline- und Datenparallelität (3D-Parallelität), eine intelligentere Mikro-Batch-Planung, um Pipeline-Blasen nahezu zu eliminieren, und Hardware mit schnelleren Verbindungen, sodass die Aufteilung einer einzelnen Schicht auf Chips für immer größere Modelle billiger und routinemäßiger wird.
Trainieren von Modellen im GPT-Stil mit NVIDIA Megatron-LM, das die Aufmerksamkeit jeder Transformatorschicht und die Feed-Forward-Matrizen über Tensorparallelität auf GPUs aufteilt.
Mithilfe von GPipe können verschiedene Schichten eines riesigen Visions- oder Sprachmodells auf separaten Beschleunigern platziert werden, während Mikro-Batching diese beschäftigt.
Die Pipeline-Engine von DeepSpeed unterteilt ein Modell mit mehreren Hundert Milliarden Parametern in Stufen über viele Knoten hinweg.
Kombination von Tensor-Parallelität innerhalb eines einzelnen 8-GPU-Servers mit Pipeline-Parallelität über mehrere Server hinweg, um ein Modell zu trainieren, das viel zu groß für eine Maschine ist.
Die Optimierung eines Benchmarks kann umfassendere Systemschwächen verbergen.
Infrastruktur- und Wartungskosten werden oft unterschätzt.
Sicherheits- und Beobachtbarkeitslücken können größer werden, wenn die Systeme komplexer werden.
Definieren Sie vor der Implementierung Latenz-, Qualitäts- und Kostenziele.
Benchmark unter realistischen Last- und Datenbedingungen.
Instrumentenüberwachung auf Fehler, Drift und Benutzereinflüsse.
Bereiten Sie vor der Skalierung Rollback- und Incident-Response-Pfade vor.
Free newsletter
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Wenn ein Modell zu groß ist, um auf eine GPU zu passen, wird das Modell selbst durch Modell- und Pipeline-Parallelität auf mehrere Geräte aufgeteilt. Dies macht das Training riesiger Sprachmodelle mit Hunderten von Milliarden Parametern physikalisch möglich.
Modell- und Pipeline-Parallelität teilen das Modell selbst auf mehrere Geräte auf und ermöglichen so das Training von Netzwerken, die weitaus größer sind, als jede einzelne GPU aufnehmen könnte.
Tensorparallelität teilt die Berechnung innerhalb einer einzelnen Ebene auf, indem sie beispielsweise eine große Gewichtsmatrix aufteilt, sodass jede GPU einen Teil der Ausgabe berechnet.
Early in a pipeline step, downstream stages have no input yet and sit idle, wasting GPU time; Diese Leerlauflücke wird Blase genannt.
Durch die Aufteilung eines Stapels in Mikrostapel können mehrere Mikrostapel gleichzeitig verschiedene Phasen belegen, wodurch alle GPUs ausgelastet bleiben und die Leerlaufzeit verkürzt wird.
Die Tensorparallelität kommuniziert häufig, um Teilmatrixergebnisse neu zu kombinieren. Daher wird sie dort platziert, wo die Verbindungsbandbreite am höchsten ist, innerhalb eines Knotens über NVLink.
Lerne weiter
Weitere Leitfäden zu diesem Thema ausgewählt
Als nächstesNächster Leitfaden
Tensorparallelität für große Modelle
Technisch