ML 엔지니어와 인프라 엔지니어 간 분산 훈련 협업 가이드 및 체크리스트

대규모 MoE 모델은 GPU의 연산 자원뿐 아니라 GPU 간 통신 효율, 메모리·토폴로지 설계, 체크포인트 I/O 등 복합적인 인프라 요인에 의해 성능이 좌우됩니다. 특히 AWS HyperPod, ParallelCluster 같은 클라우드 기반 HPC 환경에서는, 모델 엔지니어(데이터 과학자 및 ML 엔지니어와 인프라/플랫폼 엔지니어가 초기 설정부터 장애 대응까지 긴밀히 협업해야 합니다. 본 가이드는 그 협업 과정에서 공통 언어를 만들고, 역할 간 경계에서 자주 발생하는 성능 저하·커뮤니케이션 오류를 예방하기 위한 지침을 제공합니다.

1. 협업 가이드


1.1. 기본 협업 원칙

구분
ML 측 (ML 엔지니어 / 데이터 과학자)
인프라 측 (인프라 엔지니어 / 플랫폼 엔지니어)

관점

모델의 학습 효율, 수렴, 로스 곡선, 분산 효율

클러스터 자원 최적화, 통신 지연 최소화, 안정성

주요 관심사

모델 병렬 전략 (EP, TP, PP), Batch Size, Gradient Sync

네트워크 패브릭(EFA/IB), NCCL 설정, 스토리지 I/O

공유 정보

모델 구성, expected FLOPs, 메모리 요구량

실제 TFLOPS, NCCL 통신 로그, GPU Utilization

커뮤니케이션 목표

“왜 느린가?”를 재현 가능하게 설명

“어디서 병목이 생겼는가?”를 가시화

1.2. 협업을 위한 공통 기술 언어

ML 측은 EP·DP·SDP·TP·PP 등 병렬 설정을 명확히 문서화하고, 인프라 측은 이를 실제 GPU mapping(토폴로지) 매칭시켜야 합니다.

핵심 파라미터

항목
ML 측 의미
인프라 측 의미

EP (Expert Parallelism)

MoE 전문가(Expert) 분할 수

GPU 간 All-to-All 통신 토폴로지

DP(Data Parallelism)

데이터 배치

GPU 간 All-Reduce 통신 토폴로지

TP (Tensor Parallelism)

텐서 분할 비율

intra-node NVLink 연결 구조

PP (Pipeline Parallelism)

Layer 분할 단계

stage-to-stage GPU mapping

GSP (Gradient Shard/Sync)

그래디언트 통신 방식

NCCL Ring/Tree/AllToAll 경로

Activation Checkpointing

GPU 메모리 절약 기법

CPU 메모리 및 IO 부하 고려

Offload Ratio

CPU→GPU 데이터 이동 비율

PCIe/InfiniBand 대역폭 모니터링

1.3. 훈련 전 협의 단계 (Pre-training Alignment)

모델 구조 및 통신 패턴 정의

  • ML 엔지니어/데이터 과학자는 다음 항목을 명시적으로 전달해야 합니다.

    • Expert 수 및 Expert 당 GPU 수

    • MoE 라우팅 빈도 (e.g., top-1, top-2 gating)

    • All-to-All 빈도 및 TensorFusion 여부

    • 평균 Batch 크기 / Sequence 길이 / FP16 vs BF16

  • 인프라 엔지니어는 이 정보를 기반으로 다음을 설계 및 피드백해야 합니다.

    • EP/DP/TP/PP 매핑 계획

    • EFA 네트워크 채널 구성 (EFA Multi-NIC, RDMA path)

    • NCCL/OFI tuning 변수 (NCCL_BUFFSIZE, NCCL_P2P_NET_CHUNKSIZE, FI_PROVIDER=efa)

환경 변수 표준화

MML 측 측과 인프라 측간 불일치를 최소화하려면, 아래 예시와 같은 공통 환경 변수 템플릿을 공유·관리하는 것이 좋습니다. AWS HyperPod나 ParallelCluster에서는 이러한 기본 설정이 되어 있으므로 job-level override 없이 관리할 수 있습니다.

export FI_PROVIDER=efa
export FI_EFA_USE_DEVICE_RDMA=1
export NCCL_PROTO=LL128
export NCCL_BUFFSIZE=67108864
export NCCL_P2P_NET_CHUNKSIZE=4194304
export NCCL_NET_GDR_LEVEL=PHB

1.4. 훈련 중 커뮤니케이션 (During Training)

주요 모니터링 지표 공유

지표
ML 측
인프라 측

Throughput (samples/sec)

모델 성능 판단

네트워크 병목 판단 기준

GPU Utilization (%)

학습 효율

scheduling / CUDA stream 병목 추정

NCCL time breakdown

collective op 비중 분석

EFA/Ethernet path 이상 탐지

CUDA OOM 비율

batch size / optimizer 문제

memory fragmentation 원인 분석

Loss Curve stability

모델 tuning

node 간 clock drift / 통신 delay 가능성

공통 로그 지표

로그 파일
설명
활용 주체

NCCL_DEBUG=INFO 로그

collective call latency

인프라

torch.profiler 결과

operator-level latency

ML

fi_info -p efa

RDMA 상태 확인

인프라

dmesg / efa-dmesg

driver-level 오류 탐지

인프라

nvidia-smi dmon

GPU 온도, power draw

인프라 + ML

커뮤니케이션 예시:

  • ML 엔지니어 “Step 300에서 AllReduce latency가 2배 상승했습니다. NCCL log에서 ring 0의 sync 지연이 보입니다.”

  • 인프라 엔지니어: “같은 시점에 fi_info 출력에서 EFA 연결 재시도(retry)가 발생했습니다. SRD congestion 가능성이 있습니다.”

1.5. 장애 대응 및 튜닝 시 역할 분담

상황
ML 측
인프라 측

OOM 발생

Batch size / activation checkpoint 조정

HugePage, NUMA 설정 점검

Throughput 급감

dataloader / sharding 점검

EFA 드라이버, MTU, NCCL 버퍼 확인

NCCL hang

torch.distributed init 재시도

EFA provider log, network retry trace

노드 간 불균형

expert load imbalance

RDMA 경로, IRQ balance 점검

loss spike / 불안정

FP precision 확인

clock drift / time sync 검증

장애 원인이 모호할 경우, dmesg, efa-dmesg, nccl.log, torch.profiler 를 시간순으로 정렬하여 cross-check 하는 절차를 두는 것이 좋습니다.

1.6. 훈련 후 리뷰 및 지속 개선

  • 훈련 완료 후, 두 팀이 다음 데이터를 함께 리뷰합니다.

    • 평균 GPU utilization 및 각 collective op latency

    • MoE routing imbalance (active expert ratio)

    • SRD retransmission / EFA congestion 통계

    • 노드별 throughput 및 checkpoint save 시간

  • 이상 패턴이 반복되면, HyperPod cluster template이나 ParallelCluster config에 feedback loop를 추가해

    차기 실험 시 자동 반영되도록 합니다.

커뮤니케이션 예시:

  • “이번 세션에서 Expert 간 imbalance가 심해 NCCL AllToAll latency가 평균 30% 증가했습니다. 다음 세션에서는 EP=8에서 EP=16으로 분할해 MoE 라우팅 경로를 더 고르게 분산해 볼까요?”

1.7. 결론 및 권장 운영 프로세스

  1. 훈련 전: 모델 병렬 전략(EP/DP/TP/PP) 및 통신 패턴을 인프라 팀에 상세히 문서화합니다.

  2. 훈련 중: 공통 로그(Throughput, NCCL, fi_info)를 기반으로 주기적 sync 미팅을 진행합니다.

  3. 훈련 후: bottleneck 구간 분석 결과를 cluster config(YAML, Slurm template)에 피드백합니다.

  4. 자동화: SageMaker HyperPod의 Slurm job template 또는 ParallelCluster의 post_install 스크립트에

    환경 변수 및 로깅 설정을 자동 삽입합니다.

2. MoE 훈련 커뮤니케이션 체크리스트


✅ 2.1. 훈련 전 (Pre-Training Alignment)

항목
담당
구체적 내용
전달 방식 / 도구

모델 병렬 전략

ML

EP, DP, TP, PP 비율 / Expert 수 / Routing(top-1, top-2) 명시

문서화(Confluence, Notion 등)

데이터셋 / 시퀀스 길이

ML

Batch size, seq_len, token 수, 샘플 개수

Slack / YAML 공유

통신 패턴

ML

AllReduce / AllToAll 빈도, MoE gating 빈도

설명서 첨부

GPU 메모리 요구량

ML

최소 / 평균 / 최대 usage 예측

초기 프로파일 결과

EFA 설정 계획

인프라

EFA NIC 수, Multi-Rail 설정, MTU(9001)

cluster config YAML

Libfabric / NCCL 버전

인프라

libfabric >=1.17, aws-ofi-nccl 버전

설치 로그

환경 변수 표준화

공동

FI_PROVIDER=efa, NCCL_BUFFSIZE, NCCL_PROTO 등

.env 파일

보안 그룹 / 서브넷 확인

인프라

모든 노드 동일 서브넷, SG 내 상호 통신 허용

AWS CLI 점검

🚀 2.2. 훈련 중 (During Training Execution)

항목
담당
주요 지표 / 로그
검증 기준 / 액션

Throughput(samples/s)

ML

학습 로그 / wandb

±5% 이상 변화 시 통신 병목 의심

GPU Utilization

인프라

nvidia-smi dmon, DCGM exporter

90% 미만 지속 시 NCCL 점검

NCCL 통신 로그

인프라

NCCL_DEBUG=INFO

AllToAll latency, retransmit 여부

fi_info -p efa 결과

인프라

provider=efa, EP_RDM 확인

fallback 없는지 확인

OOM 발생 여부

ML

training log

checkpoint / gradient sharding 조정

SRD congestion 이벤트

인프라

efa-dmesg, CloudWatch metrics

Nitro NIC 재시작 여부

Collective op 분포

ML

torch.profiler / DeepSpeed log

bottleneck op 식별

모델 수렴 안정성

ML

loss curve, gradient variance

통신 delay에 따른 불안정 탐지

노드간 clock drift

인프라

NTP sync 확인

10 ms 이상 차이 시 재동기화

🧩 2.3. 훈련 후 (Post-Training Review)

항목
담당
점검 포인트
활용 방안

GPU Utilization 평균/분산

공동

노드별 비교

imbalance 분석

AllReduce / AllToAll 평균 지연

인프라

NCCL 로그 요약

SRD 튜닝 파라미터 개선

Expert Load Distribution

ML

MoE routing 결과

gating imbalance 보정

Checkpoint 저장 속도

인프라

I/O latency

FSx / EBS IOPS 조정

SRD Retransmission 통계

인프라

Nitro NIC metric

ECMP / MultiPath 최적화

Loss 안정성

ML

수렴 곡선

optimizer / precision 튜닝

성능 개선 제안

공동

tuning 요약서

cluster config 반영

버전 관리

인프라

efa-version, libfabric-version 기록

차기 실험 reproducibility 확보

📊 2.4. 참고: 추천 모니터링 도구 세트

범주
도구
설명

GPU 상태

nvidia-smi dmon, DCGM exporter

온도, power, utilization

NCCL 통신

NCCL_DEBUG=INFO, NCCL_TOPO_DUMP_FILE

topology, latency trace

EFA 상태

fi_info, efa-dmesg, CloudWatch EFA metrics

provider 확인, SRD event

학습 로깅

wandb, tensorboard, torch.profiler

throughput / loss 시각화

네트워크 통계

ethtool -S, iperf3 --efa

링크 대역폭, packet drop 확인

⚙️ 2.5. 권장 협업 프로세스 요약

  1. 공통 문서화: 모든 MoE 설정(EP/TP/PP, Batch, Routing)을 YAML/Markdown으로 관리

  2. 일일 모니터링 회의: 훈련 중 주요 지표(Throughput, Latency) 공유 (예: 스탠드업 5분 미팅)

  3. 주간 튜닝 리포트: Infra팀이 NCCL/EFA 로그를 요약 → ML팀에 피드백

  4. Config 자동화: HyperPod job template / ParallelCluster post_install 스크립트에 환경 변수 통합

  5. 회고 루프: 훈련 종료 후 Bottleneck 분석 → 다음 실험 config로 반영

Last updated