
# SetFit

This is a [SetFit](https://github.com/huggingface/setfit) model that can be used for Text Classification. A [LogisticRegression](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html) 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](https://www.sbert.net) with contrastive learning.
2. Training a classification head with features from the fine-tuned Sentence Transformer.

## Model Details

### Model Description
- **Model Type:** SetFit
<!-- - **Sentence Transformer:** [Unknown](https://huggingface.co/unknown) -->
- **Classification head:** a [LogisticRegression](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html) instance
- **Maximum Sequence Length:** 512 tokens
- **Number of Classes:** 2 classes
<!-- - **Training Dataset:** [Unknown](https://huggingface.co/datasets/unknown) -->
<!-- - **Language:** Unknown -->
<!-- - **License:** Unknown -->

### Model Sources

- **Repository:** [SetFit on GitHub](https://github.com/huggingface/setfit)
- **Paper:** [Efficient Few-Shot Learning Without Prompts](https://arxiv.org/abs/2209.11055)
- **Blogpost:** [SetFit: Efficient Few-Shot Learning Without Prompts](https://huggingface.co/blog/setfit)

### Model Labels
| Label | Examples                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1.0   | <ul><li>'#ukraine Be careful social media and Google are censoring non-propaganda news story like how Ukrainian defense minister is using video games to give the impression they are defeating the Russians to keep the conflict going ! #biden is warmongering Ceasefire , peace & neutrality NOW HTTPURL'</li><li>'https://t.co/CjSFJmng7Z — Sen. Patrick Leahy (@SenatorLeahy) August 1, 2018\n'</li><li>'On Monday afternoon, Homeland Security Secretary Kirstjen Nielsen tweeted out photos of CBP officers in riot gear as well as the barbed wire and barriers citing the reports about plans to “rush” the border.\n'</li></ul>                                                        |
| 0.0   | <ul><li>'President Trump noted that President Obama and his advisers had information that the Russians had been working to interfere in the election and they ignored it, because they thought Hillary Clinton was going to win.\n'</li><li>'Once the truth is accepted that jihadis are inspired and sanctioned by their Islamic texts, it must logically become required that mosques, Islamic schools and groups have to immediately curtail any teaching that motivates sedition, violence, and hatred of unbelievers (i.e.\n'</li><li>'“However, no nation has a more talented, more dedicated group of law enforcement investigators and prosecutors than the United States.”\n'</li></ul> |

## Evaluation

### Metrics
| Label   | F1     |
|:--------|:-------|
| **all** | 0.6720 |

## Uses

### Direct Use for Inference

First install the SetFit library:

```bash
pip install setfit
```

Then you can load this model and run inference.

```python
from setfit import SetFitModel

# Download from the 🤗 Hub
model = SetFitModel.from_pretrained("anismahmahi/G3-setfit-model")
# Run inference
preds = model("Are you people serious?
")
```

<!--
### Downstream Use

*List how someone could finetune this model on their own dataset.*
-->

<!--
### Out-of-Scope Use

*List how the model may foreseeably be misused and address what users ought not to do with the model.*
-->

<!--
## Bias, Risks and Limitations

*What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
-->

<!--
### Recommendations

*What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
-->

## Training Details

### Training Set Metrics
| Training set | Min | Median  | Max |
|:-------------|:----|:--------|:----|
| Word count   | 1   | 28.3246 | 129 |

| Label | Training Sample Count |
|:------|:----------------------|
| 0     | 2362                  |
| 1     | 2518                  |

### Training Hyperparameters
- batch_size: (16, 16)
- num_epochs: (2, 2)
- max_steps: -1
- sampling_strategy: oversampling
- num_iterations: 5
- 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.0003  | 1        | 0.3302        | -               |
| 0.0164  | 50       | 0.2709        | -               |
| 0.0328  | 100      | 0.2545        | -               |
| 0.0492  | 150      | 0.229         | -               |
| 0.0656  | 200      | 0.2463        | -               |
| 0.0820  | 250      | 0.2934        | -               |
| 0.0984  | 300      | 0.2735        | -               |
| 0.1148  | 350      | 0.2837        | -               |
| 0.1311  | 400      | 0.2364        | -               |
| 0.1475  | 450      | 0.2379        | -               |
| 0.1639  | 500      | 0.188         | -               |
| 0.1803  | 550      | 0.2443        | -               |
| 0.1967  | 600      | 0.1274        | -               |
| 0.2131  | 650      | 0.2106        | -               |
| 0.2295  | 700      | 0.3211        | -               |
| 0.2459  | 750      | 0.2443        | -               |
| 0.2623  | 800      | 0.1979        | -               |
| 0.2787  | 850      | 0.1679        | -               |
| 0.2951  | 900      | 0.1208        | -               |
| 0.3115  | 950      | 0.0594        | -               |
| 0.3279  | 1000     | 0.11          | -               |
| 0.3443  | 1050     | 0.0951        | -               |
| 0.3607  | 1100     | 0.1059        | -               |
| 0.3770  | 1150     | 0.1027        | -               |
| 0.3934  | 1200     | 0.0771        | -               |
| 0.4098  | 1250     | 0.0295        | -               |
| 0.4262  | 1300     | 0.0696        | -               |
| 0.4426  | 1350     | 0.104         | -               |
| 0.4590  | 1400     | 0.13          | -               |
| 0.4754  | 1450     | 0.1287        | -               |
| 0.4918  | 1500     | 0.0264        | -               |
| 0.5082  | 1550     | 0.0651        | -               |
| 0.5246  | 1600     | 0.113         | -               |
| 0.5410  | 1650     | 0.07          | -               |
| 0.5574  | 1700     | 0.0016        | -               |
| 0.5738  | 1750     | 0.1001        | -               |
| 0.5902  | 1800     | 0.0116        | -               |
| 0.6066  | 1850     | 0.01          | -               |
| 0.6230  | 1900     | 0.0115        | -               |
| 0.6393  | 1950     | 0.0053        | -               |
| 0.6557  | 2000     | 0.0585        | -               |
| 0.6721  | 2050     | 0.0034        | -               |
| 0.6885  | 2100     | 0.0171        | -               |
| 0.7049  | 2150     | 0.0141        | -               |
| 0.7213  | 2200     | 0.0549        | -               |
| 0.7377  | 2250     | 0.0026        | -               |
| 0.7541  | 2300     | 0.1239        | -               |
| 0.7705  | 2350     | 0.0121        | -               |
| 0.7869  | 2400     | 0.0589        | -               |
| 0.8033  | 2450     | 0.0042        | -               |
| 0.8197  | 2500     | 0.0026        | -               |
| 0.8361  | 2550     | 0.003         | -               |
| 0.8525  | 2600     | 0.0004        | -               |
| 0.8689  | 2650     | 0.0003        | -               |
| 0.8852  | 2700     | 0.1           | -               |
| 0.9016  | 2750     | 0.0567        | -               |
| 0.9180  | 2800     | 0.0311        | -               |
| 0.9344  | 2850     | 0.0404        | -               |
| 0.9508  | 2900     | 0.0002        | -               |
| 0.9672  | 2950     | 0.0008        | -               |
| 0.9836  | 3000     | 0.0006        | -               |
| **1.0** | **3050** | **0.0003**    | **0.3187**      |
| 1.0164  | 3100     | 0.0003        | -               |
| 1.0328  | 3150     | 0.0002        | -               |
| 1.0492  | 3200     | 0.0002        | -               |
| 1.0656  | 3250     | 0.002         | -               |
| 1.0820  | 3300     | 0.0002        | -               |
| 1.0984  | 3350     | 0.0003        | -               |
| 1.1148  | 3400     | 0.005         | -               |
| 1.1311  | 3450     | 0.0613        | -               |
| 1.1475  | 3500     | 0.0002        | -               |
| 1.1639  | 3550     | 0.0002        | -               |
| 1.1803  | 3600     | 0.0005        | -               |
| 1.1967  | 3650     | 0.0001        | -               |
| 1.2131  | 3700     | 0.0609        | -               |
| 1.2295  | 3750     | 0.0003        | -               |
| 1.2459  | 3800     | 0.0005        | -               |
| 1.2623  | 3850     | 0.0006        | -               |
| 1.2787  | 3900     | 0.0003        | -               |
| 1.2951  | 3950     | 0.0014        | -               |
| 1.3115  | 4000     | 0.0002        | -               |
| 1.3279  | 4050     | 0.0001        | -               |
| 1.3443  | 4100     | 0.0002        | -               |
| 1.3607  | 4150     | 0.001         | -               |
| 1.3770  | 4200     | 0.0004        | -               |
| 1.3934  | 4250     | 0.0004        | -               |
| 1.4098  | 4300     | 0.0002        | -               |
| 1.4262  | 4350     | 0.0612        | -               |
| 1.4426  | 4400     | 0.0613        | -               |
| 1.4590  | 4450     | 0.0002        | -               |
| 1.4754  | 4500     | 0.0603        | -               |
| 1.4918  | 4550     | 0.0001        | -               |
| 1.5082  | 4600     | 0.0011        | -               |
| 1.5246  | 4650     | 0.0576        | -               |
| 1.5410  | 4700     | 0.0001        | -               |
| 1.5574  | 4750     | 0.0002        | -               |
| 1.5738  | 4800     | 0.0002        | -               |
| 1.5902  | 4850     | 0.0012        | -               |
| 1.6066  | 4900     | 0.0003        | -               |
| 1.6230  | 4950     | 0.0001        | -               |
| 1.6393  | 5000     | 0.0001        | -               |
| 1.6557  | 5050     | 0.0001        | -               |
| 1.6721  | 5100     | 0.0001        | -               |
| 1.6885  | 5150     | 0.0001        | -               |
| 1.7049  | 5200     | 0.0002        | -               |
| 1.7213  | 5250     | 0.0001        | -               |
| 1.7377  | 5300     | 0.0002        | -               |
| 1.7541  | 5350     | 0.0001        | -               |
| 1.7705  | 5400     | 0.0001        | -               |
| 1.7869  | 5450     | 0.0001        | -               |
| 1.8033  | 5500     | 0.0001        | -               |
| 1.8197  | 5550     | 0.0003        | -               |
| 1.8361  | 5600     | 0.0001        | -               |
| 1.8525  | 5650     | 0.0001        | -               |
| 1.8689  | 5700     | 0.0001        | -               |
| 1.8852  | 5750     | 0.0001        | -               |
| 1.9016  | 5800     | 0.0002        | -               |
| 1.9180  | 5850     | 0.0           | -               |
| 1.9344  | 5900     | 0.0001        | -               |
| 1.9508  | 5950     | 0.0           | -               |
| 1.9672  | 6000     | 0.0           | -               |
| 1.9836  | 6050     | 0.0001        | -               |
| 2.0     | 6100     | 0.0001        | 0.3313          |

* The bold row denotes the saved checkpoint.
### Framework Versions
- Python: 3.10.12
- SetFit: 1.0.1
- Sentence Transformers: 2.2.2
- Transformers: 4.35.2
- PyTorch: 2.1.0+cu121
- Datasets: 2.16.1
- Tokenizers: 0.15.0

## Citation

### BibTeX
```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}
}
```

<!--
## Glossary

*Clearly define terms in order to be accessible across audiences.*
-->

<!--
## Model Card Authors

*Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
-->

<!--
## Model Card Contact

*Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
-->
{"library_name": "setfit", "tags": ["setfit", "sentence-transformers", "text-classification", "generated_from_setfit_trainer"], "metrics": ["f1"], "widget": [{"text": "The Democratic Party was totally corrupted by the Clinton Regime, and now it is totally insane.\n"}, {"text": "The media gave scant coverage to Obama\u2019s close relationship with radical Reverend Jeremiah \u201cGod damn America) Wright who blamed the US for 9/11.\n"}, {"text": "It\u2019s sharia compliance in New Mexico.\n"}, {"text": "Are you people serious?\n"}, {"text": "However, I ask, why were you not involved in the first place, Mr. President?\n"}], "pipeline_tag": "text-classification", "inference": true, "model-index": [{"name": "SetFit", "results": [{"task": {"type": "text-classification", "name": "Text Classification"}, "dataset": {"name": "Unknown", "type": "unknown", "split": "test"}, "metrics": [{"type": "f1", "value": 0.6720214190093708, "name": "F1"}]}]}]}
setfit safetensors mpnet sentence-transformers text-classification generated_from_setfit_trainer arxiv:2209.11055 model-index region:us