Technischer Leitfaden

ZeRO und Sharded Optimizer

ZeRO (Zero Redundancy Optimizer) eliminiert die verschwenderische Speicherduplizierung der Datenparallelität durch Sharding des Optimiererstatus, der Verläufe und der Gewichtungen über GPUs hinweg.

  • 2 Minuten gelesen
  • Zuletzt aktualisiert
Auf dieser Seite2 Minuten gelesen
  1. Übersicht
  2. Tiefer Einblick
  3. Strategische Auswirkungen
  4. Die Zukunft von ZeRO und Sharded Optimizern
  5. Reale Umsetzung
  6. Risiken und Leitplanken
  7. Implementierungs-Roadmap
  8. Entdecken Sie weiter
  9. Häufig gestellte Fragen

Übersicht

It lets you train enormous models with the simplicity of data parallelism but a fraction of the per-GPU memory.

Tiefer Einblick

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.

Strategische Auswirkungen

Kosten und Budget

Architekturentscheidungen beeinflussen über Jahre hinweg die Leistung und die Betriebskosten.

Klarere Entscheidungen

Technische Schulungen helfen Teams dabei, den richtigen Stack auszuwählen, nicht nur den neuesten.

Qualitätskontrolle

Bessere technische Entscheidungen reduzieren Zuverlässigkeitsvorfälle in der Produktion.

Die Zukunft von ZeRO und Sharded Optimizern

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.

Reale Umsetzung

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.

Risiken und Leitplanken

  • 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.

Implementierungs-Roadmap

  1. Definieren Sie vor der Implementierung Latenz-, Qualitäts- und Kostenziele.

  2. Benchmark unter realistischen Last- und Datenbedingungen.

  3. Instrumentenüberwachung auf Fehler, Drift und Benutzereinflüsse.

  4. Bereiten Sie vor der Skalierung Rollback- und Incident-Response-Pfade vor.

Entdecken Sie weiter

Free newsletter

Get the daily AI briefing

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

Take the ZeRO and Sharded Optimizers quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Quiz starten

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Häufig gestellte Fragen

What is ZeRO and Sharded Optimizers?

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.

Welche Redundanz eliminiert ZeRO im Vergleich zur reinen Datenparallelität?

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.

Warum ist der Optimierungsstatus bei Adam oft der größte Speicherfresser?

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.

Welche Shards bietet ZeRO Stufe 3, was die Stufen 1 und 2 nicht bieten?

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.

Wie erhält eine GPU in ZeRO Stage 3 die vollständigen Parameter, die sie für den Vorwärtsdurchlauf einer Ebene benötigt?

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.

Welche PyTorch-Funktion implementiert nativ Sharding im ZeRO-Stil?

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.