HPC & GPU Engineering/Platform Essentials

📘 고성능 AI 컴퓨팅 인프라 용어 사전 (11) – Checkpointing: 학습 중단 복구 전략

ygtoken 2025. 8. 3. 15:48
728x90

 

AI 모델 학습은 종종 수십 시간에서 수일 이상이 걸립니다.

그런데 학습 중간에 서버가 재시작되거나, GPU 장애가 발생하면?

모든 학습이 처음부터 다시 시작된다면 막대한 낭비입니다.

 

이 문제를 해결하는 기술이 바로 **Checkpointing(체크포인팅)**입니다.

 


Checkpointing이란?

 

Checkpointing은 AI 모델 학습 도중의 중간 상태를 저장해두는 전략입니다.

문제가 발생했을 때 이전 체크포인트부터 학습을 이어갈 수 있도록 만드는 구조입니다.

 

포함되는 정보:

 

  • 모델 파라미터 값 (Weights, Biases)
  • Optimizer 상태 (momentum 등)
  • 학습 진행률 (현재 epoch/batch)
  • RNG(Random Number Generator) seed 등

 


왜 필요한가?

 

  • GPU 장애, 클러스터 중단 등 예기치 못한 상황에 대비
  • 중단된 학습을 이어서 실행해 전체 시간/비용 절감
  • 대규모 분산 학습 환경에서 각 노드의 상태를 일관되게 복원
  • 재현 가능성 확보: 동일 체크포인트에서 다시 실험 가능

 


Checkpoint 저장 방식

방식 설명 특징
Local 파일 저장 학습 노드의 디스크에 직접 저장 속도 빠르나 장애 시 위험
Remote 저장소 NFS, S3, GCS 등에 저장 안정성 높고 분산 환경에 적합
주기적 저장 매 N epoch마다 저장 체크포인트 수 증가 가능성 있음
조건부 저장 성능 향상 시만 저장 Best 모델만 유지, 공간 절약

 


Checkpointing과 관련된 도구

  • PyTorch: torch.save(model.state_dict()), torch.load()
  • TensorFlow: tf.train.Checkpoint(), SavedModel 포맷
  • Hugging Face Trainer: --save_steps, --save_total_limit
  • MLflow: 실험 기록과 함께 체크포인트 메타데이터도 관리
  • Kubernetes 환경: PVC(PersistentVolumeClaim), CSI 드라이버 통해 디스크 마운트

 


분산 환경에서의 주의점

  • GPU 간 동기화된 저장 필요 (모델이 다르게 업데이트되지 않도록)
  • AllGather, Barrier 같은 연산으로 checkpoint 시점 동기화
  • 학습 재시작 시 DistributedSampler도 동일 seed로 설정해야 데이터 순서 일치

 


Checkpointing과 Checkpoint 서버

 

대규모 AI 클러스터에서는 중앙 Checkpoint 서버를 두는 경우도 많습니다.

  • 모든 노드의 체크포인트를 통합 관리
  • 모델 이름, 실험 번호, epoch 번호로 디렉터리 자동 분류
  • 저장 경로: /mnt/checkpoints/<job-id>/<model-name>/epoch_x/
  • Airflow / Kubeflow Pipeline과 연동 가능

 


마무리

 

Checkpointing은 단순한 “파일 저장”이 아닙니다.

학습 효율, 안정성, 실험 재현성, 운영 비용을 좌우하는 핵심 전략입니다.

 

AI 인프라가 커질수록,

“얼마나 잘 학습하느냐”보다 “언제든 복구 가능한가”가 더 중요한 질문이 됩니다.

 

728x90