Skip to content

namgi2386/roll-model-2025

 
 

Repository files navigation

🌀 roll-model

main_page.gif

데이터 전처리부터 모델 학습, 배포, API 제공까지 한 번에 말아드립니다.
비전문가도 쉽게 사용할 수 있는 노코드 머신러닝 파이프라인 플랫폼 'roll-model' 입니다.

🚀 프로젝트 개요

roll-model은 데이터 전처리, 모델링, 평가, 배포 과정의 자동화, 용어와 사용법 가이드를 통해 누구나 손쉽게 AI 모델을 개발하고 API로 배포할 수 있도록 돕는 플랫폼입니다.

📅 개발 기간

2025.04.14 ~ 2025.05.22 (6주)

목차


🧩 주요 기능

🙆 친절한 가이드라인

  • 튜토리얼 라이브러리를 활용한 사용법 설명
  • 가이드라인을 통해 용어 및 세부사항 설명

✅ 원클릭 데이터 전처리 제공

  • 버튼 클릭으로 전처리 적용
  • 전처리 결과 데이터, 전/후 처리 비교 제공

🧠 AI 기반 전처리 추천

  • 데이터 구조와 프로젝트 목적에 따라 AI 프롬프팅
  • 전처리 과정의 오류 회피 및 모델 학습에 적합한 전처리 추천

🌐 자동 API 배포

  • 모델 학습 후 API 자동 생성 (Curl, Python, JS, Java 예제 제공)
  • 상세 API 문서와 모델 파일 다운로드 옵션 포함

📌 데이터 인사이트 제공

  • 변수 간 상관관계 분석
  • 이상치 감지 및 데이터 분포 분석

📊 직관적인 모델 평가 도구

  • R², MAE, RMSE 등 다양한 지표 제공
  • 특성 중요도 분석 및 예측 결과 시각화

🗂️ 버전 관리 시스템

  • 모델 버전별 성능/파라미터 이력 추적
  • 모델 버전 추적을 통해 연관된 모델 관리

♻️ 모델 공유 및 재학습 시스템

  • 타 사용자의 모델로 재학습
  • 모델 공유 커뮤니티 제공

🏗️ 시스템 아키텍처 및 인프라 특징

  • 메시지 기반 비동기 아키텍처: Kafka + Celery Worker
  • 자동화된 ML 파이프라인: 학습 요청 → 서빙까지 완전 자동화
  • Kubernetes + KServe 기반 배포: 오토 스케일링, 자원 격리, 템플릿 배포
  • GPU 자원의 유연한 분할로 효율 증대: 모델당 약 128MB 메모리로 자원 낭비 최소화
  • Kong API Gateway 기반 보안: 모델별 ACL 기반 API 키 부여
  • 확장 가능한 구조: 현재는 Scikit-learn 기반, TensorFlow/PyTorch도 확장 가능

📦 아키텍처 구조도

image.png

📊 ERD


🧪 기술 스택

  • Frontend: Next.js, FCM, Styled-components,, TanStackQuery, Jotai, Jest
  • Backend: FastAPI, Spring, Celery, Kafka
  • DB: MongoDB, MySQL
  • Storage: MINIO
  • Infra: Kubernetes, KServe, NginX, Istio, Kong API Gateway, Docker, Jenkins (CI/CD), mlflow, Scikit-learn, Jinja

메인 페이지

main_page.gif
  • 구글 소셜로그인, 깃허브 소셜로그인을 제공합니다.
  • 서비스 정보와 기본가이드를 제공합니다.

워크스페이스

데이터 업로드 프로젝트 세팅
main_page.gif upload_page.gif
| 사용자의 data file upload 단계
• 첫 사용자를 위한 가이드가 제공됩니다.
| ML 프로젝트 기본정보 입력 단계
• 프로젝트 이름, 공개여부
• 프로젝트의 목적 및 도메인 등을 선택합니다.

DATA 전처리 기능

main_page.gif

data 품질 개선을 통한 정확한 학습을 위해 전처리 기능을 제공합니다.

  • 데이터 미리보기: 실시간으로 전처리되는 데이터 상태
  • AI 추천 전처리 단계: data에 따른 전처리 파이프라인을 추천
  • 전처리 기능: 결측치 처리, 이상치 처리 등 7가지의 전처리 기능을 제공하며, 기능별로 세부 기능을 제공
  • 적용한 전처리 단계: 현재 적용된 전처리 파이프라인의 수정 및 삭제 가능

DATA 전처리 완료 및 결과

main_page.gif

전처리 완료 된 data의 요약정보를 확인 가능합니다.

ML 모델 파라미터 설정

upload_page.gif

ML에 사용될 모델 및 파라미터를 설정합니다.

  • 분류모델 (5가지 모델 제공)
    • 로지스틱 회귀, SVC, KNN, 랜덤 포레스트, 그래디언트 부스팅
  • 회귀모델 (4가지 모델 제공)
    • 엘라스틱넷, SVR, 랜덤 포레스트 회귀, 그래디언트 부스팅 회귀

