{"id":"IL-0126","org":"Meta AI","date":"2021-12-03","docs":[],"title":{"en":"The OPT-175B training run restarted more than 40 times in two weeks as cloud GPU nodes failed with ECC errors, replacement nodes came back faulty, and checkpoint downloads hung","ko":"OPT-175B 학습이 클라우드 노드의 ECC 메모리 오류, 같은 결함을 안고 돌아온 교체 노드, 멈추는 체크포인트 다운로드 때문에 2주 동안 40번 넘게 재시작했다."},"domain":["ai-infra"],"impact":{"scope":"The OPT-175B training run; hardware faults could stop it for hours at a time","users":"unknown","region":"unknown"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":{"en":"At this scale cloud hardware failures are certain, and the team concluded that automating the handling of hardware failures is necessary. Without spare nodes and burn-in tests, each failure costs hours and a replacement can bring the same fault back.\n\nThe team also concluded that cloud infrastructure instability is something to always prepare for, because the customer has no control over the underlying hardware. A checkpoint large enough to need hundreds of multi-gigabyte downloads makes the storage path part of recovery time.","ko":"이 규모로 학습할 때는 하드웨어 장애 대응을 자동화해야 한다. 밑단 하드웨어를 직접 통제할 수 없는 클라우드에서는 인프라 불안정에 늘 대비해야 한다."},"related":[],"sources":[{"url":"https://github.com/facebookresearch/metaseq/blob/main/projects/OPT/chronicles/27_percent_update.md","kind":"github","license":"unknown","archived":null}],"summary":{"en":"Meta AI trained the 175B-parameter OPT model on GPU nodes rented from a cloud provider. In the two weeks after its 17 November 2021 update, the team restarted the run more than 40 times. The large majority of restarts were caused by hardware: nodes failed with ECC errors, and the team could not provision enough buffer nodes to replace a bad node quickly. A replacement through the cloud interface could take hours, often returned the same faulty machine, and sometimes arrived with NCCL or InfiniBand issues or the same ECC errors.\n\nRecovery after each failure was slowed further by the checkpoint. A restart downloaded 1.6 TB (992 files of about 1.7 GB) from blob storage, and those downloads hung at random. Getting them to work reliably took considerable debugging of the provider's poorly documented Python API before the team settled on a solution it considered sufficient for the time being.\n\nThe team knew such failures would come at this scale but launched without automation, because it had to ship a trained 175B model by the end of H2 2021. Over the following two weeks it built its own tooling: a script to replace nodes, GPU burn-in tests to detect memory errors, automated InfiniBand tests, and monitoring of train.log. Working around infrastructure problems took up most of the team's time in that period, and the team set up an on-call rotation with runbooks for the most common issues.","ko":"Meta AI 는 2021년 하반기 안에 학습을 마친 175B 모델을 내놓아야 했다. 그 일정 때문에 이 규모에서 하드웨어 문제가 생길 줄 알면서도 대응 도구 없이 OPT-175B 학습을 시작했다. 11월 17일 업데이트 이후 2주 동안 실험은 40번 넘게 재시작했고, 대부분은 하드웨어 결함과 고장 노드를 바꿔 끼울 여분 노드를 충분히 확보하지 못한 탓이었다.\n\nECC 오류로 노드가 내려가면 클라우드 화면으로 노드 한 대를 교체하는 데 몇 시간이 걸렸다. 같은 불량 노드가 다시 오거나, 새 노드가 NCCL 이나 InfiniBand 문제 또는 같은 ECC 오류를 안고 올라왔다. 재시작 때 1.6TB 체크포인트를 blob 저장소에서 내려받는 과정도 일정한 규칙 없이 멈추곤 해서 복구가 더 늦어졌다. 팀은 결국 노드 교체 스크립트, 메모리 오류를 잡는 GPU burn-in 테스트, InfiniBand 자동 테스트, train.log 모니터링을 직접 만들었고, 체크포인트 다운로드 문제에도 당장 쓸 만한 해결책을 찾았다.\n\n지난 2주 동안 팀 시간의 대부분은 인프라 문제를 피해 가는 데 들어갔다. 팀은 가장 흔한 문제를 다루는 런북과 도구를 갖추고, 다운타임을 줄이려고 다른 사람들을 온콜에 불러 모으기 시작했다."},"trigger":{"en":"Nodes in the cloud training cluster failed with ECC errors, and each failure took the training run down.","ko":"노드가 ECC 메모리 오류로 내려가는 하드웨어 결함이 되풀이됐다."},"severity":"unknown","symptoms":["training-job-failed","gpu-unavailable"],"timeline":{"detected_after":null,"resolved_after":null},"date_kind":"published","detection":{"en":"During these two weeks the team added monitoring of train.log, GPU burn-in testing to detect memory errors, and automated InfiniBand testing.","ko":"이 2주 동안 팀은 train.log 모니터링, 메모리 오류를 찾는 GPU burn-in 테스트, InfiniBand 자동 테스트를 넣었다."},"components":["gpu-hardware","nccl","infiniband","object-storage"],"root_cause":"dependency-failure","remediation":[{"text":{"en":"replaced failed nodes, and later did it through a script","ko":"고장 난 노드를 교체했고, 나중에는 스크립트로 교체했다."}},{"text":{"en":"added GPU burn-in testing to detect memory errors","ko":"메모리 오류를 찾으려고 GPU burn-in 테스트를 넣었다."}},{"text":{"en":"automated InfiniBand testing","ko":"InfiniBand 테스트를 자동화했다."}},{"text":{"en":"added monitoring of train.log","ko":"train.log 를 모니터링했다."}},{"text":{"en":"debugged the cloud provider's Python API until checkpoint downloads from the blob store worked well enough","ko":"클라우드 업체의 Python API 를 디버깅해, 재시작 때 멈추던 체크포인트 다운로드 문제에 당장 쓸 만한 해결책을 찾았다."}}],"action_items":[{"text":{"en":"Run an on-call rotation for the training run, with runbooks and tooling for the most common issues, and invite more people to join it","ko":"가장 흔한 문제를 다루는 런북과 도구를 만들고, 다른 사람들도 온콜에 참여하게 했다."}}],"contributing":["no-spare-capacity","limited-debug-access","no-runbook"],"recurrence_of":null,"symptoms_text":{"en":"Between the team's 17 November 2021 update and 3 December 2021, the 175B-parameter OPT training run went down and had to be restarted more than 40 times, for hardware, infrastructure and training stability reasons. A hardware fault could stop the run for hours at any time of day, and several did over the Thanksgiving break.\n\nMost restarts came from nodes that went down with ECC errors. The team could not get enough spare \"buffer\" nodes to swap in, and replacing one machine through the cloud provider's interface could take hours. More often than not the replacement turned out to be the same bad machine, and new nodes also came up with NCCL or InfiniBand problems or with the same ECC errors.\n\nEach restart had to download the latest checkpoint, 1.6 TB in 992 files of about 1.7 GB each, from the cloud blob store, and these downloads started hanging nondeterministically, which delayed recovery further. The cloud provider's Python API for the blob store was poorly documented and needed a lot of debugging.","ko":"2021년 11월 17일 업데이트 이후 2주 동안 175B 실험은 하드웨어, 인프라, 학습 안정성 문제로 40번 넘게 재시작했다. 재시작의 대부분은 하드웨어 결함 때문이었고, 노드가 ECC 오류로 내려가면 실험이 멈췄다. 이런 하드웨어 문제 때문에 실험은 하루 중 아무 때나 몇 시간씩 멈췄다.\n\n고장 난 노드를 대신할 여분 노드를 충분히 확보할 수 없었다. 클라우드 화면에서 노드 한 대를 교체하는 데 몇 시간이 걸렸고, 같은 불량 노드를 다시 받는 일이 잦았다. 새로 받은 노드가 NCCL 이나 InfiniBand 문제를 안고 올라오거나 같은 ECC 오류를 내기도 했다.\n\n재시작할 때마다 blob 저장소에서 1.6TB 크기의 모델 체크포인트 하나를 내려받아야 했다. 체크포인트는 약 1.7GB 짜리 파일 992개였고, 이 다운로드가 일정한 규칙 없이 멈추곤 해서 학습 복구가 더 늦어졌다. 클라우드 업체의 Python API 는 문서가 부실해 상당한 디버깅이 필요했다.\n\n추수감사절 연휴에도 하드웨어 장애가 실험을 멈췄고, 팀은 재시작을 로그북에 기록하며 대응했다."},"updated_at":"2026-11-10T00:00:34.817474Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0126","org_slug":"meta-ai"}