kenhktsui's picture
Update README.md
f98294c verified
metadata
base_model: sentence-transformers/paraphrase-mpnet-base-v2
library_name: setfit
metrics:
  - f1
pipeline_tag: text-classification
tags:
  - setfit
  - sentence-transformers
  - text-classification
  - generated_from_setfit_trainer
widget:
  - text: >-
      I'm so excited for the weekend, I get to spend time with my friends and
      family. We're planning a hike and then having a BBQ. I love days like
      this!
  - text: >-
      You're just a stupid white person, you'll never understand what it's like
      to be a minority. You're so privileged, you have no idea how much racism
      you've experienced in your life. Get out of here with your entitled
      attitude.
  - text: >-
      Are you f***ing kidding me?! This is the worst customer service I've ever
      experienced. I've been on hold for 45 minutes and no one has even bothered
      to answer my call. Unbelievable.
  - text: >-
      You're such a f***ing idiot, how dare you even try to tell me what to do.
      I swear to god, you're the most annoying person I've ever met. Just f***
      off and leave me alone.
  - text: >-
      Just got the cutest puppy and I'm so in love with him! He's already stolen
      my heart and I'm sure he'll bring so much joy to our family. Anyone else
      have a furry friend at home? #puppylove #dogsofinstagram #loveofmylife
inference: true
model-index:
  - name: SetFit with sentence-transformers/paraphrase-mpnet-base-v2
    results:
      - task:
          type: text-classification
          name: Text Classification
        dataset:
          name: Unknown
          type: unknown
          split: test
        metrics:
          - type: f1
            value: 0.8648435963013968
            name: F1

SetFit with sentence-transformers/paraphrase-mpnet-base-v2

This is a SetFit model that can be used for Text Classification. This SetFit model uses sentence-transformers/paraphrase-mpnet-base-v2 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

This dataset may contain racism, sexuality, or other undesired content.

Label Examples
Toxic
  • "Can't believe this black guy thinks he can be president. What a joke. He's only in office because of affirmative action. Get over it, America!"
  • "I'm so sick of you, you think you're so much better than everyone else just because you have a few more followers. Newsflash, you're just as toxic as the rest of us. Go cry to your mom."
  • "I'm going to smash your car window if you don't give me money right now. You're going to regret messing with me."
Non toxic
  • "I just wanted to say thank you to the amazing team at @CompanyX for their incredible customer service. They went above and beyond to resolve my issue and I'm so grateful for their help. #CustomerLove #Respect"
  • "I'm having a great day, thanks for asking! How about you? I just got back from a lovely hike in the mountains and I'm feeling refreshed."
  • "I'm feeling really overwhelmed with my coursework. Do you have any tips on how to manage my time effectively?"

Evaluation

Metrics

Label F1
all 0.8648

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("setfit_model_id")
# Run inference
preds = model("I'm so excited for the weekend, I get to spend time with my friends and family. We're planning a hike and then having a BBQ. I love days like this!")

Training Details

Training Set Metrics

Training set Min Median Max
Word count 14 27.5 42
Label Training Sample Count
Non toxic 12
Toxic 20

Training Hyperparameters

  • batch_size: (16, 16)
  • num_epochs: (5, 5)
  • max_steps: -1
  • sampling_strategy: oversampling
  • 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
  • seed: 42
  • eval_max_steps: -1
  • load_best_model_at_end: True

Training Results

Epoch Step Training Loss Validation Loss
0.0278 1 0.2873 -
1.0 36 - 0.1098
1.3889 50 0.0013 -
2.0 72 - 0.0981
2.7778 100 0.0003 -
3.0 108 - 0.112
4.0 144 - 0.1174
4.1667 150 0.0001 -
5.0 180 - 0.1075
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.9.19
  • SetFit: 1.1.0.dev0
  • Sentence Transformers: 3.0.1
  • Transformers: 4.39.0
  • PyTorch: 2.4.0
  • Datasets: 2.20.0
  • Tokenizers: 0.15.2

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}
}