IL-0479 Amazon Web Services · 2025-02-17 (게시일)ai-infra
가속기 노드의 조용한 데이터 손상이 오류 신호 없이 LLM 학습의 계산값과 기울기와 가중치를 바꿨다
Amazon Web Services와 Harvard 대학교의 저자들은 SDC가 LLM 학습에 미치는 영향을 연구했다. 대상은 클라우드 플랫폼의 자동 플릿 관리가 SDC를 이유로 운영에서 뺀 가속기 노드 15대였고, 저자들은 이 노드들을 정상 운영 노드와 짝지어 비교했다. 노드는 데이터센터에 설치된 뒤 노드 전체의 집합 통신 스트레스 테스트, 계산 유닛 스트레스 테스트, 미리 계산한 정답과 결과를 비교하는 작은 LLM 학습을 거친다. 이 테스트는 고객 사용이 끝나 노드를 회수할 때에도 다시 돈다. 노드 가운데 일부는 처음에는 정상이었고 학습에 쓰인 뒤에 사전 점검에서 떨어지기 시작했다.
XLA 컴파일러의 결정적 실행으로 두 노드의 계산 차이가 전부 SDC에서 오도록 맞춘 뒤 세 수준에서 비교했다. 하위 모듈 계산의 불일치 빈도는 평균적으로 낮았지만 노드마다 크게 달랐고, 일부 값은 정상 노드의 값과 크게 달랐다. 한 스텝의 기울기에 SDC가 더한 잡음은 작아서 가장 나쁜 Node 11에서도 정답 기울기 L2 노름의 5.1%였다. 그러나 여러 스텝을 지나면 학습 손실은 같아도 가중치가 정답에서 계속 멀어져 모델이 다른 최적점으로 수렴했다. 미세 조정에서는 일부 노드에서 손실이 크게 튀었고, Node 6에서는 CosmosQA 테스트 정확도가 0인 모델이 나왔다. 손실이 튀는지는 학습 과제의 손실 곡면에 따라 달랐고, OpenbookQA에서는 모든 비정상 노드의 손실 곡선이 정상 노드와 같았다.
체크섬을 붙인 행렬 곱셈인 ABFT로 하위 모듈에서 SDC를 잡으려 했지만 Node 14를 빼고는 오류를 잡지 못했다. 연구에 쓴 비정상 노드는 연구를 위해 잠시 붙잡아 둔 것이고, 이후 수리를 거쳐 운영 풀로 돌아가는 중이다.
- 심각도
- –
- 영향 범위
- 15 unhealthy accelerator nodes studied: LLM training on them produced different weights, loss spikes in some fine-tuning runs and in one case a model with zero test accuracy on CosmosQA
- 영향 사용자
- –
- 지역
- –
- 감지까지
- –
- 복구까지
- –
증상
클라우드 플랫폼의 플릿 관리 테스트가 가속기 노드 15대를 SDC 때문에 운영에서 뺐다. SDC는 조용한 데이터 손상으로, 하드웨어가 아무 오류 신호 없이 틀린 계산 결과를 내는 고장이다. 이 노드들에서 학습해도 학습 손실은 대부분 정상 노드와 똑같이 나왔다.
이 노드들 가운데 일부는 처음에는 정상이었고, 학습에 쓰인 뒤에 사전 점검에서 떨어지기 시작했다. 플릿 관리 테스트는 고객이 노드를 쓰지 않을 때만 돌릴 수 있어서, 몇 달씩 걸리는 LLM 학습 도중에 노드가 나빠지면 격리되기 전에 학습에 영향을 줄 수 있다.
정상 노드와 똑같은 계산을 실행마다 결과가 같은 결정적 방식으로 시켜 비교하자 Transformer 하위 모듈의 출력이 어긋났다. 노드마다 양상이 달랐는데, Node 10과 Node 11은 불일치 빈도가 높았고 Node 2와 Node 3은 이 설정에서 SDC가 나타나지 않았다. Node 9에서는 불일치 정도가 100을 넘어, 일부 값이 크게 다른 결과가 나왔다.
SDC는 학습 내내 고르게 나타나지 않았다. Node 7과 Node 14에서는 대부분의 시간 동안 불일치가 없다가 가끔 급등했고, Node 10과 Node 11에서는 학습을 시작하는 처음 몇 스텝에 불일치가 크게 몰렸다. Node 13은 450번째 스텝 전까지 매개변수 차이가 없다가 그 뒤 빠르게 벌어졌다.
사전 학습에서 학습 손실은 정상 노드와 거의 같았지만, 비정상 노드의 모델 가중치는 정상 노드의 가중치에서 점점 멀어졌다. Mistral-7B-v0.3을 CosmosQA로 미세 조정할 때는 Node 4, Node 6, Node 7에서 손실이 크게 튀었고, Node 6에서는 미세 조정 끝 무렵에 손실이 튀어 최종 모델의 CosmosQA 테스트 정확도가 0이 되었다.
증상 학습 발산과 손실 급등
원인
- 촉발
- –
감지
클라우드 플랫폼의 플릿 관리 스트레스 테스트가 SDC를 보인 노드를 잡아 운영에서 뺐다. 이 테스트는 결정적으로 실행한 작은 LLM 학습의 결과를 미리 계산한 정답과 비교해, 정답과 다르거나 실행마다 결과가 달라지면 SDC로 본다. 학습 손실만 봐서는 SDC가 드러나지 않았다.
조치
- 운영 마진 스트레스 테스트에서 떨어진 노드를 운영 가용 풀에 넣지 않았다.
- 연구를 위해 잠시 붙잡아 둔 비정상 노드를 수리에 넘겨 운영 풀로 돌려보내기 시작했다.
후속 조치
–
교훈
SDC는 학습 손실에 뚜렷한 신호 없이 일어날 수 있다. Node 10의 SDC는 하위 모듈 계산과 기울기를 꾸준히 흔들었지만 학습 손실은 사전 학습과 미세 조정 내내 정상 노드와 같았다. 따라서 손실이 튀기 전에 SDC가 얼마나 오래 학습에 영향을 줬는지 알 수 없다. 학습 손실만 모니터링해서는 SDC를 놓칠 수 있고, 극단적인 경우 손실이 튀며 모델이 완전히 망가진다. 체크섬을 붙인 행렬 곱셈인 ABFT로는 SDC를 높은 정밀도와 재현율로 잡지 못했다. 그래서 그림자 데이터 병렬 복제본으로 다시 계산해 기울기를 비교하는 방법이 실제로 SDC를 잡는 가장 나은 방법일 수 있다.
출처
- https://arxiv.org/abs/2502.12340 · paper · 보관본
관련 사례
–
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0479
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0479/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.