Zero Redundancy Optimizer

Wprowadzenie

Zero Redundancy Optimizer (ZeRO) to innowacyjna technika optymalizacji pamięci stworzona przez Microsoft w ramach biblioteki DeepSpeed. Jej głównym celem jest wyeliminowanie redundancji (powielania) danych podczas treningu rozproszonego bardzo dużych modeli AI, co pozwala trenować modele o miliardach parametrów na mniejszej liczbie GPU.

Jak działa ZeRO?

ZeRO dzieli parametry modelu, gradienty i optimizer states pomiędzy wszystkie GPU (sharding). Dzięki temu każdy procesor graficzny przechowuje tylko fragment danych zamiast pełnej kopii modelu. Dostępne są trzy główne etapy:

  • ZeRO Stage 1 – partycjonowanie optimizer states
  • ZeRO Stage 2 – partycjonowanie gradientów
  • ZeRO Stage 3 – partycjonowanie parametrów modelu (najmocniejsza wersja)

Zastosowania Zero Redundancy Optimizer

  • Trening dużych modeli językowych (LLM)
  • Trening modeli multimodalnych
  • Badania nad modelami o skali setek miliardów parametrów
  • Optymalizacja kosztów treningu w chmurze
  • Integracja z Hugging Face Transformers i PyTorch

Zalety i wady

  • Zalety: dramatyczna redukcja zużycia pamięci (nawet 10x), skalowalność na tysiące GPU, zachowanie wysokiej efektywności obliczeniowej
  • Wady: dodatkowa komunikacja między GPU (AllGather/ReduceScatter), wyższe wymagania co do szybkiej sieci (NVLink, InfiniBand)

Najlepsze praktyki (2026)

  • Używanie ZeRO Stage 3 z Offload (CPU/GPU)
  • Łączenie z Activation Checkpointing i Model Parallelism
  • Monitorowanie komunikacji sieciowej
  • Automatyczne dostrajanie etapów ZeRO w zależności od rozmiaru modelu

Powiązane pojęcia

DeepSpeed • Model Parallelism • Data Parallelism • Large Language Models • Distributed Training • PyTorch FSDP • Activation Checkpointing • Mixed Precision Training