Skip to content

UpstageAILab6/upstage-ml-mlops-5-pub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Review Assignment Due Date

영화 평점 예측 프로젝트

MLOps 파이프라인을 구축하여 영화 평점을 예측하는 모델을 개발하고 배포하는 프로젝트입니다. CI/CD 자동화를 통해 신속한 모델 업데이트가 가능하도록 구성하였으며, 데이터 수집부터 모델 모니터링까지 전 과정을 자동화하는 것이 목표입니다.

  • 프로젝트 기간: 2025.01.16 ~ 2025.02.03
  • 주제 : 영화 평점 예측 프로젝트
  • 배포 링크: [서비스 바로가기]\

팀원 소개

이름 역할 GitHub 담당 기능
강병무 팀장/MLOps 엔지니어 kingkangkr github 레포 구축, 배포 관리, performance monitoring 구축
박정은 MLOps 엔지니어 gkwjdtk09 Automated pipeline 구축, CI/CD 파이프라인 구축, 자료 수집
손봉교 MLOps 엔지니어 imsonn94 데이터 수집, 서버 구축, Automated pipeline 구축, CI/CD 파이프라인 구축, Docker 컨테이너 관리, 모델 코드 리뷰
이해울 MLOps 엔지니어 haeul 데이터 전처리, Automated pipeline 구축, API 개발, db 구축
정혜린 MLOps 엔지니어 jhyerin31 데이터 전처리, Automated pipeline 구축, CI/CD 파이프라인 구축

MLOps 파이프라인 워크플로우

구축된 MLOps 파이프라인의 전반적인 워크플로우를 아래와 같이 설명합니다. Image

1.비즈니스 문제 정의

  • 영화 평점 예측 모델을 통해 사용자에게 보다 신뢰성 높은 영화 평가 정보를 제공하는 것이 목표입니다.
  • 기존의 영화 추천 시스템과 달리, 사용자가 특정 영화를 입력하면 해당 영화의 예상 평점을 즉각적으로 예측하여 응답합니다.
  • 사용자의 선호도를 고려한 영화 추천과 더불어, 영화 제작 및 배급사에서도 영화의 시장 반응을 예측하는 데 활용할 수 있습니다.
  • 최신 데이터 수집 및 정제, 모델 재학습, 그리고 모델 성능 모니터링이 자동화된 MLOps 파이프라인을 통해 이루어집니다.

2.데이터 탐색 및 전처리

  1. 데이터 수집

    • IMDB API에서 영화 관련 데이터를 수집하고 서버에 저장
  2. 데이터 탐색

    • 결측치, 이상치 탐색 및 시각화를 통한 패턴 분석
  3. 데이터 전처리

    • 결측값 처리, 이상치 제거, 피처 엔지니어링, 스케일링 진행

3.모델 학습 및 튜닝

  • Airflow 기반 자동화된 학습 파이프라인 구축

    • 데이터 준비 → 모델 학습 → 검증 → 평가 → 저장 과정을 자동화
  • 모델 버전 관리

    • 학습된 모델과 feature names를 저장하고 관리

4.모델 검증 및 평가

  1. 검증 메트릭 정의
    • RMSE 성능 평가 지표 활용

5.모델 배포

  1. Docker 컨테이너화

    • Dockerfile을 활용하여 각 구성 요소(웹서버, 스케줄러, 모델 서비스, 모니터링, DB)를 개별 컨테이너로 분리
    • docker run을 쉘 스크립트로 실행하여 컨테이너 간의 의존성을 관리
    • 데이터 저장 및 공유를 위해 적절한 Volume 및 네트워크 설정 적용
  2. 컨테이너별 역할 및 연동

    • Autopipeline Webserver: 모델 학습 및 평가 스케줄링 관리
    • Scheduler: Airflow 기반 DAG 실행 및 데이터 파이프라인 관리
    • 모델 Service: 학습된 모델을 로드하여 예측 API 제공
    • 모니터링: Wandb 및 로그 관리 시스템을 통해 모델 성능 추적
    • DB: 예측 요청 및 학습 데이터를 저장하는 데이터베이스 운영
  3. 배포 프로세스

    • GitHub Actions를 활용하여 CI/CD 자동화
    • 컨테이너 로그를 수집하여 실시간 배포 상태 및 모델 성능 모니터링

6.모니터링 및 피드백

  1. 모델 성능 모니터링

    • Wandb(Weights & Biases)를 활용하여 실시간 로그 및 모델 성능 모니터링
  2. 자동 재학습 트리거

    • 새로운 데이터가 누적되면 자동으로 모델을 재학습
  3. 로그 관리 및 배포 모니터링

    • Docker 컨테이너 로그를 관리하여 배포 후 모델 예측 성능을 모니터링
    • Airflow에서 모델 학습 및 배포 과정을 트래킹하여 재학습 시점 판단

사용 툴

구분 사용 툴
CI/CD GitHub Actions
모델 학습 및 배포 Airflow, Pickle, Docker, Flask
모니터링 Wandb, Airflow DAGs
API 개발 Flask, Docker

활용 장비

  • 서버 장비: AWS EC2 t3.large
  • 개발 환경: Ubuntu 22.04
  • 테스트 장비: RTX 3090 24GB

협업 툴

  • 소스 관리: GitHub
  • 프로젝트 관리: Notion
  • 커뮤니케이션: 카카오톡, Slack
  • 버전 관리: Git

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7