Using SetFit with Hugging Face
SetFit is an efficient and prompt-free framework for few-shot fine-tuning of Sentence Transformers. It achieves high accuracy with little labeled data - for instance, with only 8 labeled examples per class on the Customer Reviews sentiment dataset, SetFit is competitive with fine-tuning RoBERTa Large on the full training set of 3k examples 🤯!
Compared to other few-shot learning methods, SetFit has several unique features:
- 🗣 No prompts or verbalizers: Current techniques for few-shot fine-tuning require handcrafted prompts or verbalizers to convert examples into a format suitable for the underlying language model. SetFit dispenses with prompts altogether by generating rich embeddings directly from text examples.
- 🏎 Fast to train: SetFit doesn’t require large-scale models like T0 or GPT-3 to achieve high accuracy. As a result, it is typically an order of magnitude (or more) faster to train and run inference with.
- 🌎 Multilingual support: SetFit can be used with any Sentence Transformer on the Hub, which means you can classify text in multiple languages by simply fine-tuning a multilingual checkpoint.
Exploring SetFit on the Hub
You can find SetFit models by filtering at the left of the models page.
All models on the Hub come with these useful features:
- An automatically generated model card with a brief description.
- An interactive widget you can use to play with the model directly in the browser.
- An Inference API that allows you to make inference requests.
Installation
To get started, you can follow the SetFit installation guide. You can also use the following one-line install through pip:
pip install -U setfit
Using existing models
All setfit
models can easily be loaded from the Hub.
from setfit import SetFitModel
model = SetFitModel.from_pretrained("tomaarsen/setfit-paraphrase-mpnet-base-v2-sst2-8-shot")
Once loaded, you can use SetFitModel.predict
to perform inference.
model.predict("Amelia Earhart flew her single engine Lockheed Vega 5B across the Atlantic to Paris.")
['positive', 'negative']
If you want to load a specific SetFit model, you can click Use in SetFit
and you will be given a working snippet!
Additional resources
- All SetFit models available on the Hub
- SetFit repository
- SetFit docs
- SetFit paper