ZeRO (Zero Redundancy Optimizer)
Eine Memory-Optimierung für verteiltes Training, die Optimizer-States, Gradienten und Parameter über GPUs sharded statt repliziert – ermöglicht Training von Billionen-Parameter-Modellen.
ZeRO sharded Optimizer-States, Gradienten und Parameter über GPUs – eliminiert Redundanz und ermöglicht Training von Modellen, die sonst nicht in GPU-Memory passen.
Erklärung
ZeRO hat 3 Stufen: ZeRO-1 (Optimizer-States sharden, 4x Memory-Reduktion), ZeRO-2 (+Gradienten, 8x), ZeRO-3 (+Parameter, linear skalierbar). ZeRO-Infinity erweitert dies auf CPU/NVMe. Jede GPU hält nur 1/N der Daten.
Relevanz für Marketing
ZeRO revolutionierte LLM-Training: Ohne ZeRO wäre das Training von 100B+-Modellen auf Standard-GPU-Clustern unmöglich. Basis von DeepSpeed und PyTorch FSDP.
Beispiel
Training eines 13B-Modells: Ohne ZeRO braucht jede GPU ~52GB (Modell + Optimizer). Mit ZeRO-3 auf 8 GPUs braucht jede nur ~7GB – 8x effizienter.
Häufige Fallstricke
ZeRO-3 hat höheren Kommunikations-Overhead als ZeRO-1/2. ZeRO-Infinity ist langsam (CPU/NVMe). Konfiguration nicht trivial (Stage-Wahl, Offloading-Optionen).
Entstehung & Geschichte
Rajbhandari et al. (Microsoft, 2020) veröffentlichten ZeRO als Teil von DeepSpeed. ZeRO-Infinity (2021) erweiterte auf CPU/NVMe-Offloading. PyTorch FSDP (2022) implementierte ZeRO-3-ähnliche Funktionalität nativ. Heute ist ZeRO Standard für jedes LLM-Training.
Abgrenzung & Vergleiche
ZeRO (Zero Redundancy Optimizer) vs. FSDP
ZeRO ist DeepSpeeds Implementierung; FSDP ist PyTorchs native Implementierung desselben Konzepts (Parameter-Sharding).
ZeRO (Zero Redundancy Optimizer) vs. Data Parallelism (DDP)
DDP repliziert alles auf jeder GPU; ZeRO sharded und sammelt bei Bedarf – dramatisch weniger Memory.