https://docs.google.com/presentation/d/1yZgRoott_eZnF6p2f0CFERun2Yl78FbtjVDjerJ6Zms/edit?slide=id.g315af094226_2_75#slide=id.g315af094226_2_75
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. 자체 평가 의견
- 잘한 점:
- 시도했으나 기대만큼 성과가 없었던 점:
- 아쉬웠던 점:
대회 세부 사항
House Price Prediction | 아파트 실거래가 예측
서울시 아파트 실거래가 매매 데이터를 기반으로 아파트 가격을 예측하는 대회**#비공개대회#UpstageAILab5기#MLAdvanced26|2024.11.04 10:00~2024.11.14 19:00•종료대회 종료개요데이터제출리더보드게시판팀관리**
• 소개
• 평가방법
• 세부일정
• **룰소개**
House Price Prediction 경진대회는 주어진 데이터를 활용하여 서울의 아파트 실거래가를 효과적으로 예측하는 모델을 개발하는 대회입니다.
부동산은 의식주에서의 주로 중요한 요소 중 하나입니다. 이러한 부동산은 아파트 자체의 가치도 중요하고, 주변 요소 (강, 공원, 백화점 등)에 의해서도 영향을 받아 시간에 따라 가격이 많이 변동합니다. 개인에 입장에서는 더 싼 가격에 좋은 집을 찾고 싶고, 판매자의 입장에서는 적절한 가격에 집을 판매하기를 원합니다. 부동산 실거래가의 예측은 이러한 시세를 예측하여 적정한 가격에 구매와 판매를 도와주게 합니다. 그리고, 정부의 입장에서는 비정상적으로 시세가 이상한 부분을 체크하여 이상 신호를 파악하거나, 업거래 다운거래 등 부정한 거래를 하는 사람들을 잡아낼 수도 있습니다.
저희는 이러한 목적 하에서 다양한 부동산 관련 의사결정을 돕고자 하는 부동산 실거래가를 예측하는 모델을 개발하는 것입니다. 특히, 가장 중요한 서울시로 한정해서 서울시의 아파트 가격을 예측하려고합니다.
참가자들은 대회에서 제공된 데이터셋을 기반으로 모델을 학습하고, 서울시 각 지역의 아파트 매매 실거래가를 예측하는데 중점을 둡니다. 이를 위해 선형 회귀, 결정 트리, 랜덤 포레스트, 혹은 딥 러닝과 같은 다양한 regression 알고리즘을 사용할 수 있습니다.
제공되는 데이터셋은 총 네가지입니다. 첫번째는 국토교통부에서 제공하는 아파트 실거래가 데이터로 아파트의 위치, 크기, 건축 연도, 주변 시설 및 교통 편의성과 같은 다양한 특징들을 포함하고 있습니다. 두번째와 세번째 데이터는 추가 데이터로, 서울시에서 제공하는 지하철역과 버스정류장에 대한 다양한 정보들을 포함하고 있습니다. 마지막 네번째 데이터는 평가 데이터로, 최종 모델성능에 대한 검증을 위해 사용됩니다.
참가자들은 이러한 다양한 변수와 데이터를 고려하여 모델을 훈련하고, 아파트의 실거래가에 대한 예측 성능을 높이기 위한 최적의 방법을 찾아야 합니다.
경진대회의 목표는 정확하고 일반화된 모델을 개발하여 아파트 시장의 동향을 미리 예측하는 것입니다. 이를 통해 부동산 관련 의사 결정을 돕고, 효율적인 거래를 촉진할 수 있습니다. 또한, 참가자들은 모델의 성능을 평가하고 다양한 특성 간의 상관 관계를 심층적으로 이해함으로써 데이터 과학과 머신 러닝 분야에서의 실전 경험을 쌓을 수 있습니다.
본 대회는 결과물 csv 확장자 파일을 제출하게 됩니다.
• input : 9,272개의 아파트 특징 및 거래정보
• output : 9,272개의 input에 대한 예상 아파트 거래금액
LinkedIn
평가방법
해당 시점의 매매 실거래가를 예측하는 Regression 대회이며, 평가지표는 RMSE(Root Mean Squared Error)를 사용합니다.