|
--- |
|
|
|
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 |
|
|