Arabic NLI Binary Classifier โ s04-arbert-nli
Binary Arabic text classifier (0 = faithful, 1 = unfaithful). Fine-tuned for Arabic NLI-based binary text classification.
Base model
UBC-NLP/ARBERT
Input format
nli โ [CLS] gold_answer [SEP] model_answer [SEP] (NLI framing: gold_answer as premise,
model_answer as hypothesis)
Dev results
- AUC-ROC (official, full dev n=1300): 0.9663
- AUC-ROC (clean dev, n=800, excludes ~100 questions also seen in train): 0.9408
- Macro F1 (official, threshold=0.50): 0.8992
Note: the official-dev number is inflated by ~500 dev rows whose questions also appear in the training set (near-memorization). The clean-dev AUC-ROC (0.9408) is the honest generalization estimate and the number to use for ranking against other runs. This is the best single-model result so far in this run series โ it beats both s02-camelbert-nli (0.9272), s03-marbert-nli (0.9266), and even the 2-model soft-vote ensemble of those two (0.9373). All far exceed the published CAMeLBERT baseline (0.7093 dev AUC-ROC).
Training data
Arabic training set โ 4,705 Arabic (question, gold_answer, model_answer) triples, 5 source LLMs, 13 knowledge domains.
Usage
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tokenizer = AutoTokenizer.from_pretrained("HassanB4/s04-arbert-nli")
model = AutoModelForSequenceClassification.from_pretrained("HassanB4/s04-arbert-nli")
inputs = tokenizer(gold_answer, model_answer, return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
logits = model(**inputs).logits
score = torch.softmax(logits, dim=-1)[0][1].item() # unfaithfulness score
predicted_label = int(score > 0.5)
- Downloads last month
- -