twright8's picture
Push model using huggingface_hub.
7b04920 verified
metadata
library_name: setfit
metrics:
  - f1
  - accuracy
pipeline_tag: text-classification
tags:
  - setfit
  - sentence-transformers
  - text-classification
  - generated_from_setfit_trainer
widget:
  - text: >-
      To make introductions between Camelot's Chairman and the Cabinet
      Secretary. We discussed the operation of the UK National Lottery and how
      to maximise returns to National Lottery Good Causes as well as our plans
      to celebrate the 25th birthday of The National Lottery.
  - text: Discussion on crime
  - text: To discuss Northern Powerhouse Rail and HS2
  - text: To discuss food security
  - text: Electricity market
inference: false
model-index:
  - name: SetFit
    results:
      - task:
          type: text-classification
          name: Text Classification
        dataset:
          name: Unknown
          type: unknown
          split: test
        metrics:
          - type: f1
            value: 0.9056603773584904
            name: F1
          - type: accuracy
            value: 0.9572649572649573
            name: Accuracy

SetFit

This is a SetFit model that can be used for Text Classification. A SetFitHead 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 Type: SetFit
  • Classification head: a SetFitHead instance
  • Maximum Sequence Length: 512 tokens
  • Number of Classes: 4 classes

Model Sources

Evaluation

Metrics

Label F1 Accuracy
all 0.9057 0.9573

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("twright8/setfit-oversample-labels-lobbying")
# Run inference
preds = model("Electricity market")

Training Details

Training Set Metrics

Training set Min Median Max
Word count 2 21.5644 153

Training Hyperparameters

  • batch_size: (16, 2)
  • num_epochs: (6, 9)
  • max_steps: -1
  • sampling_strategy: oversampling
  • body_learning_rate: (7.928034854554858e-06, 2.7001088851580374e-05)
  • head_learning_rate: 0.009321171293151879
  • loss: CoSENTLoss
  • distance_metric: cosine_distance
  • margin: 0.25
  • end_to_end: True
  • 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.0018 1 8.669 -
0.0880 50 8.6617 -
0.1761 100 12.5549 -
0.2641 150 3.1895 -
0.3521 200 16.3181 -
0.4401 250 0.7513 -
0.5282 300 4.6653 -
0.0018 1 0.0059 -
0.0880 50 3.4564 -
0.1761 100 0.5523 -
0.2641 150 0.2372 -
0.3521 200 4.288 -
0.4401 250 0.0027 -
0.5282 300 0.0002 -
0.6162 350 0.0002 -
0.7042 400 0.0001 -
0.7923 450 0.0015 -
0.8803 500 3.5596 -
0.9683 550 0.0 -
1.0 568 - 10.2261
1.0563 600 0.0 -
1.1444 650 0.0011 -
1.2324 700 0.0013 -
1.3204 750 0.0037 -
1.4085 800 0.0013 -
1.4965 850 0.0002 -
1.5845 900 0.0 -
1.6725 950 0.0 -
1.7606 1000 0.0001 -
1.8486 1050 0.0001 -
1.9366 1100 0.0001 -
2.0 1136 - 8.4908
2.0246 1150 0.0001 -
2.1127 1200 0.0 -
2.2007 1250 0.0005 -
2.2887 1300 0.0004 -
2.3768 1350 0.0 -
2.4648 1400 0.0009 -
2.5528 1450 0.0 -
2.6408 1500 0.0 -
2.7289 1550 0.0 -
2.8169 1600 0.0 -
2.9049 1650 0.0001 -
2.9930 1700 0.0003 -
3.0 1704 - 8.5594
3.0810 1750 0.0001 -
3.1690 1800 0.0 -
3.2570 1850 0.0002 -
3.3451 1900 0.0001 -
3.4331 1950 0.0 -
3.5211 2000 0.0 -
3.6092 2050 0.0 -
3.6972 2100 0.0 -
3.7852 2150 0.0 -
3.8732 2200 0.0002 -
3.9613 2250 0.0001 -
4.0 2272 - 8.4573
4.0493 2300 0.0 -
4.1373 2350 0.0 -
4.2254 2400 0.0002 -
4.3134 2450 0.0 -
4.4014 2500 0.0003 -
4.4894 2550 0.0001 -
4.5775 2600 0.0001 -
4.6655 2650 0.0001 -
4.7535 2700 0.0001 -
4.8415 2750 0.0001 -
4.9296 2800 0.0012 -
5.0 2840 - 8.6305
5.0176 2850 0.0009 -
5.1056 2900 0.0 -
5.1937 2950 0.0001 -
5.2817 3000 0.0 -
5.3697 3050 0.0 -
5.4577 3100 0.0001 -
5.5458 3150 0.0007 -
5.6338 3200 0.0002 -
5.7218 3250 0.0 -
5.8099 3300 0.0001 -
5.8979 3350 0.0002 -
5.9859 3400 0.0 -
6.0 3408 - 8.9528
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • SetFit: 1.0.3
  • Sentence Transformers: 3.0.1
  • Transformers: 4.39.0
  • PyTorch: 2.3.1+cu118
  • 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}
}