Skip to content
This repository was archived by the owner on Mar 8, 2025. It is now read-only.

upstage-ai-lab-5-upstageailab-ml-pjt-upstageailab5-classroom-upstageailab5-ml-regression-Upstage-AI- created by GitHub Classroom

Notifications You must be signed in to change notification settings

upstage-AI-team-4/upstageailab-ml-pjt-ml_p4_fork

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

MLOps:

I. Model Management

1. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๋ฐ ์„ค์ •

project_root/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ config/
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ””โ”€โ”€ config.py             # Configuration management
โ”‚   โ”œโ”€โ”€ models/
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ””โ”€โ”€ base_model.py         # Model architecture definitions
โ”‚   โ”‚   โ””โ”€โ”€ kcbert_model.py       # KcBERT Model architecture definitions
โ”‚   โ”œโ”€โ”€ utils/
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ”œโ”€โ”€ visualization.py
โ”‚   โ”‚   โ””โ”€โ”€ mlflow_utils.py      # MLflow integration utilities
โ”‚   โ””โ”€โ”€ data/
โ”‚       โ”œโ”€โ”€ __init__.py
โ”‚       โ””โ”€โ”€ base_dataset.py
โ”‚       โ””โ”€โ”€ nsmc_dataset.py     # nsmc dataset script
โ”œโ”€โ”€ โ”€โ”€  train.py              # train module script
โ”‚   โ””โ”€โ”€ inference.py          # inference module script
โ”œโ”€โ”€ configs/
โ”‚   โ”œโ”€โ”€ config.yaml          # Configuration files
โ”‚   โ””โ”€โ”€ model_registry.json  # Model registry files
โ”œโ”€โ”€ mlruns/                  # mlflow artifacts files folder
โ”œโ”€โ”€ init-scripts/
โ”‚   โ”œโ”€โ”€ init.sh              # Docker init file
โ”œโ”€โ”€ dags/
โ”‚   โ””โ”€โ”€ dags.py             # dags script for airflow
โ”œโ”€โ”€ app.py                   # streamlit web gui for model test & management
โ”œโ”€โ”€ requirements.txt 
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ docker-compose.yml 
โ”œโ”€โ”€ Dockerfile
โ””โ”€โ”€ .env                     # Environment variables for slack webhook - docker

1.1 ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ ์„ค๋ช…

๐Ÿ“ src

  • config.py: ํ”„๋กœ์ ํŠธ ์„ค์ • ๊ด€๋ฆฌ
  • data/: ๋ฐ์ดํ„ฐ ๊ด€๋ จ ์ฝ”๋“œ
  • models/: ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜ ์ •์˜
  • utils/: ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜ ๋ชจ์Œ

