완전 캐시 기반 데이터 병렬(FCDP)로 통신 병목을 회피한 대규모 학습
초록
FCDP는 호스트 메모리를 첫 번째 캐시 계층으로 활용해 ZeRO‑3의 파라미터 재구성을 절반으로 줄이고, PEFT 상황에서는 99% 이상의 파라미터를 고정해 통신량을 거의 없애며, GPU 메모리 사용량은 그대로 유지한다. 실험 결과, 일반적인 commodity 클러스터에서 ZeRO‑3 대비 최대 100배, ZeRO++ 대비 51배의 처리량 향상을 달성한다.
상세 분석
본 논문은 대규모 언어 모델 학습 시 GPU 메모리 한계 때문에 ZeRO‑3와 같은 완전 샤딩 기법을 사용하지만, 인터노드 all‑gather가 병목이 되는 상황을 지적한다. 특히 NVLink·InfiniBand이 풍부한 DGX‑style 클러스터와 달리, 일반 연구실·클라우드 환경에서는 PCIe‑ 기반 CPU‑GPU 전송이 인터노드 네트워크보다 빠른 경우가 많다. 저자는 이 사실을 기반으로 “호스트 메모리를 오버플로우가 아닌 빠른 캐시 계층으로 활용한다”는 핵심 아이디어를 제시한다.
FCDP의 주요 메커니즘은 다음과 같다. ① Forward pass에서 ZeRO‑3가 수행하는 인터노드 all‑gather 후, 각 GPU는 해당 파라미터 샤드를 호스트 메모리에 저장한다. ② Backward pass에서는 인터노드 all‑gather를 생략하고, 호스트에서 GPU로 파라미터를 복사한 뒤 intra‑node all‑gather(PCIe·NVLink)만 수행한다. 이렇게 하면 인터노드 통신량이 50% 감소한다. ③ PEFT(예: LoRA)에서는 파라미터를 “학습 가능”과 “고정”으로 구분한다. 고정 파라미터는 한 번만 all‑gather하고 이후에는 영구히 호스트 캐시에 보관한다. 결과적으로 전체 파라미터 중 99%가 고정된 경우, 인터노드 트래픽이 99% 이상 사라진다.
동적 메모리 관리 또한 중요한 기여이다. GPU 메모리 압력이 낮을 때는 파라미터를 GPU에 직접 캐시해 PCIe 전송을 최소화하고, 메모리 부족 상황에서는 자동으로 호스트 캐시로 전환한다. 이 정책은 ZeRO‑3와 동일한 최악 상황 메모리 사용량을 보장하면서도, 가능한 경우 GPU‑to‑GPU 전송을 활용해 성능을 끌어올린다.
통신·메모리 트레이드오프를 정량화한 실험에서는, 4노드(32 GPU) commodity 클러스터에서 GPT‑10B~30B 모델을 학습했을 때, ZeRO‑3 대비 41.3% 높은 처리량을 기록했고, LoRA 기반 파인튜닝에서는 최대 100배, ZeRO++ 대비 51배의 속도 향상을 보였다. 또한 배치 크기 한계는 ZeRO‑3와 동일하게 유지되어, 메모리 효율성을 손상시키지 않는다.
결과적으로 FCDP는 (1) 인터노드 all‑gather를 절반으로 감소, (2) PEFT 상황에서 거의 모든 통신을 제거, (3) GPU 메모리 사용량을 최소화하면서 동적 캐시 정책으로 실시간 메모리 압력에 대응한다는 세 가지 장점을 제공한다. 이는 고가의 NVLink·InfiniBand 인프라 없이도 대규모 모델을 효율적으로 학습할 수 있는 실용적인 솔루션으로 평가된다.
댓글 및 학술 토론
Loading comments...
의견 남기기