Als nächstesNächster Leitfaden
Lookahead- und Lion-Optimierer
Technisch
Technischer Leitfaden
ZeRO (Zero Redundancy Optimizer) eliminiert die verschwenderische Speicherduplizierung der Datenparallelität durch Sharding des Optimiererstatus, der Verläufe und der Gewichtungen über GPUs hinweg.
It lets you train enormous models with the simplicity of data parallelism but a fraction of the per-GPU memory.
Bei der normalen Datenparallelität speichert jede GPU eine redundante vollständige Kopie des Optimiererstatus, der Verläufe und Parameter, was eine enorme Verschwendung darstellt, insbesondere für Adam, wo der Optimiererstatus ein Vielfaches der Größe des Modells selbst betragen kann. ZeRO, eingeführt von Microsoft in DeepSpeed, beseitigt diese Redundanz, indem es diese Tensoren auf GPUs verteilt, sodass jedes Gerät nur einen Slice besitzt. ZeRO gibt es in drei progressiven Stufen: Stufe 1 teilt den Optimierungsstatus auf, Stufe 2 fügt Gradienten-Sharding hinzu und Stufe 3 teilt die Parameter selbst auf. Bei Bedarf sammeln GPUs die fehlenden Slices über Kommunikation, berechnen sie und geben sie dann frei. Das Ergebnis ist ein deutlich geringerer Speicher pro GPU, was ein Training mit Milliarden bis Billionen Parametern ermöglicht und gleichzeitig das einfache Programmiermodell der Datenparallelität beibehält.
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.
Sharding wird zum Standard für groß angelegte Schulungen und ist keine exotische Option mehr. Erwarten Sie eine tiefere Integration mit Offloading (Schieben von Slices auf CPU oder NVMe über ZeRO-Infinity), eine bessere Überlappung von All-Gather und Reduce-Scatter mit Berechnungen, um deren Kosten zu verbergen, und Kombinationen mit Tensor- und Pipeline-Parallelität. Da die Modelle ständig wachsen, sind speichereffiziente Sharded-Optimierer von zentraler Bedeutung, um sie an realistische Hardwarebudgets anzupassen.
Verwendung von DeepSpeed ZeRO Stage 2 zur Feinabstimmung eines Sprachmodells mit mehreren Milliarden Parametern, das andernfalls den GPU-Speicher überlasten würde.
Training mit PyTorch FSDP, das Parameter, Verläufe und Optimiererstatus über GPUs verteilt und sie bei Bedarf pro Ebene sammelt.
Anwenden von ZeRO-Offload, um den Optimierungsstatus in den CPU-Speicher zu übertragen, sodass eine einzelne GPU ein Modell trainieren kann, das um ein Vielfaches größer ist als ihr VRAM.
Skalieren eines Billionen-Parameter-Modells mit ZeRO-Infinity durch Streaming von Parameter-Shards aus dem NVMe-Speicher, wenn GPU- und CPU-Speicher erschöpft sind.
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
ZeRO (Zero Redundancy Optimizer) eliminiert die verschwenderische Speicherduplizierung der Datenparallelität durch Sharding des Optimiererstatus, der Verläufe und der Gewichtungen über GPUs hinweg. Damit können Sie riesige Modelle mit der Einfachheit der Datenparallelität trainieren, aber mit einem Bruchteil des Speichers pro GPU.
Bei der Standarddatenparallelität wird auf jeder GPU eine vollständige Kopie des Optimiererstatus, der Verläufe und der Gewichtungen gespeichert. ZeRO teilt diese auf, sodass jede GPU nur einen Teil enthält.
Adam verwaltet laufende Schätzungen wie erste und zweite Momente pro Parameter, die in Kombination mit fp32-Mastergewichtungen die eigene Größe des Modells in den Schatten stellen können.
Stufe 1 teilt den Optimierungsstatus auf, Stufe 2 fügt Farbverläufe hinzu und Stufe 3 geht noch einen Schritt weiter, indem die Modellparameter auch über GPUs verteilt werden.
Vor der Berechnung einer Schicht stellt ein All-Gather seine vollständigen Parameter auf jeder GPU zusammen; Sobald dies erledigt ist, werden die nicht im Besitz befindlichen Slices freigegeben, um Speicher zurückzugewinnen.
PyTorchs Fully Sharded Data Parallel (FSDP) teilt Parameter, Verläufe und den Optimiererstatus, sammelt und reshardt sie im laufenden Betrieb und spiegelt so ZeRO wider.
Lerne weiter
Weitere Leitfäden zu diesem Thema ausgewählt
Als nächstesNächster Leitfaden
Lookahead- und Lion-Optimierer
Technisch