[MLOps] CI / CD / CT / CM
MLOps의 핵심인 CI/CD/CT/CM을 통해 머신러닝 모델의 개발, 배포, 학습, 모니터링 전 과정을 자동화하고 안정적으로 운영하는 방법을 소개합니다.
개요
MLOps에 지속적 통합(CI), 지속적 배포(CD), 지속적 학습(CT), 그리고 지속적 모니터링(CM)을 적용하는 방법에 대한 포괄적인 내용을 정리하였습니다. 이러한 Operation 관행을 통해 MLOps의 근간을 확인하고 개발, 배포, 관리까지를 가능하게 하는 방법을 확인합니다.
CI in MLOps
코드, 데이터, 머신러닝 모델이 원활하게 공유 레포지토리에 통합할 수 있게 합니다.
자동화된 코드 및 모델 통합:
- 코드 변경 사항 및 ML 모델을 공유 리포지토리에 자동으로 병합합니다. 이를 통해 일관성을 보장하고 휴먼 에러를 줄일 수 있으며 시스템을 효율적으로 관리합니다.
버전 제어:
- Git, MLflow 같은 도구를 활용하여 코드부터 데이터, 모델까지 변경사항을 추적하고 각 구성원별 중앙화된 시스템을 통해 협업과 반복 가능한 환경을 설계합니다.
자동화된 테스트:
- 유닛 테스트, 통합 테스트, 검증 테스트를 수행해야하며 반복적으로 수행할 수 있어야합니다. 이를 바탕으로 모든 구성 요소가 다양한 환경에서 올바르게 작동하는지 확인합니다.
CI는 충돌과 코드 오류를 최소화할 뿐만 아니라 각 구성 요소를 철저히 테스트하고 검증함으로써 견고하고 확장 가능한 프로덕션 시스템의 기반을 마련합니다.
CD in MLOps
자동 모델 배포:
- 업데이트 된 모델을 즉시 사용하기 위해 자동화된 배포 파이프라인을 구성합니다.
Infra as a Code:
- Terraform, k8s같은 IaC 도구를 사용하여 테스트, 배포 환경의 확장성과 재현성을 보장합니다.
배포 전략 구성:
- 블루그린 배포와 카나리 배포 전략 구성하여 무중단 구성과 배포를 수행할 수 있게 합니다.
롤백 메커니즘:
- 배포, 훈련 중 문제가 발생하는 경우 신속하게 이전 안정된 상태로 돌릴 수 있도록 구성합니다.
CI와 통합:
- 코드 통합부터 프로덕션 배포까지 원활한 전환 환경을 구성합니다.
CT in MLOps
머신러닝 모델이 새로운 데이터가 도착하여 재학습할 때마다 최신 상태로 유지하는데 중점을 둡니다.
자동화된 재훈련 파이프라인:
- 데이터 업데이트, 성능 지표에 따라 재학습 프로세스를 예약합니다.
데이터 버전 관리:
- DVC, DeltaLake → 데이터셋을 효율적으로 추적하고 관리하며 데이터의 변경 사항을 확인합니다.
하이퍼파라미터 튜닝과 실험:
- 모델 성능을 최적화합니다.
클라우드, 분산 컴퓨팅 서비스:
- 대규모 모델 훈련과 테스트를 수행합니다.
모델 검증 및 테스트:
- 모델을 검증하고 테스트하며 성능과 품질 벤치마크를 충족하는지 검토합니다.
CM in MLOps
배포된 모델이 프로덕션에서 실시간으로 안정적이고 예상대로 동작하는지 확인하기 위해 사용합니다.
실시간 모니터링:
- Prometheus & Grafana를 통한 실시간 메트릭 추적
데이터 및 모델 드리프트 감지:
- 성능 문제를 확인할 수 있는 데이터 분포나 모델 예측의 이상치를 모니터링합니다.
자동 알림 및 통지:
- 성능 저하에 대한 잠재적인 문제를 빠르게 대응할 수 있게 합니다.
- 모델의 변화를 예측하고 식별 → 알림과 통지
로깅 및 감사:
- 규정 준수, 보안과 트러블 슈팅을 위해 로그를 유지 관리합니다.
피드백 루프:
- 피드백 메커니즘을 구현하여 모델 성능을 지속적으로 개선합니다.