FSDP (Fully Sharded Data Parallel)
PyTorchs native Implementierung von Parameter-Sharding – verteilt Modell-Parameter, Gradienten und Optimizer-States über GPUs für memory-effizientes Training.
FSDP ist PyTorchs native Parameter-Sharding-Lösung – jede GPU hält nur 1/N der Parameter, ermöglicht Training riesiger Modelle ohne DeepSpeed.
Erklärung
FSDP sharded alle Modell-Parameter: Jede GPU hält nur 1/N. Vor jedem Forward/Backward werden die benötigten Parameter via AllGather gesammelt, nach der Berechnung wieder freigegeben. Konzeptionell identisch zu DeepSpeed ZeRO-3, aber nativ in PyTorch.
Relevanz für Marketing
FSDP ist der neue Standard für LLM-Training in PyTorch – ersetzt DDP für große Modelle und bietet Memory-Effizienz ohne externe Libraries.
Beispiel
Llama-2 Training nutzt FSDP: Ein 70B-Modell wird über 512 GPUs sharded. Jede GPU hält nur ~280MB Parameter statt 140GB. Training ist nahezu linear skalierbar.
Häufige Fallstricke
Konfiguration komplex (Sharding-Strategy, Mixed Precision, CPU-Offloading). Debugging schwieriger als DDP. Nicht alle Custom-Layer sind FSDP-kompatibel. Kommunikations-Overhead bei kleinen Modellen.
Entstehung & Geschichte
FairScale (Meta, 2021) brachte die erste FSDP-Implementierung. PyTorch integrierte FSDP nativ in v1.12 (2022). FSDP2 (2024) vereinfachte die API und verbesserte Performance. Meta nutzt FSDP für alle Llama-Trainings.
Abgrenzung & Vergleiche
FSDP (Fully Sharded Data Parallel) vs. DeepSpeed ZeRO
FSDP: PyTorch-nativ, einfachere Integration. ZeRO: Mehr Features (ZeRO-Infinity, Expert Parallelism), bessere Skalierung jenseits 1000 GPUs.