Bonian's picture
Update README.md
417fcec verified
---
language: de
tags:
- text-classification
- pytorch
- nli
- de
pipeline_tag: zero-shot-classification
widget:
- text: "Ich habe ein Problem mit meinem Iphone das so schnell wie möglich gelöst werden muss."
candidate_labels: "Computer, Handy, Tablet, dringend, nicht dringend"
hypothesis_template: "In diesem Satz geht es um das Thema {}."
---
# SVALabs - Gbert Large Zeroshot Nli
In this repository, we present our German zeroshot classification model.
This model was trained on the basis of the German BERT large model from [deepset.ai](https://huggingface.co/deepset/gbert-large) and finetuned for natural language inference based on 847.862 machine-translated nli sentence pairs, using the [mnli](https://huggingface.co/datasets/multi_nli), [anli](https://huggingface.co/datasets/anli) and [snli](https://huggingface.co/datasets/snli) datasets. For this purpose, we translated the sentence pairs in these datasets to German.
If you are a German speaker you may also have a look at our [Blog post](https://focus.sva.de/zeroshot-klassifikation/) about this model and about Zeroshot Classification.
### Model Details
| | Description or Link |
|---|---|
|**Base model** | [```gbert-large```](https://huggingface.co/deepset/gbert-large) |
|**Finetuning task**| Text Pair Classification / Natural Language Inference |
|**Source datasets**| [```mnli```](https://huggingface.co/datasets/multi_nli); [```anli```](https://huggingface.co/datasets/anli); [```snli```](https://huggingface.co/datasets/snli) |
### Performance
We evaluated our model for the nli task using the TEST set of the German part of the [xnli](https://huggingface.co/datasets/xnli) dataset.
XNLI TEST-Set Accuracy: 85.6%
### Zeroshot Text Classification Task Benchmark
We further tested our model for a zeroshot text classification task using a part of the [10kGNAD Dataset](https://tblock.github.io/10kGNAD/).
Specifically, we used all articles that were labeled "Kultur", "Sport", "Web", "Wirtschaft" and "Wissenschaft".
The next table shows the results as well as a comparison with other German language and multilanguage zeroshot options performing the same task:
| Model | Accuracy |
|:-------------------:|:------:|
| Svalabs/gbert-large-zeroshot-nli | 0.81 |
| Sahajtomar/German_Zeroshot | 0.76 |
| Symanto/xlm-roberta-base-snli-mnli-anli-xnli | 0.16 |
| Deepset/gbert-base | 0.65 |
### How to use
The simplest way to use the model is the huggingface transformers pipeline tool.
Just initialize the pipeline specifying the task as "zero-shot-classification"
and select "svalabs/gbert-large-zeroshot-nli" as model.
The model requires you to specify labels,
a sequence (or list of sequences) to classify and a hypothesis template.
In our tests, if the labels comprise only single words,
"In diesem Satz geht es um das Thema {}" performed the best.
However, for multiple words, especially when they combine nouns and verbs,
simple hypothesis such as "Weil {}" or "Daher {}" may work better.
Here is an example of how to use the model:
```python
from transformers import pipeline
zershot_pipeline = pipeline("zero-shot-classification",
model="svalabs/gbert-large-zeroshot-nli")
sequence = "Ich habe ein Problem mit meinem Iphone das so schnell wie möglich gelöst werden muss"
labels = ["Computer", "Handy", "Tablet", "dringend", "nicht dringend"]
hypothesis_template = "In diesem Satz geht es um das Thema {}."
zershot_pipeline(sequence, labels, hypothesis_template=hypothesis_template)
```
### Contact
- Daniel Ehnes, daniel.ehnes@sva.de
- Baran Avinc, baran.avinc@sva.de