reecursion's picture
Add SetFit model
2d3c89e verified
metadata
library_name: setfit
tags:
  - setfit
  - sentence-transformers
  - text-classification
  - generated_from_setfit_trainer
metrics:
  - accuracy
widget:
  - text: >-
      He is Male, his heart rate is 148, he walks 10000 steps daily, and is
      Normal. He slept at 1 hrs. Yesterday, he slept from 2.0hrs to 3.0 hrs,
      with a duration of 90.0 minutes and 0 interruptions. The day before
      yesterday, he slept from 22.0 hrs to 6.0 hrs, with a duration of 485.0
      minutes and 0 interruptions.
  - text: >-
      She is Female, her heart rate is 68, she walks 11000 steps daily and is
      Normal. She slept at 1 hrs. Yesterday, she slept from 1.0 hrs to 9.0 hrs,
      with a duration of 495.0 minutes and 0 interruptions. The day before
      yesterday, she slept from 1.0 hrs to 10.0 hrs, with a duration of 540.0
      minutes and 0 interruptions.
  - text: >-
      He is Male, his heart rate is 70, he walks 8500 steps daily, and is
      Normal. He slept at 23 hrs. Yesterday, he slept from 23.0hrs to 8.0 hrs,
      with a duration of 350.0 minutes and 3 interruptions. The day before
      yesterday, he slept from 22.0 hrs to 6.0 hrs, with a duration of 390.0
      minutes and 1 interruptions.
  - text: >-
      He is Male, his heart rate is 93, he walks 9800 steps daily, and is
      Normal. He slept at 0 hrs. Yesterday, he slept from 23.0hrs to 7.0 hrs,
      with a duration of 460.0 minutes and 0 interruptions. The day before
      yesterday, he slept from 23.0 hrs to 7.0 hrs, with a duration of 425.0
      minutes and 1 interruptions.
  - text: >-
      He is Male, his heart rate is 75, he walks 11000 steps daily, and is
      Normal. He slept at 2 hrs. Yesterday, he slept from 3.0hrs to 7.0 hrs,
      with a duration of 400.0 minutes and 2 interruptions. The day before
      yesterday, he slept from 1.0 hrs to 8.0 hrs, with a duration of 450.0
      minutes and 3 interruptions.
pipeline_tag: text-classification
inference: true
base_model: sentence-transformers/paraphrase-mpnet-base-v2
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: accuracy
            value: 0.8
            name: Accuracy

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

Label Examples
1
  • 'He is Male, his heart rate is 64, he walks 10000 steps daily, and is Normal. He slept at 11 hrs. Yesterday, he slept from 22.0hrs to 11.0 hrs, with a duration of 765.0 minutes and 2 interruptions. The day before yesterday, he slept from 23.0 hrs to 8.0 hrs, with a duration of 527.0 minutes and 4 interruptions.'
  • 'She is Female, her heart rate is 89, she walks 3873 steps daily and is Overweight. She slept at 10 hrs. Yesterday, she slept from 4.0 hrs to 6.0 hrs, with a duration of 120.0 minutes and 1 interruptions. The day before yesterday, she slept from 4.0 hrs to 9.0 hrs, with a duration of 300.0 minutes and 2 interruptions.'
  • 'She is Female, her heart rate is 68, she walks 11000 steps daily and is Normal. She slept at 10 hrs. Yesterday, she slept from 1.0 hrs to 9.0 hrs, with a duration of 495.0 minutes and 0 interruptions. The day before yesterday, she slept from 1.0 hrs to 10.0 hrs, with a duration of 540.0 minutes and 1 interruptions.'
2
  • 'She is Female, her heart rate is 66, she walks 2413 steps daily and is Underweight. She slept at 8 hrs. Yesterday, she slept from 23.0 hrs to 7.0 hrs, with a duration of 472.0 minutes and 5 interruptions. The day before yesterday, she slept from 23.0 hrs to 5.0 hrs, with a duration of 344.0 minutes and 6 interruptions.'
  • 'He is Male, his heart rate is 95, he walks 9000 steps daily, and is Normal. He slept at 10 hrs. Yesterday, he slept from 4.0hrs to 9.0 hrs, with a duration of 323.0 minutes and 5 interruptions. The day before yesterday, he slept from 2.0 hrs to 10.0 hrs, with a duration of 501.0 minutes and 6 interruptions.'
0
  • 'She is Female, her heart rate is 100, she walks 8000 steps daily and is Normal. She slept at 7 hrs. Yesterday, she slept from 2.0 hrs to 7.0 hrs, with a duration of 323.0 minutes and 0 interruptions. The day before yesterday, she slept from 0.0 hrs to 6.0 hrs, with a duration of 395.0 minutes and 2 interruptions.'
  • 'He is Male, his heart rate is 93, he walks 9800 steps daily, and is Normal. He slept at 9 hrs. Yesterday, he slept from 23.0hrs to 7.0 hrs, with a duration of 460.0 minutes and 0 interruptions. The day before yesterday, he slept from 23.0 hrs to 7.0 hrs, with a duration of 425.0 minutes and 1 interruptions.'

Evaluation

Metrics

Label Accuracy
all 0.8

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("reecursion/few-shot-stress-detection")
# Run inference
preds = model("He is Male, his heart rate is 75, he walks 11000 steps daily, and is Normal. He slept at 2 hrs. Yesterday, he slept from 3.0hrs to 7.0 hrs, with a duration of 400.0 minutes and 2 interruptions. The day before yesterday, he slept from 1.0 hrs to 8.0 hrs, with a duration of 450.0 minutes and 3 interruptions.")

Training Details

Training Set Metrics

Training set Min Median Max
Word count 59 59.5 60
Label Training Sample Count
0 2
1 6
2 2

Training Hyperparameters

  • batch_size: (16, 16)
  • num_epochs: (1, 1)
  • max_steps: -1
  • sampling_strategy: oversampling
  • num_iterations: 15
  • body_learning_rate: (2e-05, 2e-05)
  • head_learning_rate: 2e-05
  • 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: False

Training Results

Epoch Step Training Loss Validation Loss
0.0526 1 0.4337 -

Framework Versions

  • Python: 3.10.12
  • SetFit: 1.0.3
  • Sentence Transformers: 2.6.1
  • Transformers: 4.38.2
  • PyTorch: 2.2.1+cu121
  • Datasets: 2.18.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}
}