yandex/YaFSDP

YaFSDP: Yet another Fully Sharded Data Parallel

What it solves

YaFSDP is designed to optimize the pre-training of Large Language Models (LLMs), specifically targeting the overhead associated with communications and memory operations in Sharded Data Parallelism. It aims to provide a faster alternative to PyTorch's FSDP (Fully Sharded Data Parallel) by improving GPU utilization and performance under high memory pressure.

How it works

It implements a Sharded Data Parallelism framework specifically tuned for transformer-like neural network architectures. By reducing communication and memory operation overheads, it allows for faster iteration times during training runs across multiple GPUs.

Who it’s for

ML engineers and researchers training large-scale transformer models (such as Llama 2 and Llama 3) across large GPU clusters (ranging from 64 to 256 devices) using the Hugging Face stack.

Highlights

  • Performance Gains: Up to 20% faster pre-training for LLMs compared to standard FSDP.
  • Scalability: Benchmarked on models from 7B to 70B parameters across up to 256 A100 GPUs.
  • Scalability: Supports causal pre-training and supervised fine-tuning (SFT).
  • Integration: Works with the Hugging Face ecosystem via provided examples and Docker images.

Related

  • Dispatch
  • Dispatch
  • Dispatch
  • Project
  • Dispatch