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
'HPC & GPU Engineering > Platform Essentials' 카테고리의 다른 글
| 📘 고성능 AI 컴퓨팅 인프라 용어 사전 (13) – Vector Indexing: 임베딩 검색의 기반 기술 (3) | 2025.08.03 |
|---|---|
| 📘 고성능 AI 컴퓨팅 인프라 용어 사전 (12) – Model Versioning: 실험과 롤백의 기반 (3) | 2025.08.03 |
| 📘 고성능 AI 컴퓨팅 인프라 용어 사전 (10) – AIOps와 MLOps란? (4) | 2025.08.03 |
| 📘 고성능 AI 컴퓨팅 인프라 용어 사전 (9) – GPU Telemetry & Observability (2) | 2025.08.03 |
| 📘 고성능 AI 컴퓨팅 인프라 용어 사전 (8) – Utilization Optimization & QoS (1) | 2025.08.03 |