본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. (https://fastcampus.info/4oKQD6b)
오늘은 MLOps 구축을 위해 주로 사용되는 플랫폼들 중에서 제일 먼저 사용되는 머신러닝 모델의 개발부터 배포까지 전체 수명 주기(LifeCycle)을 관리하는 오픈소스 플랫폼인 MLFlow(02-07) 실습을 해보면서 end-to-end 실습을 해본 내용을 토대로 한번 복습해 보는 시간을 가졌습니다.
한번 정리해보면, 먼저 데이터를 전처리 하고 Hyperopt와 같은 도구를 사용해 하이퍼파라미터를 튜닝하는 과정에서 mlflow.log_param과 log_metric을 통해 수많은 실험의 인과관계를 기록했습니다. 그리고 모델을 수십번을 테스트 해보고, 단순히 정확도가 높은 모델이 아니라, 우리의 비즈니스 목표를 달성하기 위해서 Recall, F1-Score에 가장 부합하는 모델을 데이터에 근거하여 선정하였습니다.
또한 선정된 모델을 단순히 로컬 파일로 방치하는것이 아닌 Model Regisry에 등록하여 버전을 관리했습니다. 그리고 모델을 단순히 Staging 검증을 하는것이 아닌, Production으로 올려 관리해보고, 이를 REST API 형태의 서버로 띄워서 실제 예측 서비스를 제공하는 단계를 실습해보는 전체의 내용을 한번 더 리마인드 해보는 시간을 가졌습니다.
MLflow를 통해서 기존의 모델을 업데이터 하려면 파일을 덮어쓰거나, 파일명 뒤에 날짜를 붙이는 주먹구구식의 관리를 했다고 생각합니다. 다만 이제 MLflow Registry 관리를 통해서 모델의 버전을 체계적으로 관리르 하고, Production 단계의 모델을 가져오는 명령어와 킬릭 몇번만으로 최신 모델을 서비스에 반영할 수 있다는 점이 매우 인상깊었습니다. 앞으로 회사에서 머신러닝 모델 개발 & 관리를 할때 적극적으로 도입해서 활용을 해봐야 겠고, 이 경험이 도움이 될 수 있겠다고 생각 했습니디.



