pytorch-fsdp2
Rozprowadź duże modele PyTorch na wiele GPU za pomocą FSDP2 z automatyczną konfiguracją shardingu i checkpointingu.
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętność dodająca PyTorch FSDP2 (fully_shard) do skryptów treningowych z poprawną inicjalizacją, shardingiem parametrów, konfiguracją precyzji mieszanej i offloadingiem, oraz rozproszonymi checkpointami. Użyj jej, gdy Twój model nie mieści się na jednym GPU lub potrzebujesz DTensor-based shardingu z DeviceMesh. Obsługuje eager-mode sharding, który jest bardziej inspektowalny i prostszy niż FSDP1, oraz pozwala na komponowanie z Tensor Parallel.
Jak używać
Upewnij się, że masz zainstalowany PyTorch z obsługą FSDP2 (torch.distributed.fsdp.fully_shard) oraz że Twój projekt zależy od torch jako zależności.
Zidentyfikuj moduły w Twoim skrypcie treningowym, które chcesz shardować — zwykle są to duże warstwy modelu, które przekraczają pamięć pojedynczego GPU.
Zainicjalizuj rozproszone środowisko treningowe za pomocą torch.distributed, ustawiając backend komunikacji (np. nccl dla GPU) i rank procesów.
Zastosuj torch.distributed.fsdp.fully_shard do wybranych modułów, konfigurując opcje shardingu, precyzji mieszanej (mixed precision) i offloadingu pamięci zgodnie z dostępnymi zasobami GPU.
Skonfiguruj rozproszone checkpointowanie (Distributed Checkpoint) zamiast standardowych save/load, aby poprawnie zapisywać i wczytywać stany shardowane na wielu procesach.
Uruchom skrypt treningowy na wielu GPU/węzłach — FSDP2 automatycznie synchronizuje gradienty i aktualizuje parametry shardowane podczas backpropagation.