PyTorch 블로그 — FSDP 도입 배경과 벤치마크
PyTorch 블로그 — FSDP 도입 배경과 벤치마크
PyTorch 1.11부터 네이티브로 지원된 FSDP는 FairScale의 Fully Sharded Data Parallel 구현을 상류로 가져와, 더 단순한 API와 성능 개선을 더한 기능이에요. 대규모 모델 학습의 벽(모델이 한 GPU에 안 들어가는 문제)을 데이터 병렬의 단순함을 유지한 채 넘으려는 시도였어요.
왜 FSDP인가요
- 전통적인 데이터 병렬(DDP)은 모델이 한 GPU에 맞아야 해요.
- DeepSpeed ZeRO와 FairScale FSDP는 파라미터·그래디언트·옵티마이저 상태를 워커에 쪼개 이 벽을 깼어요.
- PyTorch FSDP는 이를 네이티브로 제공해 별도 라이브러리 없이 쓸 수 있어요.
벤치마크
AWS 클러스터에서 GPT-1T 모델을 최대 1,280 GPU로 확장해 A100당 84 TFLOPS, GPT-175B는 159 TFLOPS를 달성했고, CPU 오프로드 시 모델 초기화 시간을 크게 줄였어요. GitHub의 minGPT로 구현하고 fp16 정밀도로 실험했어요.
앞으로
FSDP는 DDP·ZeRO-1·ZeRO-2와 한 API에서 자유롭게 전환 가능하도록 확장되고, 분산 체크포인트, 메타 디바이스, 혼합 정밀도 지원이 이어졌어요.