#분산학습
3편
- GPU 120만 개 — 고장이 일상이 되는 규모의 산수머스크가 xAI의 Colossus 2를 연말까지 엔비디아 칩 120만 개 넘게 늘리겠다고 했다. GPU 한 개는 평균 5.8년에 한 번 멈추지만, 120만 개를 묶으면 평균 2.5분마다 어딘가 멈춘다. 이 전부를 한 작업으로 돌리고 고장마다 체크포인트로 되돌아가면, 최적 주기를 골라도 효율은 11.5%다. 저장을 10초로 줄이고 재시작을 1분으로 줄이자 48.4%까지 올라왔다
- 분산 학습 — 계산을 나누면 통신이 남는다GPU를 32배 늘려도 32배 빨라지지 않는다. 나눌 수 없는 부분이 5%만 있어도 12.1배에서 멈췄고, 20%면 5.1배였다. 나누는 방식마다 통신량도 달랐다 — 데이터 병렬은 스텝마다 28GB, 파이프라인은 0.067GB다. 그리고 분산은 속도만을 위한 것이 아니다. 학습에는 파라미터의 4.0배가 드는데(실측), 그것을 32장에 쪼개면 장당 112GB가 3.5GB가 된다
- 큰 배치와 그래디언트 축적 — 분산 학습의 산수여러 GPU로 학습한다는 것은 결국 배치를 나눠 계산하고 그라디언트를 평균하는 일이다. 배치 128짜리 4개의 평균이 배치 512 한 번과 오차 9e-10으로 같았다. 배치를 키우면 그라디언트 잡음이 정확히 1/B로 줄었고(로그 기울기 -1.00), 그만큼 최적 학습률도 함께 커졌다(배치 16배에 학습률 10배)