Einmalumdiewelt commited on
Commit
3a33e93
·
1 Parent(s): 362371a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -7
app.py CHANGED
@@ -5,15 +5,24 @@ from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
5
 
6
 
7
  def summarize(inputs,model,summary_length):
8
- if model=="T5-base":
 
9
  tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/T5-Base_GNAD")
10
  model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/T5-Base_GNAD")
11
- elif model =="Google pegasus":
 
12
  tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/PegasusXSUM_GNAD")
13
  model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/PegasusXSUM_GNAD")
14
- elif model =="Facebook bart-large":
15
  tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/BART_large_CNN_GNAD")
16
  model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/BART_large_CNN_GNAD")
 
 
 
 
 
 
 
17
 
18
  device = "cpu"
19
  #"cuda" if torch.cuda.is_available() else "CPU"
@@ -21,10 +30,11 @@ def summarize(inputs,model,summary_length):
21
 
22
  #define model inputs
23
  inputs = tokenizer(
24
- inputs,
25
  max_length=512,
26
  truncation=True,
27
  padding="max_length",
 
28
  return_tensors='pt').to(device)
29
  #generate preds
30
  preds = model.generate(**inputs,max_length=summary_length+25,min_length=summary_length-25)
@@ -37,7 +47,9 @@ description = "Quickly summarize your German text in a few sentences. \nOur algo
37
 
38
  title = "Finally there's a German \ntext summarization algorithm."
39
 
40
- examples = [["summarize: Maschinelles Lernen ist ein Oberbegriff für die „künstliche“ Generierung von Wissen aus Erfahrung: Ein künstliches System lernt aus Beispielen und kann diese nach Beendigung der Lernphase verallgemeinern. Dazu bauen Algorithmen beim maschinellen Lernen ein statistisches Modell auf, das auf Trainingsdaten beruht und welches gegen die Testdaten getestet wird. Das heißt, es werden nicht einfach die Beispiele auswendig gelernt (siehe Überanpassung), sondern Muster und Gesetzmäßigkeiten in den Lerndaten erkannt. So kann das System auch unbekannte Daten beurteilen (Lerntransfer) oder aber am Lernen unbekannter Daten scheitern (Überanpassung; englisch overfitting). Aus dem weiten Spektrum möglicher Anwendungen seien hier genannt: automatisierte Diagnose­verfahren, Erkennung von Kreditkartenbetrug, Aktienmarkt­analysen, Klassifikation von Nukleotidsequenzen, Sprach- und Texterkennung sowie autonome Systeme.","T5-base",200],["summarize: Am 15. Juli 2021 war die KI des britischen Unternehmens Deepmind auch für kommerzielle Unternehmen freigegeben worden. Rund ein Jahr später hat Alphafold fast alle 3D-Strukturen des Protein-Universums erfasst. Damit lässt sich eine der wichtigsten Fragen der Molekularbiologie vergleichsweise mühelos beantworten: die nämlich, zu welcher Form sich die Kette eines Proteins ausbildet. Die 3D-Struktur eines Moleküls ist entscheidend für seine Funktionen. Wer sie kennt, kann zudem leichter herausfinden, ob und mit welchen Wirkstoffen sich das Protein beeinflussen lassen könnte. Am 28. Juli 2022 gab Googles Schwesterunternehmen Deepmind nun bekannt, dass die KI die 3D-Strukturen von über 200 Millionen Proteinen entschlüsselt hat. „Im Wesentlichen kann man sich vorstellen, dass es das gesamte Proteinuniversum abdeckt“, wird Demis Hassabis, Gründer und CEO von Deepmind, in einem Bericht von Cnet zitiert. Zum Vergleich: Beim Start von Alphafold in Open Source waren 350.000 3D-Proteine identifiziert. Laut Hassabis haben seitdem mehr als 500.000 Wissenschaftler:innen die bestehende Datenbank genutzt, um über 200 Millionen Strukturen anzuzeigen. „Und diese prädiktiven Strukturen haben Wissenschaftlern geholfen, brillante neue Entdeckungen zu machen“, heißt es vonseiten des Deepmind-CEOs. Demnach konnten unter anderem Enzymforscher:innen Alphafold dazu nutzen, um Lösungen zur Bekämpfung von Kunststoffabfällen zu entwickeln.","T5-base",200]]
 
 
41
 
42
  #interface = gr.Interface.load("models/Einmalumdiewelt/T5-Base_GNAD",
43
  # title=title,
