
# SetFit with sentence-transformers/all-mpnet-base-v2

This is a [SetFit](https://github.com/huggingface/setfit) model that can be used for Text Classification. This SetFit model uses [sentence-transformers/all-mpnet-base-v2](https://huggingface.co/sentence-transformers/all-mpnet-base-v2) as the Sentence Transformer embedding model. A [SetFitHead](huggingface.co/docs/setfit/reference/main#setfit.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](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 body:** [sentence-transformers/all-mpnet-base-v2](https://huggingface.co/sentence-transformers/all-mpnet-base-v2)
- **Classification head:** a [SetFitHead](huggingface.co/docs/setfit/reference/main#setfit.SetFitHead) instance
- **Maximum Sequence Length:** 384 tokens
- **Number of Classes:** 18 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)

## 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("ppsingh/vulnerability")
# Run inference
preds = model("The Ministry of Health notes that any adaptation work should prioritise vulnerable populations. It also considers that more work is needed in health system planning, to accommodate a potential increase in migrants and refugees")
```

<!--
### 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   | 15  | 65.6782 | 238 |

### Training Hyperparameters
- batch_size: (16, 2)
- num_epochs: (1, 0)
- max_steps: -1
- 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.01
- seed: 42
- eval_max_steps: -1
- load_best_model_at_end: False

### Training Results
| Epoch  | Step | Training Loss | Validation Loss |
|:------:|:----:|:-------------:|:---------------:|
| 0.0031 | 1    | 0.1929        | -               |
| 0.1553 | 50   | 0.0842        | 0.1208          |
| 0.3106 | 100  | 0.0988        | 0.1042          |
| 0.4658 | 150  | 0.0589        | 0.0956          |
| 0.6211 | 200  | 0.1382        | 0.096           |
| 0.7764 | 250  | 0.1118        | 0.0992          |
| 0.9317 | 300  | 0.0474        | 0.1026          |

### Framework Versions
- Python: 3.10.12
- SetFit: 1.0.2
- 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": ["accuracy"], "widget": [{"text": "The Ministry of Health notes that any adaptation work should prioritise vulnerable populations. It also considers that more work is needed in health system planning, to accommodate a potential increase in migrants and refugees"}, {"text": "International contribution to the fight against the persecution of people based on their sexual orientation or gender identity, as well as efforts to continue the office of Independent Expert for Sexual Orientation and Gender Identity and to implement the LGBTI guidelines for EU foreign policy (2013)"}, {"text": "The school population in special education institutions and in centers for part-time learning and work will be regarded as socio-economically disadvantaged. Moreover, in its classification, the Brussels Region will take into account the diversity of the educational networks of the Brussels educational institutions."}, {"text": "While there are varied definitions of sustainable livelihoods, Development Alternatives (DA) defines it as encompassing \"activities intended to help economically disadvantaged members of society meet their daily subsistence needs in a manner that is dignified, locally appropriate, and environmentally sustainable."}, {"text": "Climate change increases risks for human health by impacting human settlements. The cities of Nairobi, Kisumu, and Mombasa have concentrated populations, economic activities, and built environments, which increases their risk from flooding, heat waves, and other climate hazards. The most affected populations are the urban poor, who tend to live along river banks, on hillsides and slopes prone to landslides, near polluted grounds, in unstable structures that are vulnerable to collapse during heavy rains, and along waterfronts in coastal areas."}], "pipeline_tag": "text-classification", "inference": false, "base_model": "sentence-transformers/all-mpnet-base-v2"}
setfit safetensors mpnet sentence-transformers text-classification generated_from_setfit_trainer arxiv:2209.11055 base_model:sentence-transformers/all-mpnet-base-v2 region:us