Downloads · 30 days
5
2% of all-time downloads
alifviansyah/indobert-sentiment-focalloss
indobert-sentiment-focalloss is a text classification model from alifviansyah. Use it when you need a label for a piece of text. It is set up for transformers.
Downloads · 30 days
5
2% of all-time downloads
All-time downloads
202
Public
Parameters
124M
4.5 GB on disk
Likes
1
Public
Click a slice to open those files.
.pt3 GB · 60%
From the Hugging Face model README
Tiga kelas utama: negatif • netral • positif
Akurasi tinggi berdasarkan dataset ulasan Bahasa Indonesia.
Model ini dikembangkan untuk melakukan klasifikasi sentimen teks Bahasa Indonesia, khususnya untuk ulasan e-commerce.
Untuk meningkatkan performa pada kelas minoritas, model menggunakan Focal Loss, serta Optuna Hyperparameter Tuning untuk mendapatkan konfigurasi pelatihan terbaik.
Model dapat digunakan untuk:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model_id = "alifviansyah/indobert-sentiment-focalloss"
# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_id)
# Load model
model = AutoModelForSequenceClassification.from_pretrained(model_id)
# Example prediction
label_map = {0: "negatif", 1: "netral", 2: "positif"}
def predict(text):
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
with torch.no_grad():
logits = model(**inputs).logits
pred = torch.argmax(logits, dim=1).item()
return label_map[pred]
print(predict("Pengiriman cepat banget dan barangnya bagus!"))
Jenis task: Text Classification – Sentiment Analysis
Label yang digunakan:
| Label ID | Sentimen |
|---|---|
| 0 | negatif |
| 1 | netral |
| 2 | positif |
Dataset terdiri dari kumpulan ulasan e-commerce Indonesia.
Struktur data:
text : isi ulasansentimen : label kategori sentimenKarakteristik dataset:
Distribusi kelas tidak seimbang sehingga digunakan Focal Loss.
Pada kasus klasifikasi dengan distribusi kelas yang tidak seimbang, model sering kali terlalu fokus pada kelas mayoritas sehingga performa pada kelas minoritas menurun. Focal Loss dirancang untuk mengatasi masalah ini dengan memberikan bobot lebih besar pada sampel yang sulit diprediksi dan bobot lebih kecil pada sampel yang mudah diprediksi.
Focal Loss memodifikasi fungsi Cross Entropy Loss dengan menambahkan faktor pengali yang secara dinamis menurunkan kontribusi sampel mudah (easy examples).
Dengan demikian, model terdorong untuk lebih fokus belajar dari hard examples yang probabilitas prediksinya rendah.
Pendekatan ini sangat efektif untuk:
Formulasi matematis Focal Loss menurut Lin et al. (2017):
$$ FL(p_t) = -\alpha , (1 - p_t)^\gamma , \log(p_t) $$
Dengan definisi:
Jika label benar = 1:
$$ p_t = p $$
Jika label benar = 0:
$$ p_t = 1 - p $$
p adalah probabilitas prediksi model untuk kelas positif.
$$ p_t $$ adalah probabilitas terhadap kelas yang benar.
α adalah balancing factor untuk menangani ketimpangan antar kelas.
γ adalah focusing factor yang mengatur tingkat penekanan pada sampel yang mudah diprediksi.
| Komponen | Detail |
|---|---|
| Backbone | IndoBERT-base |
| Classification Head | Linear layer size 768 → 3 |
| Loss Function | Focal Loss (gamma=2, alpha adaptif) |
| Optimizer | AdamW |
| Scheduler | Linear learning rate scheduler |
| Tuning | Optuna search untuk LR, WD, batch size |
| Parameter | Nilai |
|---|---|
| Epochs | 4 |
| Batch size | 16 |
| Learning rate | 3.21e-05 |
| Weight decay | 0.01 |
| Max length | 256 |
| Evaluation | per epoch |
| Save best model | yes |
| Loss | Focal Loss |
| Metric | Score |
|---|---|
| Accuracy | 0.9361 |
| Balanced Accuracy | 0.8172 |
| Precision Macro | 0.8824 |
| Recall Macro | 0.8172 |
| F1 Score Macro | 0.8445 |
| Precision Weighted | 0.9347 |
| Recall Weighted | 0.9361 |
| F1 Score Weighted | 0.9347 |
| Loss | 0.0998 |
| Kelas | Precision | Recall | F1-Score |
|---|---|---|---|
| Negatif | 0.9351 | 0.9655 | 0.9500 |
| Netral | 0.7647 | 0.5603 | 0.6468 |
| Positif | 0.9476 | 0.9258 | 0.9366 |
Jika Anda menggunakan model ini dalam penelitian atau publikasi, silakan sitasi dalam format berikut:
@model{indobert_sentiment_focalloss_2025,
title = {IndoBERT Sentiment with Focal Loss},
author = {Alifviansyah},
year = {2025},
url = {https://huggingface.co/alifviansyah/indobert-sentiment-focalloss}
}