Colab Notebook
ํ์ต ๋ฐ์ดํฐ์
https://huggingface.co/combe4259/difficulty_klue/blob/main/training_data_difficulty_klue.json
๊ธ์ต ๋ฌธ์ ๋์ด๋ ๋ถ๋ฅ ๋ชจ๋ธ (Text Difficulty Classification)
์ด ๋ชจ๋ธ์ klue/bert-base
๋ฅผ ํ์ธํ๋ํ์ฌ, ํ๊ตญ์ด ๊ธ์ต ๋ฌธ์ฅ์ ๋์ด๋๋ฅผ 10๋จ๊ณ(1~10)๋ก ๋ถ๋ฅํ๋ Text Classification ๋ชจ๋ธ์
๋๋ค.
'์ด๋ ค์ด ๋ฌธ์ฅ'์ด ๋ฑ์ฅํ๋์ง ์ค์๊ฐ์ผ๋ก ๊ฐ์งํ์ฌ '์ฌ์ด ๋ฌธ์ฅ ๋ณํ AI'์ ํธ๋ฆฌ๊ฑฐ ์ญํ ์ ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ (How to Use)
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
# Hugging Face Hub ๋๋ ์ ์ฅ๋ ๋ก์ปฌ ๊ฒฝ๋ก์์ ๋ชจ๋ธ ๋ก๋
MODEL_PATH = "combe4259/difficulty_klue"
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_PATH)
model.eval()
# ์ถ๋ก ํ ํ
์คํธ
text = "์ ์ฉํ์๊ฒฐํฉ์ฆ๊ถ์ CDS ์คํ๋ ๋ ๋ณ๋์ ๋ฐ๋ฅธ ์์ต๊ตฌ์กฐ"
inputs = tokenizer(
text,
return_tensors="pt",
truncation=True,
max_length=512,
padding=True
)
# ์์ธก
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
# ๋ชจ๋ธ์ 0-9๋ก ์์ธกํ๋ฏ๋ก, +1 ํ์ฌ 1-10 ์ค์ผ์ผ๋ก ๋ณํ
prediction = torch.argmax(logits, dim=-1).item()
difficulty = prediction + 1
print(f"ํ
์คํธ: {text}")
print(f"์์ธก ๋์ด๋: {difficulty}")
# ์ถ๋ ฅ: ์์ธก ๋์ด๋: 7
ํ์ต ๋ฐ์ดํฐ (Training Data)
- ์์ฒด ๊ตฌ์ถํ 2,880๊ฐ์ ๊ธ์ต ๋ฌธ์ฅ/๋จ๋ฝ์ผ๋ก ๊ตฌ์ฑ๋ JSON ๋ฐ์ดํฐ ์ฌ์ฉ
- ๋ฐ์ดํฐ ๋ถํ : Train (2,016) / Validation (432) / Test (432)
- ๋ฐ์ดํฐ ๋ถ๊ท ํ: ๋์ด๋ 7(28.2%)๊ณผ 8(18.6%) ์ง์ค, ๋์ด๋ 10(0.0%)์ 1๊ฐ ์กด์ฌ
- ์ ์ฒ๋ฆฌ: klue/bert-base ํ ํฌ๋์ด์ ์ฌ์ฉ,
max_length=512
๋ก ํจ๋ฉ ๋ฐ ์ ๋จ
ํ์ต ์ ์ฐจ (Training Procedure)
- Base Model:
klue/bert-base
(num_labels=10
) - Optimizer: AdamW
- Loss Function: Weighted CrossEntropyLoss (ํด๋์ค ๊ฐ์ค์น ์ ์ฉ)
- ์: ์ํ 1๊ฐ์ธ ๋์ด๋ 10 โ 10.0
- ์ํ 568๊ฐ์ธ ๋์ด๋ 7 โ 0.35
- Epochs: 10
- Batch Size: 16
- Learning Rate: 2e-5 (with 500 warmup steps)
- Best Model:
metric_for_best_model='f1'
(F1 ์ ์๊ฐ ๊ฐ์ฅ ๋์ ์ฒดํฌํฌ์ธํธ ์ ์ฅ) - Early Stopping: patience=3 (F1 ์ ์๊ฐ 3ํ ์ฐ์ ๊ฐ์ ๋์ง ์์ผ๋ฉด ํ์ต ์กฐ๊ธฐ ์ข ๋ฃ)
ํ๊ฐ ๊ฒฐ๊ณผ (Evaluation Results)
Test Set (432๊ฐ) ๊ธฐ์ค ์ต์ข
์ฑ๋ฅ์
๋๋ค.
'F1 Score'์ 'MAE, Within 1 Acc' ๋ชจ๋์์ ์์ ์ ์ธ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค.
Metric | Score | ์ค๋ช |
---|---|---|
F1 Score (Weighted) | 0.607 | (ํต์ฌ ์งํ) ๋ชจ๋ธ์ ์ ๋ฐ์ ์ธ ์ ๋ฐ๋/์ฌํ์จ |
Accuracy (์ ํ๋) | 0.604 | 10๊ฐ ์ค ์ ํํ ๋งํ ํ๋ฅ |
MAE (ํ๊ท ์ ๋ ์ค์ฐจ) | 0.560 | (์ค์) ์์ธก์ด ์ ๋ต์์ ํ๊ท 0.56์นธ ๋ฒ์ด๋จ |
Within 1 Acc | 0.926 | (์ค์) ยฑ1 ์ค์ฐจ ๋ฒ์ ๋ด ์ ํ๋ (92.6%) |
์ํ ์์ธก
์ ๋ ฅ ํ ์คํธ | ์์ธก ๋์ด๋ (1-10) |
---|---|
"์ํ์ ๋์ ๋งก๊ฒจ์" | 1 |
"์๊ธ์๋ณดํธ๋ฒ์ ๋ฐ๋ผ 5์ฒ๋ง์๊น์ง ๋ณดํธ๋ฉ๋๋ค" | 2 |
"์ ์ฉํ์๊ฒฐํฉ์ฆ๊ถ์ CDS ์คํ๋ ๋ ๋ณ๋์ ๋ฐ๋ฅธ ์์ต๊ตฌ์กฐ" | 7 |
- Downloads last month
- 132
Model tree for combe4259/difficulty_klue
Base model
klue/bert-base