본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. (https://fastcampus.info/4oKQD6b)
오늘은 MLOps 구축을 위해 주로 사용되는 플랫폼들 중에서 제일 먼저 사용되는 머신러닝 모델의 개발부터 배포까지 전체 수명 주기(LifeCycle)을 관리하는 오픈소스 플랫폼인 MLFlow(02-05) 실습을 해보면서 수많은 모델 실험들 중에서 최적의 모델을 선정하고, 이를 체계적으로 관리해보는 부분을 직접 실습해 보았습니다.
머신러닝을 개발하는 과정에서 다양한 알고리즘과 수많은 하이퍼파리미터 조합으로, 수십 & 수백개의 보델의 학습 결과가 나옵니다. 이걸 일일이 관리하는것도 일이기 때문에, model selection 기능을 통해 기록된 메트릭, f1-score등을 비교 분석해서 주어진 문제 해결에 가장 적합한 하나의 모델을 선택하는 의사결정 과정이라고 생각했습니다.
그리고 이제 선택된 모델을 파일 시스템에 단순히 방치하는 것이 아니라, 중아 집종화된 저장소에 등록하여 관리하는 Model Registry 기능이 있다고 합니다. 또한 버전 관리를 통하여 모델이 업데이트를 하며 버전 1,2 등으로 자동화 관리되며, 각 버전의 변경 이력을 추적합니다. 또한 생명주기 관리도 할수 있어, 모델의 상태를 명확히 정의할 수 있는 장점이 있습니다.
가장 신기했던건, 모델도 여러 버전으로 관리할 수 있다는 점이였습니다. 모델이 로컬에서 잘 돌아가서 단순히 바로 배포하는 것이 아닌, 반드시 검수 단계를 거쳐야 하고, 이렇게 모델의 안정성, 품질 관리를 하여 모델의 신뢰성을 높이는 기능이 있다는 점이 매우 신기했고, 활용해 봐야겠다는 생각이 들었습니다. 또한 모델의 상태를 developement, staging, production, archived 이렇게 모델의 상태를 체계적으로 관리하고 활용하여 MLOps 시스템을 잘 활용할 수 있겠다라는 생각이 들었습니다. 나중에 프로젝트에 꼭 적용해 보고 싶다라고 생각이 들었습니다.



