MLOps에 AIOps 더하기
MLOps와 AIOps의 차이와 연결고리를 살펴보고, 이를 바탕으로 수요 예측 및 발주 자동화 시스템까지 만드는 실습을 진행했다.
AI 서비스와 MLOps 이해
왜 MLOps가 필요할까?
머신러닝 프로젝트를 몇 번 해본 사람이라면 공감할 거다. (물론 나는 처음이다)
모델 하나 잘 만든다고 끝이 아니라, 데이터 수집, 전처리, 모델 학습, 배포, 운영 의 전 과정이 들어가고, 모델 완성 후에도 몇 달이 지나면 모델 성능이 다시 안 좋아지는 경우도 빈번하다고 한다.
배포도 개발 환경에서는 잘 되더니 배포하니 안 돌아가고, 배포했더니 성능이 떨어지고, 시간이 지나면 예측이 틀어지는 등의 문제가 발생할 수 있다.
이러한 문제를 자동화?하는 게 바로 MLOps다.
📌 MLOps란?
머신러닝 모델을 개발, 배포, 운영하는 전 과정을 DevOps처럼 자동화하고 체계화하는 방법론
MLOps가 해결해주는 것들
- 모델 개발부터 운영까지 프로세스 자동화
- 실험 기록, 버전 관리, 재현성 강화
- 성능 모니터링 및 빠른 대응
- 협업과 운영 효율성 업그레이드
쉽게 말해, 모델이 무사히 배포되고 지속적으로 잘 돌아가게 도와주는 역할을 한다.
MLOps 구성요소 한눈에 보기
- 데이터 준비
수집, 전처리, 라벨링 - 모델 개발
학습, 최적화, 평가 - 모델 배포
패키징, 배포, 모니터링 - 모델 운영
성능 감시, 재학습, 갱신
MLflow로 실험 관리해보기
MLflow를 사용하면 모델 실험 결과를 기록하고, 버전 관리도 할 수 있고, UI가 제공돼서 실험을 한눈에 볼 수 있다.
모델 성능 모니터링 (MLOps vs AIOps)
나는 처음에 두 개념이 약간 헷갈렸는데 정리하면 이와 같다.
-
MLOps
모델 상태를 지속적으로 모니터링하고 성능이 나빠지면 알림을 준다. (예: 데이터 드리프트, 성능 저하 알림) -
AIOps
알림에 그치지 않고 예측과 자동 대응까지 해준다.- 성능 저하 패턴 학습
- 미리 경고
- 자동 파라미터 추천
- 자동 재배포
수요예측 & 발주 자동화 시스템
이 프로젝트에서 만든 서비스는 AI로 수요를 예측하고 발주를 자동화하는 웹 서비스다.
- Frontend : Vue.js
- Backend : FastAPI
- 데이터 입력 : CSV 업로드
- 결과 출력 : 예측 시각화
제공된 실습 코드를 토대로 동작 흐름은 이렇게 짰다.
- 이미 학습된 LSTM 모델 로드
- 사용자가 CSV 업로드
- 예측 수행
- 모델 성능 평가 (RMSE)
- 성능 저하 시 재학습 및 덮어쓰기
- 새 모델로 재예측
현재 상태와 아쉬움
짧은 기간에 만들어서 그런지 아쉬운 부분이 많다.
- 모델 버전 관리가 안 된다. (그냥 덮어쓰기…)
- 예측 기록도 남지 않는다.
- 로컬에서만 동작한다.
그래서
모델 버전 관리 + 예측 이력 관리
Docker 배포
이 두 가지는 꼭 추가해보고 싶다. 마침 내일부터 클라우드 심화 수업이 시작되니 수업 듣고 적용해봐야지!
끝으로
MLOps, AIOps 개념이 처음엔 좀 어렵게 느껴졌는데
직접 실습하면서 “아 이런 게 필요하구나” 몸으로 느낄 수 있었다.
아직 부족한 점이 많지만
그래도 해보고 싶던 걸 직접 구현해봐서 뿌듯하다.
최종 프로젝트에서는 더 발전된 걸 만들어보고 싶다. 그럼… 내일 수업을 위해 이만! 🙈