분산 학습 환경에서 데이터 병렬화·통신 병목·배치 최적화 경험을 서술
대규모 분산 학습 최적화 경험은 딥러닝 수업 프로젝트에서 PyTorch DistributedDataParallel(DDP)로 멀티 GPU 학습을 설정하면서 쌓았습니다. 머신러닝 최적화 접근으로는 먼저 데이터 로딩이 GPU 활용률의 병목인지 확인했는데, nvidia-smi로 모니터링하니 GPU가 대부분 I/O를 기다리는 상태였습니다.
DataLoader의 num_workers를 늘리고 pin_memory=True로 설정해서 CPU-GPU 전송 시간을 줄였습니다. 성공 사례로는 이 조정만으로 학습 속도가 1.6배 빨라졌고, 에폭당 시간이 43분에서 27분으로 단축됐습니다. 데이터 처리 방법으로는 이미지 전처리를 오프라인으로 미리 계산해서 캐싱하고, 학습 중 중복 연산을 제거했습니다. 팀 협업으로는 모델 구조 변경은 다른 팀원이 맡고, 제가 학습 파이프라인 최적화를 전담해서 병렬로 진행했습니다. 분산 학습은 병목이 어디 있는지를 먼저 측정하고 나서 최적화하는 것이 순서라고 배웠습니다.