PhoBERT-HSD-Span

Fine-tuned from vinai/phobert-base on visolex/ViHOS for token-level hate/offensive span detection.

Model Details

Hyperparameters

  • Batch size: 16
  • Learning rate: 5e-5
  • Epochs: 100
  • Max sequence length: 128
  • Early stopping: 5

Usage

from transformers import AutoTokenizer, AutoModelForTokenClassification

tokenizer = AutoTokenizer.from_pretrained("visolex/phobert-hsd-span")
model = AutoModelForTokenClassification.from_pretrained("visolex/phobert-hsd-span")

text = "Nói cái lol . t thấy thô tục vl"
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
with torch.no_grad():
    outputs = model(**inputs)
logits = outputs.logits  # [batch, seq_len, num_labels]
# For binary: use sigmoid, for multi-class: use softmax+argmax
probs = torch.sigmoid(logits)
preds = (probs > 0.5).long().squeeze().tolist()  # [seq_len]
tokens = tokenizer.convert_ids_to_tokens(inputs['input_ids'][0])

span_labels = [p[0] for p in preds]

span_tokens = [token for token, label in zip(tokens, span_labels) if label == 1 and token not in ['<s>', '</s>']]

print("Span tokens:", span_tokens)
print("Span text:", tokenizer.convert_tokens_to_string(span_tokens))
Downloads last month
17
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for visolex/phobert-hsd-span

Base model

vinai/phobert-base
Finetuned
(111)
this model

Dataset used to train visolex/phobert-hsd-span

Collection including visolex/phobert-hsd-span

Evaluation results