IndoBERT klasifikasi Sentiment ID - 2 Kelas

Model ini merupakan hasil fine-tuning dari indobenchmark/indobert-base-p2 untuk tugas klasifikasi sentimen review produk dalam Bahasa Indonesia dengan dua label (positif dan negatif). model di-pretrain terlebih dahulu menggunakan 78.536 baris ulasan produk agar lebih mengenali gaya bahasa informal yang umum digunakan dalam review, seperti singkatan "banget" β†’ "bgt", "enggak" β†’ "gk", dsb. kemudian model di finetune dengan Dataset yang terdiri dari 19.728 ulasan produk di e-commerce tokopedia dan juga berasal dari ulasan sintesis menggunakan LLM Gemini.

🎯 Tujuan

Model ini ditujukan untuk mengklasifikasikan komentar/review produk/ulasan menjadi dua kelas sentimen: POSITIF dan NEGATIF.

πŸ§ͺ Metrics

Model ini dievaluasi menggunakan metrik:

  • Accuracy
  • F1 Score

🧠 Base Model

βš™οΈ Training Arguments

Berikut adalah konfigurasi training (TrainingArguments) yang digunakan saat pelatihan:

from transformers import TrainingArguments

training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    gradient_accumulation_steps=2,
    per_device_eval_batch_size=4,
    weight_decay=0.05,
    eval_strategy="epoch",
    save_strategy="epoch",
    seed=42,
    load_best_model_at_end=True,
    metric_for_best_model="f1",
    logging_dir="./logs",
    report_to="tensorboard",
    logging_steps=100,
    warmup_ratio=0.05,
)

πŸ“Š Hasil Evaluasi

Model dievaluasi selama 3 epoch menggunakan metrik Accuracy dan F1 Score. Berikut adalah performa model pada setiap epoch:

Epoch Training Loss Validation Loss Accuracy F1 Score
1 0.2670 0.2374 0.9564 0.9564
2 0.4904 0.2951 0.9356 0.9356
3 0.3650 0.2176 0.9442 0.9441

πŸ‘¨β€πŸ’» Cara Inferensi

# Load model dan tokenizer
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline
import torch

# Load dari Hugging Face Hub
model = AutoModelForSequenceClassification.from_pretrained("siRendy/indobert-analisis-sentimen-review-produk-datathon2025")
tokenizer = AutoTokenizer.from_pretrained("siRendy/indobert-analisis-sentimen-review-produk-datathon2025")

# Fungsi prediksi
def predict_sentiment(text):
    classifier = pipeline(
        "text-classification",
        model=model,
        tokenizer=tokenizer,
        device=0 if torch.cuda.is_available() else -1
    )

    result = classifier(text)[0]
    return {
        "sentiment": str(result["label"]),
        "confidence": round(result["score"], 4)
    }

# Contoh penggunaan
text = "aih jelek nya ngawur iki opo seh, mo nipu lu ya"
prediction = predict_sentiment(text)
print(prediction)
Downloads last month
42
Safetensors
Model size
124M params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for siRendy/indobert-analisis-sentimen-review-produk-datathon2025

Finetuned
(62)
this model

Dataset used to train siRendy/indobert-analisis-sentimen-review-produk-datathon2025