Zero-Shot Classification
PyTorch
Transformers
sentence-transformers
English
zeroshot_classifier
bert
text-classification
Instructions to use claritylab/zero-shot-implicit-binary-bert with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use claritylab/zero-shot-implicit-binary-bert with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("zero-shot-classification", model="claritylab/zero-shot-implicit-binary-bert")# Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("claritylab/zero-shot-implicit-binary-bert") model = AutoModelForSequenceClassification.from_pretrained("claritylab/zero-shot-implicit-binary-bert", device_map="auto") - sentence-transformers
How to use claritylab/zero-shot-implicit-binary-bert with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("claritylab/zero-shot-implicit-binary-bert") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
| library_name: zeroshot_classifier | |
| tags: | |
| - transformers | |
| - sentence-transformers | |
| - zeroshot_classifier | |
| license: mit | |
| datasets: | |
| - claritylab/UTCD | |
| language: | |
| - en | |
| pipeline_tag: zero-shot-classification | |
| metrics: | |
| - accuracy | |
| # Zero-shot Implicit Binary BERT | |
| This is a BERT model. | |
| It was introduced in the Findings of ACL'23 Paper **Label Agnostic Pre-training for Zero-shot Text Classification** by ***Christopher Clarke, Yuzhao Heng, Yiping Kang, Krisztian Flautner, Lingjia Tang and Jason Mars***. | |
| The code for training and evaluating this model can be found [here](https://github.com/ChrisIsKing/zero-shot-text-classification/tree/master). | |
| ## Model description | |
| This model is intended for zero-shot text classification. | |
| It was trained under the binary classification framework via implicit training with the aspect-normalized [UTCD](https://huggingface.co/datasets/claritylab/UTCD) dataset. | |
| - **Finetuned from model:** [`bert-base-uncased`](https://huggingface.co/bert-base-uncased) | |
| ## Usage | |
| Install our [python package](https://pypi.org/project/zeroshot-classifier/): | |
| ```bash | |
| pip install zeroshot-classifier | |
| ``` | |
| Then, you can use the model like this: | |
| ```python | |
| >>> from zeroshot_classifier.models import BinaryBertCrossEncoder | |
| >>> model = BinaryBertCrossEncoder(model_name='claritylab/zero-shot-implicit-binary-bert') | |
| >>> text = "I'd like to have this track onto my Classical Relaxations playlist." | |
| >>> labels = [ | |
| >>> 'Add To Playlist', 'Book Restaurant', 'Get Weather', 'Play Music', 'Rate Book', 'Search Creative Work', | |
| >>> 'Search Screening Event' | |
| >>> ] | |
| >>> aspect = 'intent' | |
| >>> aspect_sep_token = model.tokenizer.additional_special_tokens[0] | |
| >>> text = f'{aspect} {aspect_sep_token} {text}' | |
| >>> query = [[text, lb] for lb in labels] | |
| >>> logits = model.predict(query, apply_softmax=True) | |
| >>> print(logits) | |
| [[7.3497969e-04 9.9926502e-01] | |
| [9.9988127e-01 1.1870124e-04] | |
| [9.9988961e-01 1.1033980e-04] | |
| [1.9227572e-03 9.9807727e-01] | |
| [9.9985313e-01 1.4685343e-04] | |
| [9.9938977e-01 6.1021477e-04] | |
| [9.9838030e-01 1.6197052e-03]] | |
| ``` | |