분산 학습 (Distributed Training)
학습 목표
- 데이터 병렬(Data Parallel)과 모델 병렬(Model Parallel)의 차이를 이해한다
- DataParallel(DP)과 DistributedDataParallel(DDP)의 차이를 설명할 수 있다
- FSDP(Fully Sharded Data Parallel)의 개념을 이해한다
- 실무에서 분산 학습 방식을 선택하는 기준을 안다
왜 중요한가
대형 딥러닝 모델은 하나의 GPU로 학습하기에 시간과 메모리가 부족합니다. 분산 학습은 여러 GPU에 연산을 분배하여 학습을 선형적으로 가속합니다.병렬화 전략
| 전략 | 분배 대상 | 적합 상황 |
|---|---|---|
| 데이터 병렬 | 데이터 (배치 분할) | 모델이 GPU 한 장에 들어갈 때 |
| 모델 병렬 | 모델 (레이어 분할) | 모델이 너무 커서 GPU 한 장에 안 들어갈 때 |
| FSDP | 데이터 + 모델 파라미터 | 대형 모델의 메모리 효율적 학습 |
DataParallel (DP) — 가장 간단
DistributedDataParallel (DDP) — 실무 표준
각 GPU가 독립 프로세스로 동작하며, All-Reduce로 기울기를 동기화합니다.FSDP (Fully Sharded Data Parallel)
모델 파라미터, 기울기, 옵티마이저 상태를 GPU 간에 분산(shard)하여 메모리를 절약합니다. 대형 모델 학습에 필수적입니다.비교
| 방법 | 설정 난이도 | 메모리 효율 | 속도 | 멀티노드 |
|---|---|---|---|---|
| DP | 매우 쉬움 | 낮음 | 보통 | 불가 |
| DDP | 보통 | 보통 | 높음 | 가능 |
| FSDP | 높음 | 매우 높음 | 높음 | 가능 |
어떤 분산 학습 방법을 선택해야 하나요?
어떤 분산 학습 방법을 선택해야 하나요?
단일 노드 멀티 GPU에서 모델이 GPU 메모리에 들어간다면 DDP를 사용하세요. 모델이 너무 크면 FSDP를 사용합니다. LLM Fine-Tuning에서는 FSDP + QLoRA 조합이 일반적입니다. DP는 프로토타이핑 외에는 권장하지 않습니다.
체크리스트
- 데이터 병렬과 모델 병렬의 차이를 이해한다
- DDP가 DP보다 권장되는 이유를 설명할 수 있다
- FSDP가 대형 모델에 필요한 이유를 안다
-
torchrun으로 분산 학습을 시작하는 방법을 안다

