Edit model card

This is a setfit hate speech detection model (86 % accuracy/f1) based on the Ar Hate Speech dataset.

Usage:

pip install setfit
from setfit import SetFitModel
from unicodedata import normalize

# Download model from Hub
model = SetFitModel.from_pretrained("akhooli/setfit_ar_hs")
# Run inference
queries = [
       "سكت دهراً و نطق كفراً",
       "الخلاف ﻻ يفسد للود قضية.",
       "أنت شخص منبوذ. احترم أسيادك.",
       "دع المكارم ﻻ ترحل لبغيتها واقعد فإنك أنت الطاعم الكاسي",
   ]
queries_n = [normalize('NFKC', query) for query in queries]
preds = model.predict(queries_n)
print(preds)
# if you want to see the probabilities for each label
probas = model.predict_proba(queries_n)
print(probas)

The rest of this content is auto-generated.

SetFit with akhooli/sbert_ar_nli_500k_norm

This is a SetFit model that can be used for Text Classification. This SetFit model uses akhooli/sbert_ar_nli_500k_norm as the Sentence Transformer embedding model. A LogisticRegression instance is used for classification.

The model has been trained using an efficient few-shot learning technique that involves:

  1. Fine-tuning a Sentence Transformer with contrastive learning.
  2. Training a classification head with features from the fine-tuned Sentence Transformer.

Model Details

Model Description

Model Sources

Model Labels

Label Examples
positive
  • ' سبحان الله الفلسطينيين شعب خاين في كل مكان \nلاحول ولا قوة إلا بالله'
  • 'يا بيك عّم تخبرنا عن شي ما فينا تعملو نحن ماًعندنا نواب ولا وزراء بمثلونا بالدولة الا اذا زهقان وعبالك ليك'
  • 'جوز كذابين منافقين...'
negative
  • 'ربي لا تجعلني أسيء الظن بأحد ولا تجعل في قلبي شيئا على أحد ، اللهم أسألك قلباً نقياً صافيا'
  • 'هشام حداد عامل فيها جون ستيوارت'
  • ' بحياة اختك من وين بتجيبي اخبارك؟؟ من صغري وانا عبالي كون... LINK'

Evaluation

Metrics

Label Accuracy
all 0.8606

Uses

Direct Use for Inference

First install the SetFit library:

pip install setfit

Then you can load this model and run inference.

from setfit import SetFitModel

# Download from the 🤗 Hub
model = SetFitModel.from_pretrained("akhooli/setfit_ar_hs")
# Run inference
preds = model("شيوعي 
علماني 
مسيحي
انصار سنه 
صوفي 
يمثلك التجمع 
لا يمثلك التجمع 
اهلا بكم جميعا فنحن نريد بناء وطن ❤")

Training Details

Training Set Metrics

Training set Min Median Max
Word count 1 18.8448 185
Label Training Sample Count
negative 5200
positive 4943

Training Hyperparameters

  • batch_size: (32, 32)
  • num_epochs: (1, 1)
  • max_steps: 6000
  • sampling_strategy: undersampling
  • body_learning_rate: (2e-05, 1e-05)
  • head_learning_rate: 0.01
  • loss: CosineSimilarityLoss
  • distance_metric: cosine_distance
  • margin: 0.25
  • end_to_end: False
  • use_amp: False
  • warmup_proportion: 0.1
  • l2_weight: 0.01
  • seed: 42
  • run_name: setfit_hate_52k_aub_6k
  • eval_max_steps: -1
  • load_best_model_at_end: False

Training Results

Epoch Step Training Loss Validation Loss
0.0003 1 0.3151 -
0.0333 100 0.2902 -
0.0667 200 0.248 -
0.1 300 0.2011 -
0.1333 400 0.164 -
0.1667 500 0.136 -
0.2 600 0.1162 -
0.2333 700 0.0915 -
0.2667 800 0.0724 -
0.3 900 0.0656 -
0.3333 1000 0.05 -
0.3667 1100 0.0454 -
0.4 1200 0.0407 -
0.4333 1300 0.0318 -
0.4667 1400 0.0338 -
0.5 1500 0.0289 -
0.5333 1600 0.0266 -
0.5667 1700 0.0238 -
0.6 1800 0.02 -
0.6333 1900 0.0167 -
0.6667 2000 0.0168 -
0.7 2100 0.0161 -
0.7333 2200 0.0143 -
0.7667 2300 0.0128 -
0.8 2400 0.0128 -
0.8333 2500 0.0146 -
0.8667 2600 0.0113 -
0.9 2700 0.0146 -
0.9333 2800 0.0109 -
0.9667 2900 0.0128 -
1.0 3000 0.0101 -
1.0333 3100 0.0126 -
1.0667 3200 0.0092 -
1.1 3300 0.0108 -
1.1333 3400 0.0095 -
1.1667 3500 0.0121 -
1.2 3600 0.0088 -
1.2333 3700 0.0086 -
1.2667 3800 0.0075 -
1.3 3900 0.009 -
1.3333 4000 0.008 -
1.3667 4100 0.0051 -
1.4 4200 0.007 -
1.4333 4300 0.0055 -
1.4667 4400 0.0074 -
1.5 4500 0.0065 -
1.5333 4600 0.0086 -
1.5667 4700 0.0064 -
1.6 4800 0.0064 -
1.6333 4900 0.0073 -
1.6667 5000 0.0052 -
1.7 5100 0.0056 -
1.7333 5200 0.0059 -
1.7667 5300 0.0048 -
1.8 5400 0.0044 -
1.8333 5500 0.003 -
1.8667 5600 0.0045 -
1.9 5700 0.0043 -
1.9333 5800 0.0042 -
1.9667 5900 0.0029 -
2.0 6000 0.0033 -

Framework Versions

  • Python: 3.10.14
  • SetFit: 1.2.0.dev0
  • Sentence Transformers: 3.3.0
  • Transformers: 4.45.1
  • PyTorch: 2.4.0
  • Datasets: 3.0.1
  • Tokenizers: 0.20.0

Citation

BibTeX

@article{https://doi.org/10.48550/arxiv.2209.11055,
    doi = {10.48550/ARXIV.2209.11055},
    url = {https://arxiv.org/abs/2209.11055},
    author = {Tunstall, Lewis and Reimers, Nils and Jo, Unso Eun Seo and Bates, Luke and Korat, Daniel and Wasserblat, Moshe and Pereg, Oren},
    keywords = {Computation and Language (cs.CL), FOS: Computer and information sciences, FOS: Computer and information sciences},
    title = {Efficient Few-Shot Learning Without Prompts},
    publisher = {arXiv},
    year = {2022},
    copyright = {Creative Commons Attribution 4.0 International}
}
Downloads last month
34
Safetensors
Model size
135M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for akhooli/setfit_ar_hs

Finetuned
(3)
this model

Evaluation results