패스트캠퍼스/업스테이지 AI 부트캠프에서 벌써 두번째 팀 실습, 지난 번 경진대회에 이어 첫 프로젝트를 진행하였다.
팀장으로서 전체적인 프로젝트 계획, 준비, 진행 및 Github / Readme 매뉴얼 보고서 작업등을 수행한 결과는 아래와 같다.
https://github.com/UpstageAILab5/upstageailab-ml-pjt-ml_p4
1. 프로젝트 개요
- 프로젝트 주제: 비정제 한국어 텍스트 감성 분석 모델 개발 및 MLOps 파이프라인 구현
- 프로젝트 구현 내용 및 컨셉:
- 구현 내용:
- End-to-End MLOps 파이프라인 구현:
- 비정제 한국어 웹 데이터 수집(크롤링) → 데이터 정제/전처리 → Transformer 기반 감성 분석 모델 학습 및 관리 → FastAPI 기반 실시간 추론 API 제공 → Streamlit UI로 테스트 및 모니터링
- 한국어 감성 분석 모델(Kc-BERT, Kc-ELECTRA) Fine-tuning 및 MLflow 기반 모델 버전 관리
- 컨셉:
- 실무 환경에 가까운 데이터 전처리 및 MLOps 전 과정 경험
- 비정제 한국어 텍스트(네이버 영화 리뷰)를 대상으로 긍정/부정 감성 분류
- 교육 내용과의 관련성:
- 머신러닝/딥러닝 기초와 NLP 모델 활용, MLOps(MLflow, Airflow 등) 관련 강의 내용을 실제 프로젝트에 적용
- 활용 장비 및 재료:
- 개발 환경: Linux, Windows, Mac OS 환경, Python 3.10
- 개발 도구: VS Code, Docker, GitHub, MLflow, Airflow
- 환경 관리: Conda, requirements.txt 기반 패키지 관리
- 협업 도구: Git, Slack, Notion
- 프로젝트 구조:
- 데이터셋: NSMC(네이버 영화 리뷰 감성 데이터, 약 20만 문장)
- 데이터 흐름:
- 데이터 수집(Selenium, Scrapy) 및 전처리(HTML 태그 제거, 이모지/특수 문자 제거)
- Transformer 모델(Kc-BERT, Kc-ELECTRA) 기반 감성 분석 Fine-tuning
- MLflow를 통한 실험 관리 및 모델 레지스트리
- FastAPI로 실시간 추론 API 제공, Streamlit UI로 모델 테스트
- Airflow를 통한 정기 배치 파이프라인, Slack 알림 연동
2. 팀 구성 및 역할
- 박정준 (AI Engineer):
- NLP 모델 개발 (Kc-BERT, Kc-ELECTRA Fine-tuning)
- MLflow 통한 모델 관리 파이프라인 구축
- 김동완 (Data Engineer):
- 웹 데이터 크롤링(Selenium, Scrapy)
- 데이터 전처리(정제, 필터링) 및 관리
- 김묘정 (Front-end Engineer, QA):
- Streamlit 기반 UI 구현
- 모델 검증 및 품질 테스트
- 이다언 (Back-end Engineer):
- FastAPI 기반 모델 서빙 API 구축
- Airflow DAG 관리, Slack 웹훅 연동
3. 프로젝트 수행 절차 및 방법
- 기획 및 준비 단계:
- 팀 협업 방식 정립 (초기):
- “따로 또 같이” 방식을 유지: 각자 맡은 분야 독립 진행 후 주기적 싱크
- Notion으로 회고 기록, Slack 알림 및 데일리 미팅으로 일정 체크
- Git, Docker, MLflow, Airflow 등 협업/배포 환경 준비
- 데이터 처리 단계:
- 데이터 수집:
- NSMC 데이터셋 활용 (네이버 영화 리뷰)
- 실시간 웹스크래핑 환경 시도(Scrapy, Selenium) → 향후 배치 재학습용
- 전처리:
- HTML 태그, 이모지, 특수문자 제거
- 연속 공백 처리, 비정형 표현 정규화
- 데이터 샘플링 비율 조정 및 max_length 설정 (config.yaml 참조)
- 모델 개발 및 학습 단계:
- 모델 선택:
- Kc-BERT, Kc-ELECTRA 모델 기반 Fine-tuning
- 구어체, 비속어 등에 강한 한국어 특화 모델
- 학습 및 검증:
- NSMC 데이터셋 훈련, F1 Score ≥ 0.7 목표
- MLflow를 통해 하이퍼파라미터, 메트릭 추적
- 모델 관리:
- MLflow Model Registry 및 model_registry.json으로 모델 버전 관리
- Candidate → Champion → Archived 단계로 모델 운영 관리
- 배포 및 서빙 단계:
- FastAPI로 실시간 감성 예측 API 제공
- Streamlit UI 통해 사용자 입력 문장 감성 테스트
- Airflow DAG로 배치 파이프라인 관리 (주기적 데이터 업데이트, 재훈련 가능)
- Slack 웹훅을 통한 모델 등록/상태 알림
- MLOps 워크플로우:
- Docker로 인프라 컨테이너화
- MLflow로 실험 추적, Airflow로 파이프라인 자동화
- CI/CD 흐름 고려 (모델 업데이트 시 자동 재배포 가능성 검토)
4. 프로젝트 수행 결과
- 데이터 이해 및 처리:
- 모델링 및 성능:
- MLOps 파이프라인 구현 성과:
- 성과 및 아쉬운 점:
5. 자체 평가 의견
- 잘한 점:
- 시도했으나 기대만큼 성과가 없었던 점:
- 아쉬웠던 점:
#패스트캠퍼스 #패스트캠퍼스AI부트캠프 #업스테이지패스트캠퍼스 #UpstageAILab #국비지원 #패스트캠퍼스업스테이지에이아이랩 #패스트캠퍼스업스테이지부트캠프