MLOps/파이프라인 모니터링

파이프라인 모니터링 구조도

주인장 아저씨 2023. 3. 5. 02:56

ㅇ 첫 번째로는 머신러닝 어플리케이션을 만듦

ㅇ 표준화와 모델링 코드를 Joblib Artifacts 형태로 저장 후 Serving API를 만든 후 GitHub에 커밋

(Serving API를 만드는데 활용되는 Pydantic은 Type Annotations을 사용해 데이터 구문 분석 및 유효성 검사를 자동으로 해주고 오류 시 Error를 반환해주는 유용한 라이브러리임)

ㅇ 이때, Jenkins가 이를 감지하여 앱을 Build하고 컨테이너를 Run하게 됨 

ㅇ 실행된 컨테이너는 Jenkins가 자동으로 감지하여 DockerHub에 빌드된 도커 이미지를 푸쉬함

ㅇ 그리고 LOCUST라는 오픈소스가 만들어진 도커 컨테이너를 시뮬레이션하여 테스트함

ㅇ 이때, Prometheus가 Jenkins 동작의 매트릭을 수집하고 LOCUST의 시뮬레이션 매트릭 또한 수집함

ㅇ 이렇게 수집된 매트릭을 Grafana로 보내서 LOCUST가 수행하는 ML 성능 모니터링을 수행하는 대시보드를 만들고, Jenkins 동작의 매트릭을 수집해서 이를 모니터링하는 대시보드를 생성

ㅇ 이러한 모니터링 파이프라인 구축을 통해 모델 훈련 코드에 변화를 주고 커밋을 하게 되면 ML 모델 성능 모니터링이 자동으로 바뀜