KoBERT ๊ธฐ๋ฐ ํ๊ตญ์ด ๊ฐ์ ๋ถ๋ฅ ๋ชจ๋ธ
์ด ํ๋ก์ ํธ๋ ํ๊ตญ์ด ํ ์คํธ์ ๊ฐ์ ์ ๋ถ๋ฅํ๋ KoBERT ๊ธฐ๋ฐ์ ๊ฐ์ ๋ถ๋ฅ ๋ชจ๋ธ์ ํ์ตํ๊ณ ํ์ฉํ๋ ์ฝ๋๋ฅผ ํฌํจํฉ๋๋ค. ์ด ๋ชจ๋ธ์ ์ ๋ ฅ๋ ํ ์คํธ๊ฐ ๋ถ๋ ธ(Anger), ๋๋ ค์(Fear), ๊ธฐ์จ(Happy), ํ์จ(Tender), ์ฌํ(Sad) ์ค ์ด๋ค ๊ฐ์ ์ ํด๋นํ๋์ง๋ฅผ ์์ธกํฉ๋๋ค.
1. ๋ชจ๋ธ ํ์ต ๊ณผ์
Colab ํ๊ฒฝ ์ค์ ๋ฐ ๋ฐ์ดํฐ ์ค๋น
ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น:
transformers
,datasets
,torch
,pandas
,scikit-learn
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํฉ๋๋ค.๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ: ai hub ์ ๋ฑ๋ก๋ ํ๊ตญ์ด ๊ฐ์ฑ ๋ํ ๋ฐ์ดํฐ๋ก๋ถํฐ ๊ฐ์ ๋ถ๋ฅ์ฉ CSV ํ์ผ์ ๋ถ๋ฌ์ต๋๋ค.
๋ฐ์ดํฐ์ ์ค๋น:
- ํ์ต/๊ฒ์ฆ ๋ฐ์ดํฐ ๋ถํ : 80%๋ ํ์ต ๋ฐ์ดํฐ๋ก, 20%๋ ๊ฒ์ฆ ๋ฐ์ดํฐ๋ก ์ฌ์ฉ.
- HuggingFace Dataset ํ์ ๋ณํ: Pandas DataFrame์ HuggingFace
Dataset
์ผ๋ก ๋ณํ. - ๋ ์ด๋ธ ์ปฌ๋ผ๋ช
๋ณ๊ฒฝ: ๊ฐ์ ๋ ์ด๋ธ์ ๋ํ๋ด๋
label_int
์ปฌ๋ผ์labels
๋ก ๋ณ๊ฒฝ. - ๋ฐ์ดํฐ ํ ํฐํ:
monologg/kobert
ํ ํฌ๋์ด์ ๋ฅผ ์ด์ฉํด ์ ๋ ฅ ํ ์คํธ๋ฅผ ํ ํฐํ. - ํ์ ๋ณํ:
input_ids
,attention_mask
,labels
๋ง ๋จ๊ฒจ ํ์ต ์ค๋น ์๋ฃ.
๋ชจ๋ธ ๋ฐ ํ์ต ์ค์ :
- ๋ชจ๋ธ:
monologg/kobert
๋ชจ๋ธ์ ๋ถ๋ฌ์ 5๊ฐ์ ๊ฐ์ ๋ ์ด๋ธ์ ๋ถ๋ฅํ๋๋ก ์ค์ . - ํ์ต ํ์ดํผํ๋ผ๋ฏธํฐ:
learning_rate=2e-5
,num_train_epochs=10
,batch_size=16
.- F1 ์ค์ฝ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฒ ์คํธ ๋ชจ๋ธ ์ ์ฅ.
- Early stopping ์ ์ฉ.
- ๋ชจ๋ธ:
ํ์ต ์งํ ๋ฐ ๋ชจ๋ธ ์ ์ฅ:
- ํ์ต ์๋ฃ ํ ๋ชจ๋ธ์ Google Drive์ ์ ์ฅ.
์ฑ๋ฅ ํ๊ฐ ๋ฐ ํ ์คํธ
- ํ๊ฐ ์งํ: Accuracy, F1 score (macro, weighted) ๊ณ์ฐ.
- ํ ์คํธ ๋ฐ์ดํฐ ํ๊ฐ: ํ์ต๋ ๋ชจ๋ธ์ ์ด์ฉํด ํ ์คํธ ๋ฐ์ดํฐ์ ํ๊ฐ.
2. ๋ชจ๋ธ ์ฌ์ฉ ๋ฐฉ๋ฒ
์ฌ์ ์ค๋น
- HuggingFace Hub์์ ํ์ต๋ ๋ชจ๋ธ์ ๋ถ๋ฌ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋ชจ๋ธ ๋ฐ ํ ํฌ๋์ด์ ๋
monologg/kobert
๊ธฐ๋ฐ์ด๋ฉฐ, ๋ถ๋ฅ ๋ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:- Anger: ๐ก
- Fear: ๐จ
- Happy: ๐
- Tender: ๐ฅฐ
- Sad: ๐ข
์ฌ์ฉ ์์
๋จ์ ๋ฌธ์ฅ ์ ๋ ฅ ๊ฐ์ ๋ถ์:
- ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ํ ์คํธ์ ๋ํด ๋ชจ๋ธ์ด ๊ฐ์ ์ ์์ธกํ๊ณ , ๊ฐ ๊ฐ์ ์ ํ๋ฅ ์ ํจ๊ป ์ถ๋ ฅํฉ๋๋ค.
์์ ํ์ผ์์ ๊ฐ์ ๋ถ์:
- ์์ ํ์ผ์์ ์ง์ ํ ํ ์คํธ ์ด๊ณผ ํ ๋ฒ์๋ฅผ ์ฝ์ด์, ํด๋น ํ ์คํธ๋ค์ ๋ํด ๊ฐ์ ์ ๋ถ๋ฅํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์ฝ๋ ์ฌ์ฉ ์์
# ํ ํฌ๋์ด์ ๋ฐ ๋ชจ๋ธ ๋ก๋
from transformers import AutoTokenizer, AutoModelForSequenceClassification
# KoBERT ํ ํฌ๋์ด์ ์ ๋ชจ๋ธ ๋ก๋
tokenizer = AutoTokenizer.from_pretrained("monologg/kobert", trust_remote_code=True)
model = AutoModelForSequenceClassification.from_pretrained("rkdaldus/ko-sent5-classification")
# ์ฌ์ฉ์ ์
๋ ฅ ํ
์คํธ ๊ฐ์ ๋ถ์
text = "์ค๋ ์ ๋ง ํ๋ณตํด!"
inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
with torch.no_grad():
outputs = model(**inputs)
predicted_label = torch.argmax(outputs.logits, dim=1).item()
# ๊ฐ์ ๋ ์ด๋ธ ์ ์
emotion_labels = {
0: ("Angry", "๐ก"),
1: ("Fear", "๐จ"),
2: ("Happy", "๐"),
3: ("Tender", "๐ฅฐ"),
4: ("Sad", "๐ข")
}
# ์์ธก๋ ๊ฐ์ ์ถ๋ ฅ
print(f"์์ธก๋ ๊ฐ์ : {emotion_labels[predicted_label][0]} {emotion_labels[predicted_label][1]}")
- Downloads last month
- 42
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social
visibility and check back later, or deploy to Inference Endpoints (dedicated)
instead.
Model tree for rkdaldus/ko-sent5-classification
Base model
monologg/kobert