학습 시작 후

  • ML학습은 백그라운드 환경에서 진행됩니다.
  • 대시보드에서 현재 학습 중인 프로젝트를 확인 할 수 있습니다.
  • FCM 알림을 통해 학습 완료를 알림 받습니다.

사용자 대시보드 페이지

main_page.gif
  • 필터링 기능 제공
    • 모델별 필터링
    • 프로젝트 상태별 필터링
  • 검색기능 제공
  • 각 프로젝트별 상태 확인 가능
    • 학습대기상태 ⇒ 학습시작
    • 학습중상태 ⇒ FCM알림 예정상태
    • 프로젝트 상세정보
    • 재학습

오픈소스 모델 공유 페이지

main_page.gif
  • 필터링기능과 검색기능을 제공합니다.
  • 다른 사용자들이 완성해둔 모델을 재학습하여 참여 가능합니다.

모델 상세 페이지

전처리 데이터 상세

main_page.gif
  • 데이터 요약 정보
  • 전처리 파이프라인 정보
  • 주요 변수의 분표도 정보
  • 변수간 상관관계 매트릭스 정보

ML 모델 상세

upload_page.gif
  • ML 모델 상세 정보
  • ML 모델 성능 분석 정보
  • 모델 평가 정보
  • 모델 평가 가이드 정보
  • 특성 중요도 정보

재학습 버전관리 상세

main_page.gif
  • 해당 ML 프로젝트에서 진행된 재학습 버전 정보 제공
  • Github Tree 구조를 차용
  • 버전 상태별 확인 가능

API 서빙 상세

upload_page.gif
  • 완성된 ML 모델은 자동 호스팅 됩니다.
  • 학습된 모델 pkl파일 다운로드 기능
  • 호스팅된 ML 모델의 API 상태 정보
  • 발급된 API 엔드포인트와 API키가 제공됩니다.
  • API 요청을 위한 예시 코드가 제공됩니다.

👥 팀 구성

팀명 : 최AI

👥 팀원 소개

임남기 (FE, 팀장)

  • 아키텍처 설계, 오픈소스 기능, 사용자 대시보드
  • 프로젝트 별 상세 페이지(개요, 모델, 데이터, 버전, API)
  • 모델 학습, 학습 상태 페이지 FCM 알림, UI/UX

박가희 (FE)

  • 메인페이지, 로그인 기능
  • 데이터 업로드 기능, 데이터 전처리
  • 튜토리얼, 가이드라인, AI 전처리 추천, 재학습 기능, UI/UX

김준석 (BE, Infra)

  • 모델 파이프라인(학습/평가/배포/인증/인가)
  • PPT 제작

정규현 (BE, Infra)

  • 배포, 무중단 처리, CI/CD 파이프라인
  • 프로젝트 상세(모델), AI 전처리 추천
  • 영상 포트폴리오 제작

권남희 (BE, 발표)

  • 오픈소스, 대시보드
  • 프로젝트 상세(개요, 데이터, 버전, API)
  • 모델 학습, 학습 상태 FCM 알림, 프로젝트 생성, 데이터 업로드
  • PPT 제작, 발표

진우석 (BE)

  • 인증/인가, 데이터 전처리
  • 학습 실행, 워크스페이스

📋 프로젝트 관리 (Jira)

일정 관리 및 스프린트 운영

  • 프로젝트 단계별 진행: 기획 → 1차 MVP (mock data 기반 기능구현) → 2차 MVP (API 연동) → 3차 MVP (최적화) → 발표준비 단계로 구분하여 6주간 진행
  • 일일 스크럼: 매일 오전 진행 상황 공유를 위한 스크럼 진행
  • 스프린트 리뷰: 매주 금요일 완료된 기능 데모 및 회고

누적 흐름 다이어그램 (CFD)

alt text

🧭 Git 브랜치 규칙

feat/역할(FE/BE/INF)-지라이슈번호-세부기능

예시:

feat/FE-7-login
hotfix/BE-api-error

✅ 커밋 메시지 컨벤션

[역할] prefix: 세부 기능
  • feat: 새로운 기능 추가
  • fix: 버그 수정
  • docs: 문서 수정
  • modify: 기능/코드 수정 완료
  • refactor: 리팩토링
  • hotfix: 긴급 수정
  • merge / resolve / remove / add / move / conf / test

예시:

[FE] feat: 로그인 화면 구현
[BE] modify: 학습 API 파라미터 변경

🔧 PR 템플릿

# 🤷‍♂️ Description

<!-- 기능을 설명해주세요. -->

# 📸 Screenshots

<!-- 필요한 경우 스크린샷 첨부 -->

# 🔧 Reminder

<!-- 남은 하위 작업을 작성해주세요. -->

# ✳️ Remarks

<!-- 비고란으로 Optional -->

About

노코딩 AI 모델 파이프라인 호스팅 플랫폼

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 46.3%
  • Python 29.1%
  • Java 23.3%
  • CSS 0.7%
  • JavaScript 0.3%
  • Dockerfile 0.2%
  • Jinja 0.1%