Spaces:
Build error
Build error
import gradio as gr | |
import torch | |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
#"Google T5-base","Google MT5-small","Google Pegasus","Facebook Bart-large","Facebook DistilBART" | |
def summarize(inputs,model,summary_length): | |
prefix = "" | |
if model=="Google T5-base": | |
tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/T5-Base_GNAD") | |
model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/T5-Base_GNAD") | |
prefix = "summarize: " | |
elif model =="Google Pegasus": | |
tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/PegasusXSUM_GNAD") | |
model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/PegasusXSUM_GNAD") | |
elif model =="Facebook Bart-large": | |
tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/BART_large_CNN_GNAD") | |
model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/BART_large_CNN_GNAD") | |
elif model =="Google MT5-small": | |
tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/MT5_small_sum-de_GNAD") | |
model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/MT5_small_sum-de_GNAD") | |
prefix = "summarize: " | |
elif model =="Facebook DistilBART": | |
tokenizer = AutoTokenizer.from_pretrained("Einmalumdiewelt/DistilBART_CNN_GNAD") | |
model = AutoModelForSeq2SeqLM.from_pretrained("Einmalumdiewelt/DistilBART_CNN_GNAD") | |
device = "cpu" | |
#"cuda" if torch.cuda.is_available() else "CPU" | |
model.to(device) | |
#define model inputs | |
inputs = tokenizer( | |
prefix + inputs, | |
max_length=512, | |
truncation=True, | |
padding="max_length", | |
return_tensors='pt').to(device) | |
#generate preds | |
preds = model.generate(**inputs,max_length=summary_length+25,min_length=summary_length-25) | |
#we decode the predictions to store them | |
decoded_predictions = tokenizer.batch_decode(preds, skip_special_tokens=True) | |
#return | |
return decoded_predictions[0] | |
description = "Quickly summarize your German text in a few sentences. \nOur algorithms were fine-tuned on high-quality German news articles. Inference can take up to 60 seconds, so feel free to look at a few of the provided examples, first." | |
title = "Finally there's a German \ntext summarization algorithm." | |
article = "MT5-small introduced by Xue et al. https://arxiv.org/abs/2010.11934 (2020)." | |
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 Diagnoseverfahren, Erkennung von Kreditkartenbetrug, Aktienmarktanalysen, 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]] | |
#interface = gr.Interface.load("models/Einmalumdiewelt/T5-Base_GNAD", | |
# title=title, | |
# description=description, | |
# examples=examples) | |
# text input box | |
txt=gr.Textbox(lines=15, label="I want to summarize this:", placeholder="Paste your German text in here.") | |
# dropdown model selection | |
drop=gr.Dropdown(["Google T5-base","Google MT5-small","Google Pegasus","Facebook Bart-large","Facebook DistilBART"],label="Choose a fine-tuned architecture.") | |
# slider summary length selection | |
slide=gr.Slider(50, 250, step=50, label="Select a preferred summary length (+/- 25 tokens).", value=100) | |
# text output box | |
out=gr.Textbox(lines=5, label="Here's your summary:") | |
interface = gr.Interface(summarize, | |
inputs=[ | |
txt, | |
# Selection of models for inference | |
drop, | |
# Length of summaries | |
slide], | |
# ouptut | |
outputs=out, | |
title=title, | |
description=description, | |
examples=examples) | |
# launch interface | |
if __name__ == "__main__": | |
interface.launch(share=True) |