사례1건
1건 중 1~1번째
- 증상
Meta 는 최대 16K 개의 H100 GPU 로 Llama 3 405B 를 사전 학습했다. 54일 동안의 기록에서 학습 작업은 모두 466번 중단되었고, 그중 419번이 예기치 않은 중단이었다. 나머지 47번은 펌웨어 업그레이드 같은 자동 유지보수나, 설정과 데이터셋 갱신 같은 운영자 작업에 따른 계획된 중단이었다.
- 원인
- 구성 요소
- 기여 요인
- 감지
PyTorch 의 NCCL flight recorder 가 모든 통신 이벤트와 집합 연산마다 걸린 시간을 링 버퍼에 기록했고, NCCLX 워치독이나 하트비트 타임아웃이 나면 추적 데이터를 자동으로 덤프했다. NCCLX 는 통신 라이브러리 상태를 감시하다가 멈춤을 감지하면 자동으로 타임아웃시켰고, 실패한 집합 연산의 내부 상태 스냅샷을 남겼다. 느린 GPU 는 의심스러운 통신에 우선순위를 매겨 보여 주는 도구로 찾았다. 대개 상위 몇 개만 조사해도 찾아낼 수 있었다.
- 조치
- 대부분의 중단은 자동화가 처리했고, 사람이 크게 손을 대야 했던 것은 54일 동안 세 번뿐이었다.
- 후속 조치
- 작업 시작 시간과 체크포인트 시간을 줄였다.
- PyTorch 의 NCCL flight recorder 로 모든 통신 이벤트와 집합 연산 시간을 기록하고, NCCLX 워치독이나 하트비트 타임아웃이 나면 추적 데이터를 자동으로 덤프하게 했다.
- 계산이 많이 드는 추적과 메타데이터 수집은 운영 중에 필요할 때만 켜게 했다. 켜고 끄는 일은 코드를 배포하거나 작업을 재시작하지 않고 온라인 설정 변경으로 하게 했다.
- PyTorch 가 NCCLX 의 내부 상태에 접근하게 해 멈춤을 더 빨리 감지하고 멈춘 위치를 찾게 했다. 실패한 집합 연산의 끝난 전송과 남은 전송은 스냅샷으로 남기게 했다.
- 교훈
동기식 학습은 GPU 하나의 고장에도 작업 전체가 멈출 수 있어 고장에 약하다. 하드웨어 고장은 멈춤으로만 나타나지 않고 느린 straggler 로도 나타나며, straggler 하나가 GPU 수천 개를 느리게 만들 수 있다. 이 규모에서는 기온과 전력망 같은 환경 요인도 학습 성능과 운영에 영향을 준다.
이 사례에서 가장 많이 나오는 구성 요소: GPU 하드웨어·메모리, NCCL. kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이런 틈을 점검합니다. 점검 항목의 근거는 이 라이브러리와 같은 공개 보고서입니다.