@@ -47,7 +59,7 @@ examples = [["summarize: Maschinelles Lernen ist ein Oberbegriff für die „kü
47
  # text input box
48
  txt=gr.Textbox(lines=15, label="I want to summarize this:", placeholder="Paste your German text in here.")
49
  # dropdown model selection
50
- drop=gr.Dropdown(["T5-base", "Google pegasus", "Facebook bart-large"],label="Choose a fine-tuned architecture.")
51
  # slider summary length selection
52
  slide=gr.Slider(50, 250, step=50, label="Select a preferred summary length (+/- 25 tokens).", value=100)
53
  # text output box
@@ -55,7 +67,7 @@ out=gr.Textbox(lines=5, label="Here's your summary:")
55
 
56
  interface = gr.Interface(summarize,
57
  inputs=[
58
- "summarize: " + txt,
59
  # Selection of models for inference
60
  drop,
61
  # Length of summaries
 
5
 
6
 
7
  def summarize(inputs,model,summary_length):
8
+ prefix = ""
9
+ if model=="Google T5-base":
10
  tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/T5-Base_GNAD")
11
  model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/T5-Base_GNAD")
12
+ prefix = "summarize: "
13
+ elif model =="Google Pegasus":
14
  tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/PegasusXSUM_GNAD")
15
  model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/PegasusXSUM_GNAD")
16
+ elif model =="Facebook Bart-large":
17
  tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/BART_large_CNN_GNAD")
18
  model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/BART_large_CNN_GNAD")
19
+ elif model =="Google MT5-small":
20
+ tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/MT5_small_sum-de_GNAD")
21
+ model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/MT5_small_sum-de_GNAD")
22
+ prefix = "summarize: "
23
+ elif model =="Facebook DistilBART":
24
+ tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/DistilBART_CNN_GNAD")
25
+ model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/DistilBART_CNN_GNAD")
26
 
27
  device = "cpu"
28
  #"cuda" if torch.cuda.is_available() else "CPU"
 
30
 
31
  #define model inputs
32
  inputs = tokenizer(
33
+ prefix + inputs,
34
  max_length=512,
35
  truncation=True,
36
  padding="max_length",
37
+
38
  return_tensors='pt').to(device)
39
  #generate preds
40
  preds = model.generate(**inputs,max_length=summary_length+25,min_length=summary_length-25)
 
47
 
48
  title = "Finally there's a German \ntext summarization algorithm."
49
 
50
+ article = "MT5-small introduced by Xue et al. https://arxiv.org/abs/2010.11934 (2020)."
51
+
52
+ examples = [["summarize: Maschinelles Lernen ist ein Oberbegriff für die „künstliche“ Generierung von Wissen aus Erfahrung: Ein künstliches System lernt aus Beispielen und kann diese nach Beendigung der Lernphase verallgemeinern. Dazu bauen Algorithmen beim maschinellen Lernen ein statistisches Modell auf, das auf Trainingsdaten beruht und welches gegen die Testdaten getestet wird. Das heißt, es werden nicht einfach die Beispiele auswendig gelernt (siehe Überanpassung), sondern Muster und Gesetzmäßigkeiten in den Lerndaten erkannt. So kann das System auch unbekannte Daten beurteilen (Lerntransfer) oder aber am Lernen unbekannter Daten scheitern (Überanpassung; englisch overfitting). Aus dem weiten Spektrum möglicher Anwendungen seien hier genannt: automatisierte Diagnose­verfahren, Erkennung von Kreditkartenbetrug, Aktienmarkt­analysen, Klassifikation von Nukleotidsequenzen, Sprach- und Texterkennung sowie autonome Systeme.","T5-base",150],["summarize: Am 15. Juli 2021 war die KI des britischen Unternehmens Deepmind auch für kommerzielle Unternehmen freigegeben worden. Rund ein Jahr später hat Alphafold fast alle 3D-Strukturen des Protein-Universums erfasst. Damit lässt sich eine der wichtigsten Fragen der Molekularbiologie vergleichsweise mühelos beantworten: die nämlich, zu welcher Form sich die Kette eines Proteins ausbildet. Die 3D-Struktur eines Moleküls ist entscheidend für seine Funktionen. Wer sie kennt, kann zudem leichter herausfinden, ob und mit welchen Wirkstoffen sich das Protein beeinflussen lassen könnte. Am 28. Juli 2022 gab Googles Schwesterunternehmen Deepmind nun bekannt, dass die KI die 3D-Strukturen von über 200 Millionen Proteinen entschlüsselt hat. „Im Wesentlichen kann man sich vorstellen, dass es das gesamte Proteinuniversum abdeckt“, wird Demis Hassabis, Gründer und CEO von Deepmind, in einem Bericht von Cnet zitiert. Zum Vergleich: Beim Start von Alphafold in Open Source waren 350.000 3D-Proteine identifiziert. Laut Hassabis haben seitdem mehr als 500.000 Wissenschaftler:innen die bestehende Datenbank genutzt, um über 200 Millionen Strukturen anzuzeigen. „Und diese prädiktiven Strukturen haben Wissenschaftlern geholfen, brillante neue Entdeckungen zu machen“, heißt es vonseiten des Deepmind-CEOs. Demnach konnten unter anderem Enzymforscher:innen Alphafold dazu nutzen, um Lösungen zur Bekämpfung von Kunststoffabfällen zu entwickeln.","T5-base",150]]
53
 
54
  #interface = gr.Interface.load("models/Einmalumdiewelt/T5-Base_GNAD",
55
  # title=title,
 
59
  # text input box
60
  txt=gr.Textbox(lines=15, label="I want to summarize this:", placeholder="Paste your German text in here.")
61
  # dropdown model selection
62
+ drop=gr.Dropdown(["Google T5-base","Google MT5-small","Google Pegasus","Facebook Bart-large","Facebook DistilBART"],label="Choose a fine-tuned architecture.")
63
  # slider summary length selection
64
  slide=gr.Slider(50, 250, step=50, label="Select a preferred summary length (+/- 25 tokens).", value=100)
65
  # text output box
 
67
 
68
  interface = gr.Interface(summarize,
69
  inputs=[
70
+ txt,
71
  # Selection of models for inference
72
  drop,
73
  # Length of summaries