๐Ÿ“ data

  • raw/: raw data
    • data, models ํด๋” ๋ฐ ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋„ [train.py](http://train.py) ์‹คํ–‰์‹œ ์ €์ ˆ๋กœ ๋ฐ์ดํ„ฐ,๋ชจ๋ธ ๋‹ค์šด๋ฐ›์•„ ์‹คํ–‰
  • processed/: processed data

๐Ÿ“ models

  • Pretrained models

๐Ÿ“ examples

  • ๋ชจ๋ธ ์ถ”๋ก  ์˜ˆ์ œ ์Šคํฌ๋ฆฝํŠธ

๐Ÿ“ configs

  • YAML ๊ธฐ๋ฐ˜ ์„ค์ • ํŒŒ์ผ
    • ๋ฐ์ดํ„ฐ์…‹ ์ข…๋ฅ˜: ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ์…‹ ์ข…๋ฅ˜ ์„ค์ • (๊ธฐ๋ณธ๊ฐ’: NSMC - ๋„ค์ด๋ฒ„ ์˜ํ™” ๋ฆฌ๋ทฐ)

    • ๋ชจ๋ธ ์„ค์ •: ์‚ฌ์šฉํ•  ๋ชจ๋ธ ๋ฐ ํ•™์Šต ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ • (๊ธฐ๋ณธ๊ฐ’: KcBERT)

    • ๊ธฐํƒ€ ํŒŒ๋ผ๋ฏธํ„ฐ:

      • dataset_sampling_rate: ๋น ๋ฅธ ์‹คํ—˜์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ์…‹ ์ƒ˜ํ”Œ๋ง ๋น„์œจ
      • max_length: ๋ชจ๋ธ ์ž…๋ ฅ์˜ ์ตœ๋Œ€ ๊ธธ์ด
      • register_threshold: ๋ชจ๋ธ ๋“ฑ๋ก์„ ์œ„ํ•œ ์ตœ์†Œ ๊ธฐ์ค€
      • unfrozen_layers: ํ•™์Šต ์‹œ ์–ธํ”„๋ฆฌ์ฆˆํ•  ๋ ˆ์ด์–ด ์ˆ˜
    • requirements.txt: ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ

    • .env: ํ™˜๊ฒฝ ๋ณ€์ˆ˜

    • README.md: ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ

  • JSON ๊ธฐ๋ฐ˜ Model ๊ด€๋ฆฌ ํŒŒ์ผ

1.2 ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •

  • Python 3.10
  • MLflow๋ฅผ ํ†ตํ•œ ์‹คํ—˜ ๊ด€๋ฆฌ

Conda ํ™˜๊ฒฝ ์ƒ์„ฑ

Python 3.10 ๋ฒ„์ „์˜ Conda ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๊ณ  ํ™œ์„ฑํ™”.

conda create -n ml4 python=3.10
conda activate ml4

ํ•„์š” ๋ชจ๋“ˆ ์„ค์น˜

ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ์˜์กด์„ฑ ๋ชจ๋“ˆ์„ ์„ค์น˜

pip install -r requirements.txt

2. ์‹คํ–‰ ์ˆœ์„œ

2.1 ์„ค์ • ํŒŒ์ผ ํ™•์ธ ๋ฐ ์ˆ˜์ •

config/config.yaml ํŒŒ์ผ์„ ์—ด์–ด ํ•„์š”ํ•œ ์„ค์ •์„ ํ™•์ธํ•˜๊ณ  ์‹คํ—˜์— ๋งž๊ฒŒ ์ˆ˜์ •

  • ๋ฐ์ดํ„ฐ์…‹ ์„ค์ •: dataset ์„น์…˜์—์„œ ๋ฐ์ดํ„ฐ์…‹ ์ข…๋ฅ˜์™€ ์ƒ˜ํ”Œ๋ง ๋น„์œจ ๋“ฑ์„ ์„ค์ •
  • ๋ชจ๋ธ ์„ค์ •: model ์„น์…˜์—์„œ ์‚ฌ์šฉํ•  ๋ชจ๋ธ ์ด๋ฆ„๊ณผ ํ•™์Šต ํŒŒ๋ผ๋ฏธํ„ฐ ๋“ฑ์„ ์„ค์ •
  • ํ•™์Šต ์„ค์ •: train ์„น์…˜์—์„œ ์—ํฌํฌ ์ˆ˜, ๋ฐฐ์น˜ ํฌ๊ธฐ ๋“ฑ์„ ์„ค์ •

2.2 MLflow ์„œ๋ฒ„ ์‹คํ–‰

ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ MLflow UI๋ฅผ ์‹œ์ž‘

mlflow ui --host 127.0.0.1 --port 5050

๋ธŒ๋ผ์šฐ์ €์—์„œ http://127.0.0.1:5050 ์— ์ ‘์†ํ•˜์—ฌ MLflow UI์— ์ ‘๊ทผ

2.3. Train ๋ชจ๋“ˆ

  • ๊ตฌ์กฐ
        Args:
            interactive: ๋Œ€ํ™”ํ˜• ์ถ”๋ก  ๋ฐ ๋ชจ๋ธ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™” ์—ฌ๋ถ€ (์˜ต์…˜: default = False)
        Returns:
            dict: ํ•™์Šต ๊ฒฐ๊ณผ ์ •๋ณด
            {
                'run_id': str,
                'metrics': dict,
                'run_name': str,
                'model': PreTrainedModel,
                'tokenizer': PreTrainedTokenizer,
                'data_module': NSMCDataModule
            }
  • ์‚ฌ์šฉ ์˜ˆ์‹œ
from src.train import SentimentTrainer
# ๊ธฐ๋ณธ ํ•™์Šต. ์„ค์ •์€ config.yaml ์—์„œ project ํ•ญ๋ชฉ
trainer = SentimentTrainer()
result = trainer.train()

2.4. Inference ๋ชจ๋“ˆ

  • ๊ตฌ์กฐ
        Args:
            text: ์ž…๋ ฅ ํ…์ŠคํŠธ ๋˜๋Š” ํ…์ŠคํŠธ ๋ฆฌ์ŠคํŠธ
            return_probs: ํ™•๋ฅ ๊ฐ’ ๋ฐ˜ํ™˜ ์—ฌ๋ถ€
            
        Returns:
            Dict ๋˜๋Š” Dict ๋ฆฌ์ŠคํŠธ: ์˜ˆ์ธก ๊ฒฐ๊ณผ
            {
                'text': str,  # ์›๋ณธ ํ…์ŠคํŠธ
                'label': str,  # '๊ธ์ •' ๋˜๋Š” '๋ถ€์ •'
                'confidence': float,  # ์˜ˆ์ธก ํ™•์‹ ๋„
                'probs': {  # ๊ฐ ๋ ˆ์ด๋ธ”๋ณ„ ํ™•๋ฅ  (return_probs=True์ธ ๊ฒฝ์šฐ)
                    '๊ธ์ •': float,
                    '๋ถ€์ •': float
                }
            }
  • ์‚ฌ์šฉ ์˜ˆ์‹œ
from src.inference import SentimentPredictor
predictor = SentimentPredictor() # default: Production (์ตœ์‹  ๋ชจ๋ธ)
texts = ["๋‹ค์‹œ ๋ณด๊ณ  ์‹ถ์€ ์˜ํ™”", "๋ณ„๋กœ์—์š”"]
results = predictor.predict(texts)

2.5 ๋ชจ๋ธ ํ•™์Šต ์‹œ์ž‘

ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ชจ๋ธ ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜, IDE์—์„œ train.py๋ฅผ ์‹คํ–‰:

python train.py

2.6 ๋ชจ๋ธ ๊ด€๋ฆฌ

ํ•™์Šต ์™„๋ฃŒ ํ›„ ํ„ฐ๋ฏธ๋„์— ๋‚˜ํƒ€๋‚˜๋Š” ๋ชจ๋ธ ๊ด€๋ฆฌ ๊ด€๋ จ ๋ฉ”์‹œ์ง€์— ๋”ฐ๋ผ CLI์—์„œ ์ˆซ์ž ๋˜๋Š” y/n์„ ์ž…๋ ฅํ•˜์—ฌ ๋ชจ๋ธ์„ ๊ด€๋ฆฌ.

  • ๋ชจ๋ธ ๋“ฑ๋ก: ๋ชจ๋ธ์„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋“ฑ๋กํ• ์ง€ ์—ฌ๋ถ€ ์„ ํƒ
  • ๋ชจ๋ธ ๋‹จ๊ณ„ ์„ค์ •: ๋ชจ๋ธ์˜ ๋‹จ๊ณ„(stage)๋ฅผ ์„ค์ • (์˜ˆ: None, Staging, Production)

2.7 ๊ฒฐ๊ณผ ํ™•์ธ

  • MLflow UI: ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ—˜ ๊ฒฐ๊ณผ, ๋ฉ”ํŠธ๋ฆญ, ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ํ™•์ธ.
  • ํด๋” ๊ตฌ์กฐ:
    • mlruns/ ํด๋”์— ์‹คํ–‰(run) ๊ด€๋ จ ๋กœ๊ทธ์™€ ๋ฉ”ํŠธ๋ฆญ์ด ์ €์žฅ.
    • exp id / exp id / artifacts / ํด๋”์— ๋ชจ๋ธ ํŒŒ์ผ ๋“ฑ ์•„ํ‹ฐํŒฉํŠธ๊ฐ€ ์ €์žฅ.
    • config/model_info.json ํŒŒ์ผ์—์„œ ๋“ฑ๋ก๋œ ๋ชจ๋ธ์˜ ๋‹จ๊ณ„(stage)๋ฅผ ํ™•์ธ.

2.8 Streamlit App ์‹คํ–‰

streamlit run app.py

์ด ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ชจ๋ธ์„ ํ•™์Šต ๋ฐ ๊ด€๋ฆฌ. ํ•„์š”์— ๋”ฐ๋ผ config.yaml ํŒŒ์ผ์˜ ์„ค์ •์„ ์กฐ์ •ํ•˜์—ฌ ์‹คํ—˜์„ ์ง„ํ–‰

3. ํ”„๋กœ์ ํŠธ ์„ธ๋ถ€ ์‚ฌํ•ญ

์ฃผ์š” ์„ค์ • ํ•ญ๋ชฉ ์„ค๋ช…

  • ๋ฐ์ดํ„ฐ์…‹ ์ข…๋ฅ˜ (dataset.name): ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ์…‹์˜ ์ด๋ฆ„์„ ์ง€์ •. ๊ธฐ๋ณธ๊ฐ’์€ nsmc
  • ๋ชจ๋ธ ์ด๋ฆ„ (model.name): ์‚ฌ์šฉํ•  ์‚ฌ์ „ ํ•™์Šต๋œ ๋ชจ๋ธ์˜ ์ด๋ฆ„์„ ์ง€์ •. ๊ธฐ๋ณธ๊ฐ’์€ KcBER
  • ๋ฐ์ดํ„ฐ์…‹ ์ƒ˜ํ”Œ๋ง ๋น„์œจ (dataset.sampling_rate): ๋ฐ์ดํ„ฐ์…‹์˜ ์ผ๋ถ€๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅธ ์‹คํ—˜์„ ์ง„ํ–‰
  • ์ตœ๋Œ€ ์ž…๋ ฅ ๊ธธ์ด (dataset.max_length): ๋ชจ๋ธ ์ž…๋ ฅ ์‹œํ€€์Šค์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ง€์ •
  • ๋ชจ๋ธ ๋“ฑ๋ก ์ตœ์†Œ ๊ธฐ์ค€ (model.register_threshold): ๋ชจ๋ธ์„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œ ์„ฑ๋Šฅ ๊ธฐ์ค€์„ ์„ค์ •
  • ์–ธํ”„๋ฆฌ์ฆˆํ•  ๋ ˆ์ด์–ด ์ˆ˜ (model.unfrozen_layers): ๋ชจ๋ธ ํ•™์Šต ์‹œ ์—…๋ฐ์ดํŠธํ•  ๋ ˆ์ด์–ด์˜ ์ˆ˜๋ฅผ ์ง€์ •

์ถ”๊ฐ€ ์ฐธ๊ณ  ์‚ฌํ•ญ

  • ํ™˜๊ฒฝ ์„ค์ •: ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜์กด์„ฑ ์ถฉ๋Œ์„ ๋ฐฉ์ง€
  • ์„ค์ • ์กฐ์ •: config.yaml ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์‹คํ—˜์„ ์ง„ํ–‰
  • ๋ชจ๋ธ ๊ด€๋ฆฌ ์ž๋™ํ™”: ํ•™์Šต ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํ›„ ์ž๋™์œผ๋กœ ๋ชจ๋ธ ๋“ฑ๋ก ๋ฐ ๊ด€๋ฆฌ ๋ฉ”์‹œ์ง€
  • MLflow ์‚ฌ์šฉ: ์‹คํ—˜ ์ถ”์ , ๋ชจ๋ธ ๊ด€๋ฆฌ ๋ฐ ๋ฐฐํฌ

II. Docker for Airflow Setup

์‚ฌ์šฉ๋ฒ• ๋ฐ ๋ช…๋ น์–ด

Airflow๋ฅผ Docker๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰:

docker-compose up --build -d

Slack Webhook ์„ค์ •

Airflow์—์„œ Slack Webhook์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ •๋ณด๋ฅผ .env ํŒŒ์ผ์— ์ €์žฅ:

.env ํŒŒ์ผ ์˜ˆ์‹œ

env
์ฝ”๋“œ ๋ณต์‚ฌ
# Slack Webhook Token ์„ค์ •
SLACK_WEBHOOK_TOKEN=PUT YOUR SLACK TOKEN

# Airflow ์„ค์ •
AIRFLOW__CORE__LOAD_EXAMPLES=False
AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=sqlite:////usr/local/ml4/airflow.db
AIRFLOW__PROVIDERS__SLACK__WEBHOOK_CONN_ID=slack_webhook

๋งŒ์•ฝ ์ž๋™ ์„ค์ •์ด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ, Slack Webhook ์—ฐ๊ฒฐ์„ ์œ„ํ•ด Airflow์˜ Connection ID๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •

  • Connection ID: slack_webhook
  • Token: .env ํŒŒ์ผ์— ์„ค์ •๋œ SLACK_WEBHOOK_TOKEN ๊ฐ’ ์‚ฌ์šฉ

Airflow ๊ณ„์ • ์ž๋™ ์ƒ์„ฑ

Airflow ์ดˆ๊ธฐ ์„ค์ • ์‹œ ๋‹ค์Œ ๊ธฐ๋ณธ ๊ณ„์ •์ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ:

  • ID: admin
  • Password: admin

์ถ”๊ฐ€ ์ฐธ๊ณ  ์‚ฌํ•ญ

  • docker-compose.yml ํŒŒ์ผ์ด ์ œ๋Œ€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ.
  • Airflow๋ฅผ ์‹คํ–‰ํ•œ ํ›„ ์›น UI์—์„œ Slack Webhook Connection ์„ค์ •์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋“ฑ๋ก๋˜์—ˆ๋Š”์ง€ ํ™•์ธ.

III. Dataset & Model

NSMC (Naver Sentiment Movie Corpus) ๋ฐ์ดํ„ฐ์…‹

  • ๋ฐ์ดํ„ฐ ์ถœ์ฒ˜: ๋„ค์ด๋ฒ„ ์˜ํ™” ๋ฆฌ๋ทฐ ๋ฐ์ดํ„ฐ
  • ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ:
    • ์ด ๋ฐ์ดํ„ฐ ์ˆ˜: 200,000๊ฐœ
      • ํ›ˆ๋ จ์šฉ ๋ฐ์ดํ„ฐ: 150,000๊ฐœ
      • ํ…Œ์ŠคํŠธ์šฉ ๋ฐ์ดํ„ฐ: 50,000๊ฐœ
    • ๋ ˆ์ด๋ธ”: ๊ธ์ • (1), ๋ถ€์ • (0) ์ด์ง„ ๋ถ„๋ฅ˜
    • ๋‚ด์šฉ: ์‚ฌ์šฉ์ž ์ž‘์„ฑ ์˜ํ™” ๋ฆฌ๋ทฐ์™€ ํ•ด๋‹น ๊ฐ์„ฑ ๋ ˆ์ด๋ธ”
  • ํŠน์ง•:
    • ํ•œ๊ตญ์–ด ๊ฐ์„ฑ ๋ถ„์„์„ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ์…‹
    • ๋ฆฌ๋ทฐ๋Š” ํ•œ๊ธ€๊ณผ ๊ณต๋ฐฑ์œผ๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์ „์ฒ˜๋ฆฌ ํ•„์š”์„ฑ์ด ์ ์Œ
  • ๋ผ์ด์„ ์Šค: ๊ณต๊ฐœ ๋ผ์ด์„ ์Šค (์ถœ์ฒ˜ ํ‘œ๊ธฐ ํ•„์š”)

KC-BERT ๋ชจ๋ธ

  • ๋ชจ๋ธ๋ช…: KC-BERT (Korean Comments BERT)
  • ์•„ํ‚คํ…์ฒ˜: BERT-base
  • ์–ธ์–ด: ํ•œ๊ตญ์–ด
  • ๋ชจ๋ธ ํฌ๊ธฐ:
    • ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜: ์•ฝ 110M (1์–ต 1์ฒœ๋งŒ ๊ฐœ)
  • ํ•™์Šต ๋ฐ์ดํ„ฐ:
    • ํ•œ๊ตญ์–ด ์œ„ํ‚ค๋ฐฑ๊ณผ
    • ๋‰ด์Šค ๊ธฐ์‚ฌ
    • ์˜จ๋ผ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋Œ“๊ธ€ ๋ฐ SNS ๋ฐ์ดํ„ฐ
  • ํŠน์ง•:
    • ๊ตฌ์–ด์ฒด, ๋น„์†์–ด ๋“ฑ ์ผ์ƒ ์–ธ์–ด์— ๋Œ€ํ•œ ์ดํ•ด๋„ ํ–ฅ์ƒ
    • ํ•œ๊ตญ์–ด ํ…์ŠคํŠธ์˜ ๋ฌธ๋งฅ์  ์˜๋ฏธ ํŒŒ์•…์—์„œ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ ๋ฐœํœ˜
  • ๋ผ์ด์„ ์Šค: MIT ๋ผ์ด์„ ์Šค

About

upstage-ai-lab-5-upstageailab-ml-pjt-upstageailab5-classroom-upstageailab5-ml-regression-Upstage-AI- created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.6%
  • Dockerfile 3.0%
  • Shell 1.4%