AI κΈ°λ° μ°μΈκ° μμΈ‘ λ° μ±λ΄ μμ€ν
νλ μ¬νμμ μ μ κ±΄κ° κ΄λ¦¬λ κ°μΈμ μΆμ μ§μ μ€μν μν₯μ λ―ΈμΉ©λλ€. μ°μΈμ¦ λ± λ€μν μ μ κ±΄κ° λ¬Έμ λ μΌμμνμ ν° μν₯μ μ€ μ μμ§λ§, μ΄λ₯Ό μ μμ μΈμ§νκ³ κ΄λ¦¬νκΈ°λ μ½μ§ μμ΅λλ€. μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ κΈ°μ λ°μ μ λμ§νΈ μ루μ μ μ 곡νμ¬ λͺ¨λ°μΌ κΈ°κΈ° λ±μ ν΅ν΄ μ μ κ±΄κ° μνλ₯Ό λͺ¨λν°λ§νκ³ νκ°νλ λ° λμμ μ£Όκ³ μμ΅λλ€.
λ³Έ νλ‘μ νΈμμλ μ¬μ©μμ μΌμ λ°μ΄ν°λ₯Ό λͺ¨λν°λ§νκ³ , μ°μΈκ°μ μννκΈ° μν μΌμ΄λ΄ μμ€ν μ κ°λ°νλ κ²μ λͺ©νλ‘ μ€μ νμμ΅λλ€. μ μ μμ€ν μ μ€λ§νΈν° μΌμ λ°μ΄ν°μ μ±ν λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ μ μ κ±΄κ° μνλ₯Ό μΈ‘μ νκ³ κ°μ μ λμμ΄ λλ νΌλλ°±μ μ¬μ©μμκ² μ 곡ν©λλ€.
FINAL-AI/
βββ score_prediction/ # μ°μΈκ° μμΈ‘ μμ€ν
β βββ model_train/ # λͺ¨λΈ νλ ¨ κ΄λ ¨
β β βββ ensemble.py # μμλΈ λͺ¨λΈ νλ ¨
β β βββ get_data.py # λ°μ΄ν° μμ§
β βββ data_preprocess/ # λ°μ΄ν° μ μ²λ¦¬
β β βββ data_generative.ipynb
β βββ util/ # μ νΈλ¦¬ν° ν¨μ
β βββ predict_score.py # μ μ μμΈ‘
β βββ preprocess_data.py
βββ chatbot/ # μ±λ΄ μμ€ν
β βββ app.py # Flask μΉ μλ²
β βββ chat_module/ # μ±λ΄ ν΅μ¬ λͺ¨λ
β β βββ qa_chatbot.py # λ©μΈ μ±λ΄ λ‘μ§
β β βββ term_explain.py # μ©μ΄ μ€λͺ
β β βββ sql_prompt.py # SQL 쿼리 μμ±
β β βββ text_generation.py
β β βββ translator.py
β βββ models/ # AI λͺ¨λΈ
β β βββ intent/ # μλ λΆλ₯ λͺ¨λΈ
β βββ utils/ # μ νΈλ¦¬ν°
β βββ train_tools/ # λͺ¨λΈ νλ ¨ λꡬ
β βββ config/ # μ€μ νμΌ
β βββ data/ # νλ ¨ λ°μ΄ν°
βββ images/ # μμ€ν
μν€ν
μ² μ΄λ―Έμ§
βββ README.md
- λ€μ€ λͺ¨λΈ μ‘°ν©: GradientBoosting, XGBoost, LightGBM, RandomForestλ₯Ό λμμ νμ©
- κ°μ€ νκ· μμΈ‘: κ° λͺ¨λΈμ RMSE μ μλ₯Ό κΈ°λ°μΌλ‘ ν κ°μ€ νκ· μΌλ‘ μ΅μ’ μμΈ‘κ° λμΆ
- κ΅μ°¨ κ²μ¦: 5-fold cross validationμ ν΅ν λͺ¨λΈ μ±λ₯ κ²μ¦
- μ¬μ©μλ³ λ§μΆ€ λͺ¨λΈ: κ°μΈ λ°μ΄ν°κ° 5κ° μ΄μμΈ κ²½μ° μλμΌλ‘ Fine-tuning μν
- λ² μ΄μ§μ μ΅μ ν: Bayesian optimizationμ ν΅ν νμ΄νΌνλΌλ―Έν° μλ νλ
- λͺ¨λΈ μ μ₯ λ° κ΄λ¦¬: μ¬μ©μλ³λ‘ κ°λ³ λͺ¨λΈ νμΌ κ΄λ¦¬ (
{user_id}_fine_tuned.joblib)
- μΌμ μν ν¨ν΄ λ°μ΄ν°: μκ°λ³ νλ, μλ©΄, μ΄λ, μ€λ§νΈν° μ¬μ©λ λ±
- μλ μ κ·ν: StandardScalerλ₯Ό ν΅ν νΉμ±λ³ μ κ·ν
- μ€μκ° μ²λ¦¬: μΌμΌ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ μ€μκ° μ°μΈκ° μ μ μμΈ‘
ensemble.py: μμλΈ λͺ¨λΈ νλ ¨ λ° Fine-tuning λ‘μ§predict_score.py: μ€μκ° μ°μΈκ° μ μ μμΈ‘ λ° λ°μ΄ν°λ² μ΄μ€ μ μ₯data_generative.ipynb: λ°μ΄ν° μμ± λ° μ μ²λ¦¬ νμ΄νλΌμΈ
- 4κ°μ§ μλ λΆλ₯: μ©μ΄μ€λͺ , μ΄μ μ€λͺ , μ§μμλ΅, κΈ°ν
- CNN κΈ°λ° λΆλ₯: Convolutional Neural Networkλ₯Ό νμ©ν ν μ€νΈ λΆλ₯
- νκ΅μ΄ νΉν μ²λ¦¬: KoNLPy Komoranμ ν΅ν νκ΅μ΄ ννμ λΆμ
- λ¬Έμ₯ ν ν°ν: μ λ ₯ λ¬Έμ₯μ κ°λ³ λ¨μ΄ λ¨μλ‘ λΆλ¦¬
- λΆμ©μ΄ μ κ±°: μ‘°μ¬, μ΄λ―Έ λ± μλ―Έ μλ μμ μ κ±°
- λ¨μ΄ 벑ν°ν: Word2Vec κΈ°λ° λ¨μ΄ μλ² λ©
- μ¬μ©μ μ μ μ¬μ : λλ©μΈ νΉν μ©μ΄ μ¬μ νμ©
- μ©μ΄/μ΄μ μ€λͺ : λ²‘ν° λ°μ΄ν°λ² μ΄μ€(Pinecone) κΈ°λ° μ μ¬λ κ²μ
- μ§μμλ΅: LangChainκ³Ό SQL λ°μ΄ν°λ² μ΄μ€ μ°λμ ν΅ν ꡬ쑰νλ λ°μ΄ν° μ‘°ν
- μΌμ λν: Phi-2-KO λͺ¨λΈμ LoRA νμΈνλνμ¬ κ³΅κ°μ μλ΅ μμ±
- Firebase: μ¬μ©μμμ λν κΈ°λ‘ μ μ₯ λ° κ΄λ¦¬
- MySQL: μΌμ λ°μ΄ν° λ° μΌμ μν ν¨ν΄ λ°μ΄ν° μ μ₯
- SQL DatabaseChain: LangChainμ ν΅ν μμ°μ΄ β SQL 쿼리 λ³ν
- μ€μκ° λ°μ΄ν° μ‘°ν: νΈλν° μ¬μ©λ, νλ ν¨ν΄ λ± μ€μκ° λ°μ΄ν° λΆμ
app.py: Flask μΉ μλ² λ° RESTful API μλν¬μΈνΈqa_chatbot.py: λ©μΈ μ±λ΄ λ‘μ§ λ° μλ λΆλ₯ μ²λ¦¬term_explain.py: μ©μ΄ μ€λͺ λͺ¨λ (λ²‘ν° DB κ²μ)sql_prompt.py: SQL 쿼리 μμ± λ° λ°μ΄ν°λ² μ΄μ€ μ°λtext_generation.py: ν μ€νΈ μμ± λͺ¨λΈ μ°λtranslator.py: λ€κ΅μ΄ μ§μ κΈ°λ₯
- Machine Learning: scikit-learn, XGBoost, LightGBM
- Data Processing: pandas, numpy
- Model Optimization: Bayesian optimization
- Model Persistence: joblib, pickle
- Web Framework: Flask
- NLP: Custom intent classification, NER
- Database: SQL (μΆμΈ λ°μ΄ν° μ‘°ν)
- Text Processing: KoNLPy Komoran, μ¬μ©μ μ μ μ¬μ
- Vector Database: Pinecone
- Language Model: PaLM 2, Phi-2-KO
# Python κ°μνκ²½ μμ± (κΆμ₯)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# νμν ν¨ν€μ§ μ€μΉ
pip install -r requirements.txtcd score_prediction
python model_train/ensemble.py # λͺ¨λΈ νλ ¨
python util/predict_score.py # μ μ μμΈ‘cd chatbot
python app.pyμλ²κ° μ€νλλ©΄ http://localhost:5000μμ μ±λ΄ APIμ μ κ·Ό κ°λ₯
curl -X POST http://localhost:5000/chat \
-H "Content-Type: application/json" \
-d '{"request": "μ°μΈκ°μ΄ 무μμΈκ°μ?"}'- μ°μΈκ° μμΈ‘μ μν μΌμ μν ν¨ν΄ λ°μ΄ν°λ² μ΄μ€ μ°κ²° νμ
- μ±λ΄μ μΆμΈ μ‘°νλ₯Ό μν λ°μ΄ν°λ² μ΄μ€ μ€μ νμ
- μλ λΆλ₯ λͺ¨λΈ:
chatbot/models/intent/intent_model_v2.h5 - μ¬μ νμΌ:
chatbot/train_tools/dict/chatbot_dict.bin
- μΌμ μν ν¨ν΄ λ°μ΄ν° (μκ°λ³ νλ, μλ©΄, μ΄λ λ±)
- μ¬μ©μλ³ κ°μΈνλ μ°μΈκ° μ μ
- μλ λΆλ₯ νλ ¨ λ°μ΄ν°:
chatbot/data/new_train_data_intent.csv - μ©μ΄ μ€λͺ λ° μΆμΈ λ°μ΄ν°








