Toolverse
All skills

pytorch-fsdp2

by Orchestra-Research

Adds PyTorch FSDP2 (fully_shard) to training scripts with correct init, sharding, mixed precision/offload config, and distributed checkpointing. Use when models exceed single-GPU memory or when you need DTensor-based sharding with DeviceMesh.

Installation

Pick a client and clone the repository into its skills directory.

Installation

Quick info

Category
Data Science
Views
25

About this skill

Adds PyTorch FSDP2 (fully_shard) to training scripts with correct init, sharding, mixed precision/offload config, and distributed checkpointing. Use when models exceed single-GPU memory or when you need DTensor-based sharding with DeviceMesh.

How to use

  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.

Related skills