Spaces:
Sleeping
Sleeping
allows to read tabs from yaml
Browse files- app.py +4 -39
- resources/{gbert_interface.yml β interfaces/gbert_interface.yml} +4 -4
- resources/{gpt2_interface.yml β interfaces/gpt2_interface.yml} +6 -6
- resources/{legal_german_roberta_interface.yml β interfaces/legal_german_roberta_interface.yml} +10 -10
- resources/{ner_interface.yml β interfaces/ner_interface.yml} +6 -7
- resources/{qa_interface.yml β interfaces/qa_interface.yml} +14 -14
- resources/{simplification_interface.yml β interfaces/simplification_interface.yml} +3 -3
- resources/{summarization_interface.yml β interfaces/summarization_interface.yml} +5 -6
- resources/{zero_shot_interface.yml β interfaces/zero_shot_interface.yml} +25 -25
- resources/tabs/app_tab.yml +9 -0
- resources/tabs/legal_tab.yml +4 -0
- resources/{template_interface.yml β templates/template_interface.yml} +2 -2
- resources/templates/template_tab.yml +3 -0
- src/nlp_circle_demo/__pycache__/interface.cpython-310.pyc +0 -0
- src/nlp_circle_demo/{interface.py β wrapped_gradio_objects.py} +29 -4
app.py
CHANGED
@@ -1,40 +1,5 @@
|
|
1 |
-
|
2 |
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
robertaGer = GradioInterfaceWrapper.from_yaml(
|
7 |
-
"resources/legal_german_roberta_interface.yml"
|
8 |
-
)
|
9 |
-
gbert = GradioInterfaceWrapper.from_yaml("resources/gbert_interface.yml")
|
10 |
-
|
11 |
-
legalInterface = GradioTabWrapper.from_interface_list("Legal", [robertaGer, gbert])
|
12 |
-
|
13 |
-
|
14 |
-
ner = GradioInterfaceWrapper.from_yaml("resources/ner_interface.yml")
|
15 |
-
|
16 |
-
zeroShot = GradioInterfaceWrapper.from_yaml("resources/zero_shot_interface.yml")
|
17 |
-
|
18 |
-
qaInterface = GradioInterfaceWrapper.from_yaml("resources/qa_interface.yml")
|
19 |
-
simplicationInterface = GradioInterfaceWrapper.from_yaml(
|
20 |
-
"resources/simplification_interface.yml"
|
21 |
-
)
|
22 |
-
gptInterface = GradioInterfaceWrapper.from_yaml("resources/gpt2_interface.yml")
|
23 |
-
summarizationInterface = GradioInterfaceWrapper.from_yaml(
|
24 |
-
"resources/summarization_interface.yml"
|
25 |
-
)
|
26 |
-
|
27 |
-
|
28 |
-
demo = GradioTabWrapper.from_interface_list(
|
29 |
-
"NLP Demo-Seite",
|
30 |
-
[
|
31 |
-
gptInterface,
|
32 |
-
legalInterface,
|
33 |
-
qaInterface,
|
34 |
-
summarizationInterface,
|
35 |
-
simplicationInterface,
|
36 |
-
ner,
|
37 |
-
zeroShot,
|
38 |
-
],
|
39 |
-
)
|
40 |
-
demo.launch()
|
|
|
1 |
+
from nlp_circle_demo.wrapped_gradio_objects import GradioTabWrapper
|
2 |
|
3 |
+
if __name__ == "__main__":
|
4 |
+
demo = GradioTabWrapper.from_yaml("resources/tabs/app_tab.yml")
|
5 |
+
demo.launch()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resources/{gbert_interface.yml β interfaces/gbert_interface.yml}
RENAMED
@@ -1,12 +1,12 @@
|
|
1 |
title: German BERT
|
2 |
name: huggingface/deepset/gbert-large
|
3 |
-
description: >
|
4 |
Hier zeigen wir ein Vergleichsmodell, welches ebenfalls maskierte WΓΆrter (hier mit dem Stichwort [Mask]) zu erraten
|
5 |
versucht. Dieses Modell wurde allerdings nicht auf rechtliche Sprache spezialisiert, weshalb die prognostizierten
|
6 |
WΓΆrter deutlich weniger spezifisch sind. Beide Modelle haben 354 Millionen Parameter.
|
7 |
examples:
|
8 |
# This is how we can do nested lists
|
9 |
-
- >
|
10 |
-
Die BeschwerdefΓΌhrerin rΓΌgt sodann eine Verletzung des VerhΓ€ltnismΓ€ssigkeitsprinzips. Sie ist der
|
11 |
-
Auffassung, dass die PublikationstΓ€tigkeit der WEKO den Grundsatz der [MASK] gemΓ€ss Art. 5 Abs. 2
|
12 |
und Art. 36 BV wahren mΓΌsse.
|
|
|
1 |
title: German BERT
|
2 |
name: huggingface/deepset/gbert-large
|
3 |
+
description: >
|
4 |
Hier zeigen wir ein Vergleichsmodell, welches ebenfalls maskierte WΓΆrter (hier mit dem Stichwort [Mask]) zu erraten
|
5 |
versucht. Dieses Modell wurde allerdings nicht auf rechtliche Sprache spezialisiert, weshalb die prognostizierten
|
6 |
WΓΆrter deutlich weniger spezifisch sind. Beide Modelle haben 354 Millionen Parameter.
|
7 |
examples:
|
8 |
# This is how we can do nested lists
|
9 |
+
- >
|
10 |
+
Die BeschwerdefΓΌhrerin rΓΌgt sodann eine Verletzung des VerhΓ€ltnismΓ€ssigkeitsprinzips. Sie ist der
|
11 |
+
Auffassung, dass die PublikationstΓ€tigkeit der WEKO den Grundsatz der [MASK] gemΓ€ss Art. 5 Abs. 2
|
12 |
und Art. 36 BV wahren mΓΌsse.
|
resources/{gpt2_interface.yml β interfaces/gpt2_interface.yml}
RENAMED
@@ -1,11 +1,11 @@
|
|
1 |
title: GPT2 # will be used as tab title and for the link.
|
2 |
name: huggingface/gpt2 # path to model
|
3 |
-
description: >
|
4 |
-
GPT-3.5, auf dem ChatGPT beruht. Das Modell vervollstΓ€ndigt eingegebene Texte, in dem
|
5 |
-
es immer ein wahrscheinliches nΓ€chstes Wort voraussagt. Allerdings hat es auch einen
|
6 |
-
kleinen Zufallsfaktor, damit der gleiche Input nicht immer das gleiche Resultat liefern.
|
7 |
-
Das hier vorgestellte deutschsprachige GPT-2 Modell hat 124 Millionen Parameter, ist also
|
8 |
1400x kleiner als ChatGPT - und somit auch erkennbar schlechter in der Textgenerierung.
|
9 |
examples:
|
10 |
- Paris is the capital of
|
11 |
-
- Auf Deutsch funktioniert das Modell deutlich
|
|
|
1 |
title: GPT2 # will be used as tab title and for the link.
|
2 |
name: huggingface/gpt2 # path to model
|
3 |
+
description: >
|
4 |
+
GPT-3.5, auf dem ChatGPT beruht. Das Modell vervollstΓ€ndigt eingegebene Texte, in dem
|
5 |
+
es immer ein wahrscheinliches nΓ€chstes Wort voraussagt. Allerdings hat es auch einen
|
6 |
+
kleinen Zufallsfaktor, damit der gleiche Input nicht immer das gleiche Resultat liefern.
|
7 |
+
Das hier vorgestellte deutschsprachige GPT-2 Modell hat 124 Millionen Parameter, ist also
|
8 |
1400x kleiner als ChatGPT - und somit auch erkennbar schlechter in der Textgenerierung.
|
9 |
examples:
|
10 |
- Paris is the capital of
|
11 |
+
- Auf Deutsch funktioniert das Modell deutlich
|
resources/{legal_german_roberta_interface.yml β interfaces/legal_german_roberta_interface.yml}
RENAMED
@@ -1,16 +1,16 @@
|
|
1 |
title: Legal German RoBERTa
|
2 |
name: huggingface/joelito/legal-german-roberta-large
|
3 |
-
description: >
|
4 |
-
Hier zeigen wir ein Modell, welches an unserem Institut darauf vortrainiert wurde, die rechtliche Sprache
|
5 |
-
besser zu verstehen. Dabei wird in einem Text immer ein Wort (mit dem Stichwort <mask>) maskiert, und das
|
6 |
-
Modell muss das fehlende Wort voraussagen. Dadurch, dass das Modell auf die rechtliche Sprache spezifiziert
|
7 |
-
wurde, sind die Voraussagen deutlich besser, wie das nachfolgende Beispiel zeigt (BGE 142 II 268 S. 271,
|
8 |
-
ErwΓ€gung 4.1): Unser spezialisiertes Modell gibt richtigerweise das Wort βVerhΓ€ltnismΓ€ssigkeitβ aus, wΓ€hrend
|
9 |
-
ein generisches Modell (im anderen Tab) deutlich allgemeinere WΓΆrter wie Freiheit, Demokratie oder Γffentlichkeit
|
10 |
voraussagt. Beide Modelle haben 354 Millionen Parameter.
|
11 |
examples:
|
12 |
# This is how we can do nested lists
|
13 |
-
- >
|
14 |
-
Die BeschwerdefΓΌhrerin rΓΌgt sodann eine Verletzung des VerhΓ€ltnismΓ€ssigkeitsprinzips. Sie ist der
|
15 |
-
Auffassung, dass die PublikationstΓ€tigkeit der WEKO den Grundsatz der <mask> gemΓ€ss Art. 5 Abs. 2
|
16 |
und Art. 36 BV wahren mΓΌsse.
|
|
|
1 |
title: Legal German RoBERTa
|
2 |
name: huggingface/joelito/legal-german-roberta-large
|
3 |
+
description: >
|
4 |
+
Hier zeigen wir ein Modell, welches an unserem Institut darauf vortrainiert wurde, die rechtliche Sprache
|
5 |
+
besser zu verstehen. Dabei wird in einem Text immer ein Wort (mit dem Stichwort <mask>) maskiert, und das
|
6 |
+
Modell muss das fehlende Wort voraussagen. Dadurch, dass das Modell auf die rechtliche Sprache spezifiziert
|
7 |
+
wurde, sind die Voraussagen deutlich besser, wie das nachfolgende Beispiel zeigt (BGE 142 II 268 S. 271,
|
8 |
+
ErwΓ€gung 4.1): Unser spezialisiertes Modell gibt richtigerweise das Wort βVerhΓ€ltnismΓ€ssigkeitβ aus, wΓ€hrend
|
9 |
+
ein generisches Modell (im anderen Tab) deutlich allgemeinere WΓΆrter wie Freiheit, Demokratie oder Γffentlichkeit
|
10 |
voraussagt. Beide Modelle haben 354 Millionen Parameter.
|
11 |
examples:
|
12 |
# This is how we can do nested lists
|
13 |
+
- >
|
14 |
+
Die BeschwerdefΓΌhrerin rΓΌgt sodann eine Verletzung des VerhΓ€ltnismΓ€ssigkeitsprinzips. Sie ist der
|
15 |
+
Auffassung, dass die PublikationstΓ€tigkeit der WEKO den Grundsatz der <mask> gemΓ€ss Art. 5 Abs. 2
|
16 |
und Art. 36 BV wahren mΓΌsse.
|
resources/{ner_interface.yml β interfaces/ner_interface.yml}
RENAMED
@@ -1,14 +1,13 @@
|
|
1 |
title: Named Entity Recognition # will be used as tab title and for the link.
|
2 |
name: huggingface/harshildarji/gbert-legal-ner # path to model
|
3 |
description: >
|
4 |
-
Bei dieser Aufgabe geht es darum, automatisch Eigennamen oder EntitΓ€ten, engl. named entities,
|
5 |
-
in einem Text zu erkennen und einer Klasse zuzuordnen. So wΓ€re beispielsweise Max Mustermann ein
|
6 |
-
Eigenname der Klasse Person; Berner Fachhochschule wΓ€re ein Eigenname der Klasse Organisation. Das
|
7 |
-
hier verwendete Beispielmodell wurde auf juristische Texte des Deutschen trainiert und erkennt
|
8 |
-
Eigennamen, die fΓΌr die juristischen DomΓ€ne relevant sind, wie zum Beispiel Lawyer (= Anwalt) oder
|
9 |
Law (=Gesetz).'
|
10 |
examples:
|
11 |
- >
|
12 |
-
1. Das Bundesarbeitsgericht ist gemÀà § 9 Abs. 2 Satz 2 ArbGG iVm. § 201 Abs. 1 Satz 2 GVG für
|
13 |
die beabsichtigte Klage gegen den Bund zustΓ€ndig.
|
14 |
-
|
|
|
1 |
title: Named Entity Recognition # will be used as tab title and for the link.
|
2 |
name: huggingface/harshildarji/gbert-legal-ner # path to model
|
3 |
description: >
|
4 |
+
Bei dieser Aufgabe geht es darum, automatisch Eigennamen oder EntitΓ€ten, engl. named entities,
|
5 |
+
in einem Text zu erkennen und einer Klasse zuzuordnen. So wΓ€re beispielsweise Max Mustermann ein
|
6 |
+
Eigenname der Klasse Person; Berner Fachhochschule wΓ€re ein Eigenname der Klasse Organisation. Das
|
7 |
+
hier verwendete Beispielmodell wurde auf juristische Texte des Deutschen trainiert und erkennt
|
8 |
+
Eigennamen, die fΓΌr die juristischen DomΓ€ne relevant sind, wie zum Beispiel Lawyer (= Anwalt) oder
|
9 |
Law (=Gesetz).'
|
10 |
examples:
|
11 |
- >
|
12 |
+
1. Das Bundesarbeitsgericht ist gemÀà § 9 Abs. 2 Satz 2 ArbGG iVm. § 201 Abs. 1 Satz 2 GVG für
|
13 |
die beabsichtigte Klage gegen den Bund zustΓ€ndig.
|
|
resources/{qa_interface.yml β interfaces/qa_interface.yml}
RENAMED
@@ -1,24 +1,24 @@
|
|
1 |
title: Question Answering
|
2 |
name: huggingface/deepset/gelectra-large-germanquad
|
3 |
description: >
|
4 |
-
Dieses deutschsprachige Modell wurde darauf spezialisiert, in einem Text die Antwort auf eine
|
5 |
-
gestellte Frage zu finden. Es basiert auf XLM-RoBERTa, einem mehrsprachigen Modell mit 270
|
6 |
Millionen Parameter.
|
7 |
examples:
|
8 |
-
-
|
9 |
- Mein Name ist Wolfgang und ich lebe in Berlin
|
10 |
- Wo wohne ich?
|
11 |
-
-
|
12 |
- >
|
13 |
-
Der Amazonas-Regenwald, auf Englisch auch als Amazonien oder Amazonas-Dschungel bekannt,
|
14 |
-
ist ein feuchter Laubwald, der den grΓΆΓten Teil des Amazonas-Beckens SΓΌdamerikas bedeckt.
|
15 |
-
Dieses Becken umfasst 7.000.000 Quadratkilometer (2.700.000 Quadratmeilen), von denen
|
16 |
-
5.500.000 Quadratkilometer (2.100.000 Quadratmeilen) vom Regenwald bedeckt sind. Diese
|
17 |
-
Region umfasst Gebiete von neun Nationen. Der grΓΆΓte Teil des Waldes befindet sich in
|
18 |
-
Brasilien mit 60% des Regenwaldes, gefolgt von Peru mit 13%, Kolumbien mit 10% und geringen
|
19 |
-
Mengen in Venezuela, Ecuador, Bolivien, Guyana, Suriname und FranzΓΆsisch-Guayana. Staaten
|
20 |
-
oder Abteilungen in vier Nationen enthalten \"Amazonas\" in ihren Namen. Der Amazonas
|
21 |
-
reprΓ€sentiert mehr als die HΓ€lfte der verbleibenden RegenwΓ€lder des Planeten und umfasst
|
22 |
-
den grΓΆΓten und artenreichsten tropischen Regenwald der Welt mit geschΓ€tzten 390 Milliarden
|
23 |
EinzelbΓ€umen, die in 16.000 Arten unterteilt sind.
|
24 |
- Welcher Name wird auch verwendet, um den Amazonas-Regenwald auf Englisch zu beschreiben?
|
|
|
1 |
title: Question Answering
|
2 |
name: huggingface/deepset/gelectra-large-germanquad
|
3 |
description: >
|
4 |
+
Dieses deutschsprachige Modell wurde darauf spezialisiert, in einem Text die Antwort auf eine
|
5 |
+
gestellte Frage zu finden. Es basiert auf XLM-RoBERTa, einem mehrsprachigen Modell mit 270
|
6 |
Millionen Parameter.
|
7 |
examples:
|
8 |
+
-
|
9 |
- Mein Name ist Wolfgang und ich lebe in Berlin
|
10 |
- Wo wohne ich?
|
11 |
+
-
|
12 |
- >
|
13 |
+
Der Amazonas-Regenwald, auf Englisch auch als Amazonien oder Amazonas-Dschungel bekannt,
|
14 |
+
ist ein feuchter Laubwald, der den grΓΆΓten Teil des Amazonas-Beckens SΓΌdamerikas bedeckt.
|
15 |
+
Dieses Becken umfasst 7.000.000 Quadratkilometer (2.700.000 Quadratmeilen), von denen
|
16 |
+
5.500.000 Quadratkilometer (2.100.000 Quadratmeilen) vom Regenwald bedeckt sind. Diese
|
17 |
+
Region umfasst Gebiete von neun Nationen. Der grΓΆΓte Teil des Waldes befindet sich in
|
18 |
+
Brasilien mit 60% des Regenwaldes, gefolgt von Peru mit 13%, Kolumbien mit 10% und geringen
|
19 |
+
Mengen in Venezuela, Ecuador, Bolivien, Guyana, Suriname und FranzΓΆsisch-Guayana. Staaten
|
20 |
+
oder Abteilungen in vier Nationen enthalten \"Amazonas\" in ihren Namen. Der Amazonas
|
21 |
+
reprΓ€sentiert mehr als die HΓ€lfte der verbleibenden RegenwΓ€lder des Planeten und umfasst
|
22 |
+
den grΓΆΓten und artenreichsten tropischen Regenwald der Welt mit geschΓ€tzten 390 Milliarden
|
23 |
EinzelbΓ€umen, die in 16.000 Arten unterteilt sind.
|
24 |
- Welcher Name wird auch verwendet, um den Amazonas-Regenwald auf Englisch zu beschreiben?
|
resources/{simplification_interface.yml β interfaces/simplification_interface.yml}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
title: Text-Vereinfachung # will be used as tab title and for the link.
|
2 |
name: huggingface/haining/scientific_abstract_simplification # path to model
|
3 |
description: > # Adding > here allows multiline strings
|
4 |
-
Bei dieser Aufgabe geht es darum, komplexe Sachverhalte einfach zu erklΓ€ren. Dieses Beispielmodell kann die
|
5 |
-
Abstracts von wissenschaftlichen Publikationen so vereinfachen, dass sie auch fΓΌr Laien verstΓ€ndlich werden.
|
6 |
-
Γhnliche Methoden kΓΆnnten verwendet werden, um beispielsweise Schweizer Rechtstexte zu vereinfachen. Dieses
|
7 |
Modell funktioniert nur auf Englisch.
|
|
|
1 |
title: Text-Vereinfachung # will be used as tab title and for the link.
|
2 |
name: huggingface/haining/scientific_abstract_simplification # path to model
|
3 |
description: > # Adding > here allows multiline strings
|
4 |
+
Bei dieser Aufgabe geht es darum, komplexe Sachverhalte einfach zu erklΓ€ren. Dieses Beispielmodell kann die
|
5 |
+
Abstracts von wissenschaftlichen Publikationen so vereinfachen, dass sie auch fΓΌr Laien verstΓ€ndlich werden.
|
6 |
+
Γhnliche Methoden kΓΆnnten verwendet werden, um beispielsweise Schweizer Rechtstexte zu vereinfachen. Dieses
|
7 |
Modell funktioniert nur auf Englisch.
|
resources/{summarization_interface.yml β interfaces/summarization_interface.yml}
RENAMED
@@ -1,14 +1,13 @@
|
|
1 |
title: Text-Zusammenfassung # will be used as tab title and for the link.
|
2 |
name: huggingface/Einmalumdiewelt/T5-Base_GNAD # path to model
|
3 |
description: >
|
4 |
-
Hier wurde ein sogenanntes T5-Sprachmodell auf den Task der Text-Zusammenfassung
|
5 |
spezialisiert. Das Modell versteht nur Deutsch und hat 220 Millionen Parameter.
|
6 |
examples:
|
7 |
# TODO: Hier ein deutsches Beispiel
|
8 |
- >
|
9 |
-
Paris is the capital and most populous city of France, with an estimated population
|
10 |
-
of 2,175,601 residents as of 2018, in an area of more than 105 square kilometres
|
11 |
-
(41 square miles). The City of Paris is the centre and seat of government of the region
|
12 |
-
and province of Γle-de-France, or Paris Region, which has an estimated population of
|
13 |
12,174,880, or about 18 percent of the population of France as of 2017.
|
14 |
-
|
|
|
1 |
title: Text-Zusammenfassung # will be used as tab title and for the link.
|
2 |
name: huggingface/Einmalumdiewelt/T5-Base_GNAD # path to model
|
3 |
description: >
|
4 |
+
Hier wurde ein sogenanntes T5-Sprachmodell auf den Task der Text-Zusammenfassung
|
5 |
spezialisiert. Das Modell versteht nur Deutsch und hat 220 Millionen Parameter.
|
6 |
examples:
|
7 |
# TODO: Hier ein deutsches Beispiel
|
8 |
- >
|
9 |
+
Paris is the capital and most populous city of France, with an estimated population
|
10 |
+
of 2,175,601 residents as of 2018, in an area of more than 105 square kilometres
|
11 |
+
(41 square miles). The City of Paris is the centre and seat of government of the region
|
12 |
+
and province of Γle-de-France, or Paris Region, which has an estimated population of
|
13 |
12,174,880, or about 18 percent of the population of France as of 2017.
|
|
resources/{zero_shot_interface.yml β interfaces/zero_shot_interface.yml}
RENAMED
@@ -1,44 +1,44 @@
|
|
1 |
title: Zero-Shot Interface
|
2 |
name: huggingface/Sahajtomar/German_Zeroshot
|
3 |
description: >
|
4 |
-
Bei dieser Aufgabe handelt es sich um eine Textklassifizierungsaufgabe. Das heiΓt, das Modell
|
5 |
-
bekommt einen Textinhalt vorgelegt und muss aus einer Liste vordefinierter Labels entscheiden,
|
6 |
-
welches dieser Labels den Inhalt des Textes am besten beschreibt. Der Krux bei der ganzen Sache ist,
|
7 |
-
dass das Modell keine Spezialisierung fΓΌr die Labels erfahren hat und sozusagen beim ersten Mal die
|
8 |
-
richtige Auswahl treffen muss; daher zero shot, denn es hat nur einen Versuch. Erreicht wird dies, in
|
9 |
-
dem ein vortrainiertes Modell auf einen Datensatz fΓΌr Natural Language Inference (dt. natΓΌrlichsprachliche
|
10 |
-
Inferenz oder RΓΌckschluss auf natΓΌrliche Sprache) spezialisiert wird. Bei dieser Aufgabe bekommt
|
11 |
-
das Modell zwei Texte vorgelegt und muss lernen, in welchem VerhΓ€ltnis die beiden Texte zueinanderstehen.
|
12 |
-
Folgende Klassen stehen dabei zur Auswahl:
|
13 |
<ul>
|
14 |
<li>entailment: Text A ist eine logische Schlussfolgerung von Text B</li>
|
15 |
<li>contradiction: Text A steht im Widerspruch zu Text B</li>
|
16 |
<li>neutral: es lassen sich keine Schlussfolgerungen dieser Art ziehen</li>
|
17 |
</ul>
|
18 |
</br></br>
|
19 |
-
Nehmen wir als Beispiel den Ausgangstext Β«Die Kinder lΓ€cheln und winken in die KameraΒ». Nach der Spezialisierung
|
20 |
-
sollte das Modell in der Lage sein zu sagen, dass die Aussage Β«Es sind Kinder anwesend.Β» eine logische
|
21 |
-
Schlussfolgerung des Ausgangstextes ist, wΓ€hrend die Aussage Β«Die Kinder runzeln die Stirn.Β» im Widerspruch
|
22 |
zum Ausgangstext steht.
|
23 |
</br></br>
|
24 |
-
Es hat sich gezeigt, dass Modelle, die auf Natural Language Inference spezialisiert wurden, auch sehr gut darin sind,
|
25 |
-
Texten thematisch passende Labels zuzuordnen. Wenn wir wieder den Ausgangstext von vorhin nehmen, wΓ€re das Modell in
|
26 |
-
der Lage zu sagen, dass von den mΓΆglichen Kandidatenlabels [Wirtschaft, Familie, Feier, TragΓΆdie] Familie und Feier
|
27 |
-
diejenigen Labels sind, die den Inhalt des Textes am besten beschreiben.</br></br>Das hier verwendete Beispielmodell
|
28 |
wurde auf deutschsprachige Texte trainiert.
|
29 |
examples:
|
30 |
-
|
31 |
- >
|
32 |
-
COVID-19 (Akronym von englisch coronavirus disease 2019, deutsch Coronavirus-Krankheit-2019), in den
|
33 |
-
deutschsprachigen LΓ€ndern umgangssprachlich meist nur als βCoronaβ oder βCovidβ bezeichnet, ist eine
|
34 |
-
meldepflichtige Infektionskrankheit mit einem breiten aber unspezifischen Symptomspektrum, die durch eine
|
35 |
-
Infektion (Ansteckung) mit dem Betacoronavirus SARS-CoV-2 verursacht wird. Das Virus wurde erstmals im
|
36 |
-
Dezember 2019 in Wuhan (Volksrepublik China) beschrieben. Es verbreitete sich sehr schnell weltweit und ist
|
37 |
-
Ursache der COVID-19-Pandemie. Bis 18. Oktober 2022 wurden weltweit rund 622 Millionen COVID-Infizierte registriert,
|
38 |
-
es wird aber in vielen LΓ€ndern eine hohe Dunkelziffer vermutet. Laut einer SchΓ€tzung der Weltgesundheitsorganisation
|
39 |
-
(WHO) gab es zwischen Anfang 2020 und Ende 2021 eine weltweite, durch COVID-19 verursachte Γbersterblichkeit von
|
40 |
14,83 Millionen Toten.
|
41 |
-
-
|
42 |
- Wirtschaft
|
43 |
- Familie
|
44 |
- Politik
|
|
|
1 |
title: Zero-Shot Interface
|
2 |
name: huggingface/Sahajtomar/German_Zeroshot
|
3 |
description: >
|
4 |
+
Bei dieser Aufgabe handelt es sich um eine Textklassifizierungsaufgabe. Das heiΓt, das Modell
|
5 |
+
bekommt einen Textinhalt vorgelegt und muss aus einer Liste vordefinierter Labels entscheiden,
|
6 |
+
welches dieser Labels den Inhalt des Textes am besten beschreibt. Der Krux bei der ganzen Sache ist,
|
7 |
+
dass das Modell keine Spezialisierung fΓΌr die Labels erfahren hat und sozusagen beim ersten Mal die
|
8 |
+
richtige Auswahl treffen muss; daher zero shot, denn es hat nur einen Versuch. Erreicht wird dies, in
|
9 |
+
dem ein vortrainiertes Modell auf einen Datensatz fΓΌr Natural Language Inference (dt. natΓΌrlichsprachliche
|
10 |
+
Inferenz oder RΓΌckschluss auf natΓΌrliche Sprache) spezialisiert wird. Bei dieser Aufgabe bekommt
|
11 |
+
das Modell zwei Texte vorgelegt und muss lernen, in welchem VerhΓ€ltnis die beiden Texte zueinanderstehen.
|
12 |
+
Folgende Klassen stehen dabei zur Auswahl:
|
13 |
<ul>
|
14 |
<li>entailment: Text A ist eine logische Schlussfolgerung von Text B</li>
|
15 |
<li>contradiction: Text A steht im Widerspruch zu Text B</li>
|
16 |
<li>neutral: es lassen sich keine Schlussfolgerungen dieser Art ziehen</li>
|
17 |
</ul>
|
18 |
</br></br>
|
19 |
+
Nehmen wir als Beispiel den Ausgangstext Β«Die Kinder lΓ€cheln und winken in die KameraΒ». Nach der Spezialisierung
|
20 |
+
sollte das Modell in der Lage sein zu sagen, dass die Aussage Β«Es sind Kinder anwesend.Β» eine logische
|
21 |
+
Schlussfolgerung des Ausgangstextes ist, wΓ€hrend die Aussage Β«Die Kinder runzeln die Stirn.Β» im Widerspruch
|
22 |
zum Ausgangstext steht.
|
23 |
</br></br>
|
24 |
+
Es hat sich gezeigt, dass Modelle, die auf Natural Language Inference spezialisiert wurden, auch sehr gut darin sind,
|
25 |
+
Texten thematisch passende Labels zuzuordnen. Wenn wir wieder den Ausgangstext von vorhin nehmen, wΓ€re das Modell in
|
26 |
+
der Lage zu sagen, dass von den mΓΆglichen Kandidatenlabels [Wirtschaft, Familie, Feier, TragΓΆdie] Familie und Feier
|
27 |
+
diejenigen Labels sind, die den Inhalt des Textes am besten beschreiben.</br></br>Das hier verwendete Beispielmodell
|
28 |
wurde auf deutschsprachige Texte trainiert.
|
29 |
examples:
|
30 |
-
|
31 |
- >
|
32 |
+
COVID-19 (Akronym von englisch coronavirus disease 2019, deutsch Coronavirus-Krankheit-2019), in den
|
33 |
+
deutschsprachigen LΓ€ndern umgangssprachlich meist nur als βCoronaβ oder βCovidβ bezeichnet, ist eine
|
34 |
+
meldepflichtige Infektionskrankheit mit einem breiten aber unspezifischen Symptomspektrum, die durch eine
|
35 |
+
Infektion (Ansteckung) mit dem Betacoronavirus SARS-CoV-2 verursacht wird. Das Virus wurde erstmals im
|
36 |
+
Dezember 2019 in Wuhan (Volksrepublik China) beschrieben. Es verbreitete sich sehr schnell weltweit und ist
|
37 |
+
Ursache der COVID-19-Pandemie. Bis 18. Oktober 2022 wurden weltweit rund 622 Millionen COVID-Infizierte registriert,
|
38 |
+
es wird aber in vielen LΓ€ndern eine hohe Dunkelziffer vermutet. Laut einer SchΓ€tzung der Weltgesundheitsorganisation
|
39 |
+
(WHO) gab es zwischen Anfang 2020 und Ende 2021 eine weltweite, durch COVID-19 verursachte Γbersterblichkeit von
|
40 |
14,83 Millionen Toten.
|
41 |
+
-
|
42 |
- Wirtschaft
|
43 |
- Familie
|
44 |
- Politik
|
resources/tabs/app_tab.yml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
title: NLP Demo-Seite
|
2 |
+
dependencies:
|
3 |
+
- interfaces/gpt2_interface.yml
|
4 |
+
- tabs/legal_tab.yml
|
5 |
+
- interfaces/qa_interface.yml
|
6 |
+
- interfaces/summarization_interface.yml
|
7 |
+
- interfaces/simplification_interface.yml
|
8 |
+
- interfaces/ner_interface.yml
|
9 |
+
- interfaces/zero_shot_interface.yml
|
resources/tabs/legal_tab.yml
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
title: Legal # will be used as tab title
|
2 |
+
dependencies:
|
3 |
+
- interfaces/legal_german_roberta_interface.yml
|
4 |
+
- interfaces/gbert_interface.yml
|
resources/{template_interface.yml β templates/template_interface.yml}
RENAMED
@@ -3,7 +3,7 @@ name: huggingface/deepset/gelectra-large-germanquad # path to model
|
|
3 |
description: > # Adding > here allows multiline strings
|
4 |
This
|
5 |
is
|
6 |
-
a
|
7 |
string
|
8 |
accross
|
9 |
multiple
|
@@ -14,7 +14,7 @@ examples:
|
|
14 |
- Foo
|
15 |
- Bar
|
16 |
- # Second example
|
17 |
-
- >
|
18 |
Hello
|
19 |
world
|
20 |
- Hello who?
|
|
|
3 |
description: > # Adding > here allows multiline strings
|
4 |
This
|
5 |
is
|
6 |
+
a
|
7 |
string
|
8 |
accross
|
9 |
multiple
|
|
|
14 |
- Foo
|
15 |
- Bar
|
16 |
- # Second example
|
17 |
+
- >
|
18 |
Hello
|
19 |
world
|
20 |
- Hello who?
|
resources/templates/template_tab.yml
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
title: Some Title # will be used as tab title
|
2 |
+
dependencies:
|
3 |
+
- templates/template_interface.yaml # provide all dependant interfaces as a list
|
src/nlp_circle_demo/__pycache__/interface.cpython-310.pyc
CHANGED
Binary files a/src/nlp_circle_demo/__pycache__/interface.cpython-310.pyc and b/src/nlp_circle_demo/__pycache__/interface.cpython-310.pyc differ
|
|
src/nlp_circle_demo/{interface.py β wrapped_gradio_objects.py}
RENAMED
@@ -10,13 +10,17 @@ class WrappedGradioObject:
|
|
10 |
def launch(self):
|
11 |
return self.gradio_element.launch()
|
12 |
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
class GradioInterfaceWrapper(WrappedGradioObject):
|
15 |
@classmethod
|
16 |
def from_yaml(cls, path):
|
17 |
"""Initializes Interface from YAML file."""
|
18 |
-
|
19 |
-
content_dict = yaml.safe_load(f)
|
20 |
return cls.create_interface(**content_dict)
|
21 |
|
22 |
@classmethod
|
@@ -40,7 +44,7 @@ class GradioInterfaceWrapper(WrappedGradioObject):
|
|
40 |
|
41 |
class GradioTabWrapper(WrappedGradioObject):
|
42 |
@classmethod
|
43 |
-
def
|
44 |
"""Constructs a GradioTabWrapper from a title and a list of WrappedGradioObjects."""
|
45 |
interface = gr.TabbedInterface(
|
46 |
[obj.gradio_element for obj in gradio_objects],
|
@@ -50,4 +54,25 @@ class GradioTabWrapper(WrappedGradioObject):
|
|
50 |
|
51 |
@classmethod
|
52 |
def from_yaml(cls, path):
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
def launch(self):
|
11 |
return self.gradio_element.launch()
|
12 |
|
13 |
+
@staticmethod
|
14 |
+
def read_yaml(path):
|
15 |
+
with open(path) as f:
|
16 |
+
return yaml.safe_load(f)
|
17 |
+
|
18 |
|
19 |
class GradioInterfaceWrapper(WrappedGradioObject):
|
20 |
@classmethod
|
21 |
def from_yaml(cls, path):
|
22 |
"""Initializes Interface from YAML file."""
|
23 |
+
content_dict = cls.read_yaml(path)
|
|
|
24 |
return cls.create_interface(**content_dict)
|
25 |
|
26 |
@classmethod
|
|
|
44 |
|
45 |
class GradioTabWrapper(WrappedGradioObject):
|
46 |
@classmethod
|
47 |
+
def from_gradio_object_list(cls, title, gradio_objects):
|
48 |
"""Constructs a GradioTabWrapper from a title and a list of WrappedGradioObjects."""
|
49 |
interface = gr.TabbedInterface(
|
50 |
[obj.gradio_element for obj in gradio_objects],
|
|
|
54 |
|
55 |
@classmethod
|
56 |
def from_yaml(cls, path):
|
57 |
+
content_dict = cls.read_yaml(path)
|
58 |
+
gradio_objects = [
|
59 |
+
cls._read_dependency(dependency)
|
60 |
+
for dependency in content_dict["dependencies"]
|
61 |
+
]
|
62 |
+
return cls.from_gradio_object_list(
|
63 |
+
content_dict["title"],
|
64 |
+
gradio_objects,
|
65 |
+
)
|
66 |
+
|
67 |
+
@staticmethod
|
68 |
+
def _read_dependency(path):
|
69 |
+
full_path = f"resources/{path}"
|
70 |
+
if path.startswith("interfaces"):
|
71 |
+
return GradioInterfaceWrapper.from_yaml(full_path)
|
72 |
+
if path.startswith("tabs"):
|
73 |
+
return GradioTabWrapper.from_yaml(full_path)
|
74 |
+
raise ValueError(
|
75 |
+
"Gradio Object Type could not be inferred from path name. Make sure "
|
76 |
+
"that all interface object yamls are in resources/interfaces, and that "
|
77 |
+
"all tab object yamls are in resources/tabs."
|
78 |
+
)
|