본문 바로가기
MLOps

MLOps의 필요성..

by 볼록티 2022. 6. 15.
728x90
반응형

 

"MLOps가 왜 필요할까?"

 단순한 AI모델을 배포하는 것은 쉽지만 이를 계속해서 유지보수 및 고도화해나가는 것은 많은 리소스가 든다. 그 예로는 프로세스간의 종속성, 문서화, API 유지, 리팩토링(소스코드수정) 등이 있다. ML에서는 이러한 문제만 해결하는 것이 힘든 부분들이 있기 때문에 MLOps의 필요성이 부각된다.

 

"좋은 MLOps를 구성한다는 것은 어떤 것을 고려해야하나?"

 데이터의 변화가 잦고, 모델 성능 개선을 위한 재학습 그리고 도메인 상의 라벨링에 대한 피드백과 크라우드 소싱에 대한 문제는 쉽게 해결하기 힘들다. 이상적으로 ML프로그래밍을 한다는 것은 변하는 데이터셋에 유연하고, 모델도 재사용가능하기 좋아야 한다. 당연히 문제 정의도 명확히 해야한다. 추가적으로 데이터/모델에 대한 검증도 잘 해주어야하며 설명이 얼마나 가능한지도 체크가능 해야한다.

 

"CI/CD" + "CT"

 ML을 서비스하기 위해서 반드시 엔지니어링이 필요하다. 분류 모델, 추천 모델 등을 개발하더라도 이를 실제 서비스에 활용하고 적용시켜야하기 때문이다. 변화하는 실제 환경에 대응해야하고, 지속적으로 모델이 학습도 진행해야 한다. 그래서 수동이 아닌 자동으로 배포되는 일련의 파이프라인이 필요하다. 그래서 한번 개발한 작업물은 모니터링 만으로 지속적으로 관리가 가능하도록 해야한다. 이 파이프라인은 지속적 통합(CI)과 지속적 배포(CD)를 담고 있어야 한다! 게다가 기존의 모델이 지속적 학습(CT)을 하는 것이 바람직하다. 데이터 사이언티스트가 리서치를 하기 위해 시간을 벌기 위해서는 자동화가 필수라고 할 수 있다.

 

"데이터 관리"

 데이터에 대한 버전관리를 진행하여 기록해두도록 한다. 그리고 모델 검증을 위해서는 테스트셋을 고정해두는 것도 놓치지 쉬운 부분이니 마련해두도록 하자. 데이터의 이상치나 결측값등에 대한 알람 설정도 도움이 된다. 전처리의 경우 차원, 정규화 등도 고려하고 전처리는 한번에 큰 배치단위로 실행하는 것이 효율적이다. 

 

"모델 관리"

 모델에서 튜닝은 꽃과 같은 프로세스다. 성능이 곧 프로덕트의 경쟁력과 직결되는 경우가 많이 때문이다. 모델 성능 측정에도 기본적인 지표들로 멈추지 말고 다차원(더 큰 차원으로 학습한 모델)으로 모델을 분석해보자. 모델에 대한 피드백도 지속적으로 모니터링할 수 있도록 기록을 남기는 것이 좋다.

 

"실험관리"

 데이터셋, 파라미터 관리, 성능 등 기록이 없이 진행하면 고도화에 상당히 애를 먹게 된다. 보통 학습과정에서 loss와 accuarcy와 같은 성능지표를 별도 객체에 저장해서 시각화해서 띄워보는데, 이와 같은 것을 관리하기 좋게 만들어주는 툴이 있는데  Weights and Biases 가 바로 그것이다. Weights and Biases는 미국의 스타트업으로 실험관리 솔루션을 제공하며 개인은 무료이지만 기업에서는 별도의 비용이 발생한다. 하이퍼파라미터, 성능지표, GPU사용 등을 시각화해 관리할 수 있다. 

 

 궁극적으로는 수동으로 배포하는 서비스에 대해서는 굳이 사용할 필요가 없을지도 모른다. 굳이. 하지만 나날이 증가하는 모델의 개수, 실험들을 생각하면 미리 알아두고 구현해 훗날 진입장벽을 낮추는게 좋을 듯 하다. 아직 아주 큰 기업에서의 AI프로젝트들을 눈으로 못봐서 그렇지 여기저기서 화두가 되는 건 다~ 이유가 있으니까! 필요한 기술들을 강의든 책이든 활용해 학습해나가자!

728x90
반응형

'MLOps' 카테고리의 다른 글

MLOps note(1)  (0) 2023.10.12
딥러닝 모델 컨테이너 띄우기(wt. GPU)  (0) 2022.03.31
nvidia-docker 설치 및 컨테이너 띄우기 with GPU  (0) 2022.03.31
GPU 사용 환경 세팅  (0) 2022.03.26
MLOps를 위한 잡동사니  (0) 2022.03.26

댓글