💻 테크 | AWS Machine Learning
💡 핵심 요약
대규모 분산 학습은 수십 개의 노드에서 며칠간 실행되며 네트워크, 메모리, 소프트웨어 오류 등 다양한 장애에 취약해 비싼 GPU 자원을 낭비하고 훈련 진행을 가로막습니다. 또한, 동기식 체크포인팅은 전체 벽 시간의 최대 40%를 유휴 시간으로 소모할 수 있습니다. 본 글은 이러한 문제를 해결하기 위해 NVIDIA Resiliency Extension (NVRx)을 Amazon EKS 상의 PyTorch FSDP(Fully Sharded Data Parallel) 훈련에 통합하는 방법을 제시합니다. NVRx는 비동기 체크포인팅, 인-프로세스 재시작, 그리고 ft_launcher를 통한 인-잡 재시작 기능을 제공하여, 장애 복원력을 높이고 훈련 효율을 극대화합니다. 이는 점차 커지는 모델과 길어지는 훈련 시간 속에서 비용 효율성을 확보하고 실험 주기를 단축하는 데 필수적인 기술입니다.
🔍 심층 분석
20년차 시니어 개발자의 관점에서 이 글은 단순히 “장애가 나면 다시 시작한다”는 표면적인 해결책을 넘어, 대규모 분산 시스템의 본질적인 문제와 그에 대한 다층적인, 그리고 매우 실용적인 접근 방식을 보여줍니다.
가장 먼저 눈에 띄는 것은 “NVRx의 낮은 진입 장벽” 입니다. pip install로 설치 가능하고, PyTorch 포크나 커널 수정 없이 기존 FSDP 스크립트에 평범한 임포트 구문으로 기능을 추가할 수 있다는 점은 개발자들에게 엄청난 이점입니다. 대규모 프로젝트에서 핵심 라이브러리나 프레임워크를 수정해야 하는 부담은 신기술 도입의 가장 큰 걸림돌 중 하나인데, NVRx는 이를 영리하게 회피했습니다. 이는 NVIDIA가 개발자 경험을 얼마나 중요하게 생각하는지 보여주는 방증입니다.
장애 복원력에 대한 다층적 접근 또한 주목할 만합니다.
1. 비동기 체크포인팅 (TorchAsyncCheckpoint): 동기식 I/O 블로킹으로 인한 40%의 유휴 시간은 분산 학습 클러스터의 엄청난 비용 낭비입니다. 비동기 체크포인팅은 I/O를 훈련과 겹치게(overlap) 함으로써 이 문제를 직접적으로 해결합니다. 특히 FSDP의 LOCAL_STATE_DICT와 결합하여 각 랭크가 자체 샤드를 직접 쓰는 방식은 병목 현상을 제거하고 효율성을 극대화합니다. 이는 단순히 “멈추지 않게 하는” 것을 넘어 “더 빠르게 훈련시키는” 중요한 성능 최적화입니다.
2. 인-프로세스 재시작 (inprocess.Wrapper): NCCL 행(hang)이나 예상치 못한 예외와 같은 소프트 장애는 파이썬 프로세스 자체를 죽이지 않아도 됩니다. NVRx는 프로세스 그룹을 재설정하고 생존한 워커들을 재조정하여 최신 체크포인트부터 훈련을 재개합니다. 인터프리터, CUDA 할당자, 외부 스코프 객체 등이 보존된다는 점은 복구 시간을 수초 단위로 줄이고, 상태 복구에 드는 오버헤드를 최소화한다는 점에서 매우 영리한 접근입니다.
3. 인-잡 재시작 (ft_launcher): SIGKILL, OOM(Out Of Memory) 킬, OS 레벨의 행과 같은 하드 장애는 인-프로세스 복구로 해결할 수 없습니다. 이때 ft_launcher가 나서서 죽은 워커를 감지하고, 생존한 워커들을 종료시킨 후 GPU 메모리를 확보하고, 동일한 Job 내에서 새로운 워커를 다시 시작시킵니다. 이 계층은 궁극적으로 모든 종류의 장애로부터 훈련을 보호하며, EKS 클러스터 오케스트레이터의 노드 손실 복구와 함께 완벽한 장애 복원 스택을 형성합니다.
EKS는 NVRx의 애플리케이션 레벨 복원력을 위한 견고한 인프라 기반을 제공합니다. 특히 p5.48xlarge 인스턴스의 8개 H100 GPU와 32개 EFA(Elastic Fabric Adapter) 네트워크 인터페이스는 고성능 다중 노드 GPU 워크로드에 필수적인 고대역폭 네트워킹을 보장합니다. 이는 NCCL 통신이 병목이 되지 않도록 하여 훈련 속도를 유지하는 데 결정적인 역할을 합니다. 쿠버네티스 Job과 헤드리스 서비스(headless service)를 통한 피어 디스커버리(peer discovery)는 대규모 분산 환경에서 워커 간 통신 설정을 간소화하는 모범 사례입니다.
결론적으로, 이 솔루션은 분산 ML 훈련에서 “실패는 피할 수 없지만, 실패로부터의 복원 비용과 시간은 최소화할 수 있다”는 철학을 완벽하게 구현하고 있습니다. 복잡한 시스템에서 장애 복원력을 설계하는 교과서적인 예시이자, 실제 대규모 LLM 훈련의 현장에서 맞닥뜨리는 고질적인 문제에 대한 매우 실용적이고 통합적인 답변입니다.
🇰🇷 한국 독자 관점
한국의 많은 기업들이 생성형 AI 경쟁에 뛰어들면서 대규모 언어 모델(LLM) 학습에 대한 수요와 투자가 폭증하고 있습니다. 이는 곧 고가의 H100 GPU 클러스터의 사용량이 늘어나고, 장시간 분산 학습의 필요성이 커진다는 것을 의미합니다.
이러한 상황에서 AWS와 NVRx의 조합은 한국 독자들에게 매우 현실적인 대안이자 솔루션으로 다가올 것입니다.
1. 비용 효율성 극대화: 제한적인 GPU 자원과 높은 클라우드 비용을 고려할 때, 훈련 중단으로 인한 GPU 시간 낭비는 기업들에게 직접적인 손실로 이어집니다. NVRx는 이러한 낭비를 줄여주어 한정된 예산으로 더 많은 실험을 가능하게 합니다. 특히, 비동기 체크포인팅으로 훈련 시간을 단축하는 것은 GPU 활용률을 높이는 중요한 기여를 합니다.
2. 운영 복잡성 감소: 대규모 분산 학습 환경을 직접 구축하고 운영하는 것은 상당한 ML/Infra 엔지니어링 역량을 요구합니다. EKS는 관리형 서비스로서 Kubernetes 컨트롤 플레인의 부담을 덜어주고, NVRx는 낮은 통합 비용으로 고급 장애 복원 기능을 제공하여, 핵심 비즈니스 로직에 집중할 수 있도록 돕습니다. 이는 인력 확보가 어려운 국내 상황에서 특히 매력적입니다.
3. 빠른 도입 및 검증: NVRx가 기존 PyTorch FSDP 스크립트에 쉽게 통합될 수 있다는 점은 복잡한 리팩토링 없이도 빠르게 PoC(개념 증명)를 수행하고 실제 워크로드에 적용해볼 수 있다는 장점을 제공합니다. 이는 기술 도입에 신중한 국내 기업 문화에서 빠른 가치 검증을 가능하게 합니다.
4. 안정적인 LLM 서비스 인프라: 모델 학습뿐만 아니라, 학습된 LLM을 기반으로 하는 서비스의 안정적인 운영을 위해서도 장애 복원력은 필수적입니다. 이 글에서 제시된 기술 스택은 단순히 학습을 넘어, LLM 기반 프로덕트의 전체 라이프사이클을 고려한 인프라 설계의 한 부분으로 확장될 수 있습니다.
💬 트램의 한마디
분산 훈련은 실패가 아닌 복원을 설계하는 게임이며, NVRx는 그 복원의 비용과 시간을 극적으로 낮춰준다.
🚀 실행 포인트
- [x] 지금 당장 할 수 있는 것:
- [x] 현재 진행 중인 대규모 분산 학습 프로젝트에서 발생하는 장애 유형(soft fault, hard fault) 및 빈도, 그리고 그로 인한 재시작 오버헤드를 상세히 분석합니다.
- [x] 동기식 체크포인팅으로 인해 발생하는 실제 훈련 유휴 시간을 측정하고, 이로 인한 잠재적 비용 손실을 추산하여 개선 기회를 파악합니다.
- [x] 이번 주 안에 할 수 있는 것:
- [x] NVRx 라이브러리 (
pip install nvidia-resiliency-ext)를 개발/테스트 환경에 설치하고, PyTorch FSDP 스크립트의torch.save를TorchAsyncCheckpoint기반async_save()로 교체하여 비동기 체크포인팅의 동작과 기본적인 성능 향상 여부를 확인합니다. - [x]
inprocess.Wrapper를 사용하여 간단한 예외나 인위적인 NCCL 행(hang)을 시뮬레이션하고, 인-프로세스 재시작이 파이썬 프로세스 종료 없이 어떻게 빠르게 복구되는지 개념 증명(PoC)을 수행합니다.
- [x] NVRx 라이브러리 (
- [x] 한 달 안에 적용할 수 있는 것:
- [x] 실제 훈련 워크로드에 NVRx의 비동기 체크포인팅 및 인-프로세스 재시작 기능을 통합하여, 훈련 시간 단축 및 장애 복구 시간/비용 절감 효과를 벤치마킹하고 정량적인 지표를 확보합니다.
- [x]
ft_launcher를 포함한 완전한 NVRx 통합 및 EKS 기반의 다중 노드 GPU 환경에서의 워크로드 안정성 테스트 계획을 수립하고, 하드 장애(OOM, SIGKILL 등) 시의 자동 복구 메커니즘을 검증하는 PoC를 진행합니다. - [x] 장기적인 관점에서 NVRx 및 EKS 기반의 고성능 분산 학습 아키텍처 도입 로드맵을 검토하고, 팀 내 공유 및 관련 교육을 추진합니다.
🔗 원문 보기
트램 AI 분석 | gemini-2.5-flash | 2026-09-17 12:27