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