개념 및 배경
MLOps (기계 학습 운영)는 기계 학습을 원활하고 효율적으로 개발하고 유지하는 것이다. 목표는 ML 파이프라인을 자동화하여 모델을 지속적으로 학습시키는 것이다. 이를 통해 모델 예측 서비스를 지속적으로 제공할 수 있다. 새 데이터를 사용하여 프로덕션 단계에서 모델을 재학습시키는 프로세스를 자동화하려면 파이프라인 트리거 및 메타데이터 관리뿐만 아니라 자동화된 데이터 및 모델 검증 단계를 파이프라인에 도입해야 한다.
The Guiding Principles of MLOps
- collaborative
- reproducible
- continuous
- tested & monitored
일반적인 머신러닝 파이프라인
이번에 기회가 되어 전체적인 머신러닝 파이프라인을 구축하고 자동화 시키는 시스템을 개발하게 되었다. 많은 도움이 될 것 같아 google automl 등 이것저것 찾아보고 최대한 reproducible한 시스템을 개발할 수 있도록 노력하고 있다.
시스템을 개발하며 많은 이슈가 있었고 앞으로도 있을 것이고 간단한 모듈들을 공유하고자 카테고리를 생성했다.
모든 이슈는 여기에 정리하고 시간이 될 때 마다 하나하나 해결법이나 중요내용을 공유할 것이다.
개발 중 이슈
1. 스케줄러 사용시 cuda 메모리가 계속 할당되어 있어 새로운 학습이 시작될 때 Cuda:Out Of Memory(OOM)이 발생.
- cuda 메모리를 스케줄러에서 job 종료시 cuda 메모리 할당 해제
해결방법 : 2021.07.17 - [MLOps] - [MLOps] PyTorch GPU Out-Of-Memory 문제 해결
2. 학습 모델 FTP로 업로드 할 경우 FTP서버의 남은 저장 공간을 알 수 없는 이슈 발생
- FTP client에서 FTP server 로 업로드 할 때는 FTP server의 남은 공간을 알 수 없기에 공용 DB에 FTP server의 잔여 공간을 기록하고 업로드 및 파일 삭제 등 서버의 공간에 영향을 미칠 때 동기화를 시켜주어 해결
'MLOps' 카테고리의 다른 글
[MLOps] PyTorch GPU Out-Of-Memory 문제 해결 (0) | 2021.07.17 |
---|
댓글