Indonesian BERT Base for Natural Language Inference (Perturbation Weighted)

Deskripsi Model

Model ini adalah versi fine-tuned dari indobenchmark/indobert-base-p2 yang dilatih untuk tugas Natural Language Inference (NLI) biner pada data berbahasa Indonesia. Tujuan utama NLI adalah untuk menentukan apakah sebuah "hipotesis" dapat disimpulkan dari sebuah "premis". Model ini secara spesifik dilatih dengan strategi pembobotan sampel ganda:

  1. Pembobotan untuk menyeimbangkan kelas label utama (misalnya, entailment vs. non-entailment).
  2. Pembobotan tambahan untuk jenis-jenis perturbasi spesifik dalam sampel kelas negatif (label 0), untuk meningkatkan ketahanan model terhadap variasi linguistik atau artefak data tertentu.

Model ini menghasilkan salah satu dari dua label (misalnya, 0 untuk non-entailment/kontradiksi, 1 untuk entailment).

metrik score
accuracy 0.8865733849359928
macro_precision 0.8772256008206331
macro_recall 0.8361628900067384
macro_f1 0.8531230288690632
average_loss 0.5036396079513776
train_loss_sample_weighted 0.17769948870748825

Penggunaan yang Ditujukan

Model ini ditujukan untuk digunakan dalam tugas klasifikasi teks NLI biner dalam bahasa Indonesia. Dapat digunakan untuk:

  • Memverifikasi apakah suatu klaim (hipotesis) didukung oleh teks sumber (premis).
  • Menganalisis hubungan logis antara beberapa kalimat teks sumber dan kalimat ringkasannya.
  • Model akan menganggap ringkasan tidak entails ketika terjadi halusinasi.
  • Halusinasi yang dapat dideteksi oleh model ini adalah (Pagnoni dkk., 2021):
    • Predicate error
    • Discourse link error
    • Entity Error
    • Circumstance Error
    • Out of Article Error

Cara Menggunakan

Anda dapat menggunakan model ini dengan pustaka transformers dari Hugging Face:

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

model_name = "fabhiansan/indoBERT-Base-FactChecking-Summarization"

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
model = AutoModelForSequenceClassification.from_pretrained(model_name_or_path)

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

premise = "Timnas Indonesia berhasil memenangkan pertandingan sepak bola."
hypothesis = "Indonesia kalah dalam laga tersebut."

inputs = tokenizer(premise, hypothesis, return_tensors="pt", truncation=True, padding=True, max_length=512)
inputs = {k: v.to(device) for k, v in inputs.items()}

model.eval()
with torch.no_grad():
    outputs = model(**inputs)
    logits = outputs.logits
    predictions = torch.argmax(logits, dim=-1)

if predictions.item() == 1:
    print("Hipotesis dapat disimpulkan dari premis (Entailment).")
else:
    print("Hipotesis TIDAK dapat disimpulkan dari premis (Non-Entailment).")
Downloads last month
3
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 fabhiansan/indoBERT-Base-FactChecking-Summarization

Finetuned
(50)
this model

Dataset used to train fabhiansan/indoBERT-Base-FactChecking-Summarization

Collection including fabhiansan/indoBERT-Base-FactChecking-Summarization