AI ๊ฐ์ ๋ถ์ ๋์ฐ๋ฏธ ์๋น์ค, DOU์ ๊ฐ์ ๋ถ์ ML ์๋ฒ ๋ ํฌ์งํ ๋ฆฌ
PyTorch๋ก ์์ฑ๋ ๋ชจ๋ธ์ด๋ฉฐ, ์ฌ์ฉํ๊ธฐ์ Python ๊ธฐ๋ฐ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌํ ๊ฑฐ๋ผ ์๊ฐํ์ฌ, (GCP ํ๋ฆฌ ํฐ์ด ์ฌ์ฉ์ ํตํ ๊ธ์ก ์ ๊ฐ๋ ์ด์ ์ ์กด์ฌ)
์ด์ ๊ฐ์ด Flask๋ก ML Serving ์๋ฒ๋ฅผ ๋ฐ๋ก ๋ง๋ค๊ฒ ๋์๋ค.
ํ๊ตญ์ด ์์ฑ ๊ธฐ๋ฐ ๊ฐ์ ๋ถ์์ ์ํ KoBERT ๊ธฐ๋ฐ ๊ฐ์ ๋ถ๋ฅ ๋ชจ๋ธ์ ์๋นํ๋ Flask API ์๋ฒ์ ๋๋ค.
7๊ฐ์ง ๊ฐ์ (๊ธฐ์จ, ์ฌํ, ๋ถ๋ ธ, ๋ถ์, ๋๋, ๊บผ๋ฆผ, ์ค๋ฆฝ)์ ๋ถ๋ฅํ๊ณ , DOU Backend ์๋ฒ์ REST API๋ฅผ ํตํด ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค.
| ์ด๋ฆ | ๊นํ๋ธ | ์ญํ |
|---|---|---|
| ํ์์ | @silvarge | ํ์ฅ / ๊ธฐํ, ๋ฐฑ์๋ ๋ฐ ML ์ ์ฒด ๋ด๋น |
| ๊น๊ฐํ | @gahyunkim | ๊ธฐํ, ํ๋ก ํธ์๋(์๋๋ก์ด๋) ๋ฐ ๋์์ธ ๋ด๋น |
| ๋ถ๋ฅ | ๋ด์ฉ |
|---|---|
| Framework | Flask (Python) |
| ML Framework | PyTorch |
| Pre-trained Model | KoBERT |
| Deploy & Infra | GitHub Actions, Docker, Google Cloud Platform (GCP VM) |
| Others | Transformers, NumPy, Pandas, scikit-learn |
- KoBERT ๊ธฐ๋ฐ ํ๊ตญ์ด ๊ฐ์ ๋ถ๋ฅ: 7๊ฐ์ง ๊ฐ์ ์นดํ ๊ณ ๋ฆฌ ๋ถ๋ฅ (๊ธฐ์จ, ์ฌํ, ๋ถ๋ ธ, ๋ถ์, ๋๋, ๊บผ๋ฆผ, ์ค๋ฆฝ)
- ์ปค์คํ ํ์ต: ํ๊ตญ์ด ๊ฐ์ ๋ฐ์ดํฐ์ ์ผ๋ก ํ์ธํ๋
- ๊ณ ์ฑ๋ฅ ์ถ๋ก : ํ๊ท F1-score 92% ๋ฌ์ฑ
- ์ค์๊ฐ ๋ถ์: REST API๋ฅผ ํตํ ์ค์๊ฐ ๊ฐ์ ๋ถ์
- ๊ฐ์ ๋ถ์ API ์ ๊ณต: ํ ์คํธ ์ ๋ ฅ ์ ๊ฐ์ ๋ถ๋ฅ ๋ฐ ์ ๋ขฐ๋ ๋ฐํ
- ๋ชจ๋ธ ์ํ ํ์ธ: ๋ชจ๋ธ ๋ก๋ฉ ์ํ ๋ฐ ์๋ฒ ํฌ์ค์ฒดํฌ
- ๋ฐฐ์น ์ฒ๋ฆฌ: ๋ค์ค ํ ์คํธ ์ผ๊ด ๋ถ์ ์ง์
- Keras ๊ธฐ๋ฐ ๋ชจ๋ธ ๊ฐ์ ์์
์ค Keras ๋ฒ์ ์
๋ฐ์ดํธ ๋ฐ monologg/kobert ์
๋ฐ์ดํธ๋ก ์ธํ ํธํ์ฑ ์ค๋ฅ ๋ฐ์
- KerasTensor โ Tensor ๋ณํ ์ฝ๋๋ฅผ ์์ฑํด๋ ์ง์์ ์ผ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ, ์ ํ๋ ์๊ฐ ๋ด ์์ ์ ๊ฐ์ ์ ์ํด PyTorch ๊ธฐ๋ฐ KoBERT๋ก ๋ชจ๋ธ ์ฌ์ค๊ณ
- ์ฌ์ค๊ณ ํ, ๊ธฐ์กด์ ์ ํ๋๊ฐ ๋ฎ์๋ ํน์ ๊ฐ์ (์ค๋ฆฝ, ๊บผ๋ฆผ, ๋ถ๋ ธ) ๋ถ๋ฅ ์ฑ๋ฅ์ด ํฌ๊ฒ ๊ฐ์ ๋จ (f1-score ๊ธฐ์ค 60% ๋ -> 80% ๋)
- ํ์ดํผํ๋ผ๋ฏธํฐ ์ต์ ํ ๋ถ์กฑ
- ๊ธฐ์กด์๋ ํ๋์ด ๋ฏธํกํ์ฌ ์ฑ๋ฅ ํธ์ฐจ ๋ฐ์
- Grid Search๋ฅผ ํ์ฉํด Learning Rate, Batch Size, Dropout ๋น์จ์ ์ฒด๊ณ์ ์ผ๋ก ํ์
- ๋ชจ๋ ๊ฐ์ ์นดํ ๊ณ ๋ฆฌ์์ f1-score 90% ์ด์ ๋ฌ์ฑ
- Learning Rate: 5e-5
- Batch Size: 32
- Max Length: 128
- Dropout Rate: 0.55
- Epochs: 4
- Optimizer: AdamW
DOU_Backend/
โโโ .github/workflows/ # GitHub Actions CI/CD
โโโ .platform/nginx/ # Elastic Beanstalk ์ค์
โโโ src/
โ โโโ apis/
โ โ โโโ auths/ # ์ธ์ฆ/์ธ๊ฐ (์นด์นด์ค OAuth, JWT)
โ โ โโโ sentiments/ # ๊ฐ์ ๋ถ์ API ์ฐ๋
โ โ โโโ records/ # ๋ํ ๊ธฐ๋ก ๋ฐ ๊ฐ์ ํ์คํ ๋ฆฌ
โ โ โโโ gpt/ # GPT ์๋ต ์ฒ๋ฆฌ
โ โ โโโ users/ # ์ฌ์ฉ์ ๊ด๋ฆฌ
โ โโโ commons/ # ๊ณตํต ๋ชจ๋ (์์ธ์ฒ๋ฆฌ, ๋ก๊ฑฐ, Swagger)
โ โโโ main.ts
โโโ test/ # E2E ํ
์คํธ
โโโ package.json