| # ๐ฎ KoELECTRA Multi-Label Review Classifier (AI ๊ธฐ๋ฐ ๋ฆฌ๋ทฐ ์ธ์ฌ์ดํธ ์์คํ ) | |
| ์ด ๋ชจ๋ธ์ ํ๊ตญ์ด ๊ฒ์ ๋ฆฌ๋ทฐ(์: Steam ๋ฆฌ๋ทฐ)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ต๋ **๋ค์ค ๋ผ๋ฒจ ๋ถ๋ฅ ๋ชจ๋ธ**์ ๋๋ค. | |
| ์ฌ์ฉ์๋ ํ๋์ ๋ฆฌ๋ทฐ ๋ฌธ์ฅ์์ **15๊ฐ ํญ๋ชฉ(์ฑ๋ฅ, ๋ฒ๊ทธ, ์คํ ๋ฆฌ, ๋ฒ์ญ, ๋ฐธ๋ฐ์ค ๋ฑ)** ์ ๋์์ ์์ธกํ ์ ์์ต๋๋ค. | |
| --- | |
| ## ๐ง Model Overview | |
| - **Base Model:** monologg/koelectra-base-v3-discriminator | |
| - **Framework:** Hugging Face Transformers + PyTorch | |
| - **Task:** Multi-label Text Classification | |
| - **Loss:** BCEWithLogitsLoss (pos_weight ๋ณด์ ์ ์ฉ) | |
| - **Epochs:** 8 | |
| - **Optimizer:** AdamW (lr=2e-5) | |
| - **Hardware:** NVIDIA A100 / T4 GPU | |
| - **Metrics:** Micro-F1, Macro-F1, Accuracy | |
| --- | |
| ## ๐ท๏ธ Labels (15 categories) | |
| | Index | Label | ์ค๋ช | | |
| |:--:|:--|:--| | |
| | 0 | y_OPTIMIZATION | ์ต์ ํ / ํ๋ ์ | | |
| | 1 | y_BUG_CRASH | ๋ฒ๊ทธ, ํฌ๋์ | | |
| | 2 | y_GRAPHICS | ๊ทธ๋ํฝ ํ์ง | | |
| | 3 | y_SOUND | ์ฌ์ด๋ ํ์ง | | |
| | 4 | y_CONTROL | ์กฐ์๊ฐ | | |
| | 5 | y_MATCHMAKING_SERVER | ๋งค์นญ, ์๋ฒ ํ์ง | | |
| | 6 | y_BALANCE | ๋ฐธ๋ฐ์ค | | |
| | 7 | y_STORY | ์คํ ๋ฆฌ ์์ฑ๋ | | |
| | 8 | y_TRANSLATION_LOCALIZATION | ๋ฒ์ญ, ํ์งํ | | |
| | 9 | y_PRICE_VALUE | ๊ฐ๊ฒฉ ๋๋น ๊ฐ์น | | |
| | 10 | y_TUTORIAL_GUIDE | ํํ ๋ฆฌ์ผ, ๊ฐ์ด๋ | | |
| | 11 | y_UI_UX | UI/UX ํธ์์ฑ | | |
| | 12 | y_CONTENT_UPDATE | ์ฝํ ์ธ ์ ๋ฐ์ดํธ | | |
| | 13 | y_GAMEPLAY_MECHANICS | ๊ฒ์ ํ๋ ์ด ๋ฉ์ปค๋ | | |
| | 14 | y_ENGAGEMENT | ๋ชฐ์ ๊ฐ | | |
| --- | |
| ## ๐ Example Usage | |
| ```python | |
| from transformers import AutoTokenizer, AutoModelForSequenceClassification | |
| import torch | |
| model_id = "Wing4/results" | |
| tok = AutoTokenizer.from_pretrained(model_id) | |
| model = AutoModelForSequenceClassification.from_pretrained(model_id) | |
| text = "์คํ ๋ฆฌ๊ฐ ํฅ๋ฏธ๋กญ๊ณ ๊ทธ๋ํฝ์ด ๋ฐ์ด๋์. ํ์ง๋ง ์๋ฒ๊ฐ ์์ฃผ ๋๊น๋๋ค." | |
| inputs = tok(text, return_tensors="pt", truncation=True, padding=True) | |
| with torch.no_grad(): | |
| logits = model(**inputs).logits | |
| probs = torch.sigmoid(logits).squeeze().tolist() | |
| print(probs) | |
| ## ๐ Performance (Validation) | |
| | Epoch | Train Loss | Val Loss | Micro-F1 | Macro-F1 | Accuracy | | |
| |:--:|:--:|:--:|:--:|:--:|:--:| | |
| | 1 | 1.1288 | 0.3854 | 0.4887 | 0.3474 | 0.7239 | | |
| | 2 | 0.6371 | 0.3293 | 0.6716 | 0.4794 | 0.8410 | | |
| | 3 | 0.4236 | 0.2891 | 0.7467 | 0.5399 | 0.8854 | | |
| | 4 | 0.3349 | 0.2389 | 0.7599 | 0.5450 | 0.9045 | | |
| | 5 | 0.2788 | 0.2339 | 0.8100 | 0.5882 | 0.9320 | | |
| | 6 | 0.2539 | 0.2617 | 0.8416 | 0.6263 | 0.9365 | | |
| | 7 | 0.1976 | 0.2573 | 0.8590 | 0.6471 | 0.9433 | | |
| **๐ ์ต์ข ์ฑ๋ฅ (Epoch 8)** | |
| - **Micro-F1:** 0.86 | |
| - **Macro-F1:** 0.65 | |
| - **Accuracy:** 0.94 | |
| - **Validation Loss:** 0.257 | |
| > pos_weight ๋ณด์ (`โ`)์ ์ ์ฉํ ๋ชจ๋ธ๋ก, ์ด์ ๋ฒ์ ๋๋น ํ๋ฅ ์ค์ผ์ผ ์์ ํ ๋ฐ F1 ํฅ์(+0.13p)์ ๋ฌ์ฑํ์ต๋๋ค. | |
| ๐ License & Author | |
| Author: Wing4 | |
| Created: 2025-10 | |