Toolverse
Wszystkie skille

pytorch-fsdp2

autor: Orchestra-Research

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

Szybkie info

Kategoria
Data Science
Wyświetlenia
25

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ć

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

  2. Zidentyfikuj moduły w Twoim skrypcie treningowym, które chcesz shardować — zwykle są to duże warstwy modelu, które przekraczają pamięć pojedynczego GPU.

  3. Zainicjalizuj rozproszone środowisko treningowe za pomocą torch.distributed, ustawiając backend komunikacji (np. nccl dla GPU) i rank procesów.

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

  5. Skonfiguruj rozproszone checkpointowanie (Distributed Checkpoint) zamiast standardowych save/load, aby poprawnie zapisywać i wczytywać stany shardowane na wielu procesach.

  6. Uruchom skrypt treningowy na wielu GPU/węzłach — FSDP2 automatycznie synchronizuje gradienty i aktualizuje parametry shardowane podczas backpropagation.

Podobne skille