Beim Schreiben von Blog Beiträgen kann das Finden der Worte manchmal eine Herausforderung sein. Mir persönlich passiert es von Zeit zu Zeit, dass ich zwar weiß was ich schreiben will, aber mit ein Wort fehlt. Künstliche Intelligenz bietet nun eine Lösung, um diese Hürde zu überwinden. Mit dem Modell „dbmdz/bert-base-german-europeana-cased“ steht mir nun ein leistungsstarkes Werkzeug zur Verfügung, das mich beim Finden der fehlenden Worte unterstützt.
Was ist „dbmdz/bert-base-german-europeana-cased“?
Das Modell „dbmdz/bert-base-german-europeana-cased“ ist eine deutsche Version von BERT, die auf der Verarbeitung und Analyse der deutschen Sprache spezialisiert ist. Die „cased“-Version bedeutet, dass das Modell zwischen Groß- und Kleinschreibung unterscheiden kann, was für die deutsche Sprache wichtig ist. Das Model ist gerade mal 445 MB groß und kann daher auch auf älteren GPUs oder sogar auf CPUs laufen und trotzdem eine akzeptable Antwortgeschwindigkeit liefern.
Das Model hat als Traningsdatensatz die Open-Source-Zeitungen Europeana verwendet, die von The European Library bereitgestellt werden. Der Trainingskorpus hat eine Größe von 51 GB und besteht aus 8.035.986.369 Token. Weitere Details zu dem Modell und den Trainigsdaten können unter https://github.com/stefan-it/europeana-bert nachgelesen werden.
Fill-Mask Modell
Das Modell „dbmdz/bert-base-german-europeana-cased“ ist ein sogenanntes Fill-Mask-Modell das fehlende Wörter in einem Satz kontextuell ergänzen kann. Diese Funktion ist hilfreich, wenn man an Schreibblockaden leiden oder Schwierigkeiten hat, die richtigen Worte zu finden.
Beispielsweise kann der Satz „Das ist ein [MASK] Buch“ mit passenden Wörtern wie „großartiges“ oder „spannendes“ vervollständigt werden. Unter https://huggingface.co/tasks/fill-mask wird die Funktionsweise von Fill-Mask Modellen beschrieben. Hier findet man alle nötigen Infos zur Verwendung der Fill-Mask Modelle.
Gradio Demo App
Mit Hilfe von Gradio habe ich eine kleine Demo App gebaut, die unter https://mask.ux5.de/ zu erreichen ist. Die Fill-Mask ist [MASK]. So kann man z.B. folgenden Text in das Textfeld eintragen und erhält dann die Top 5 Ergebnisse.
Biespiel:
Deep learning erlaubt die Verarbeitung und Analyse komplexer [MASK]; dazu verwendet Deep Learning tiefe hierarchische neuronale Netze, die automatisch abstrakte Merkmale aus den Daten extrahieren.
- Deep learning erlaubt die Verarbeitung und Analyse komplexer Daten ; dazu verwendet Deep Learning tiefe hierarchische neuronale Netze, die automatisch abstrakte Merkmale aus den Daten extrahieren.(14.6%)
- Deep learning erlaubt die Verarbeitung und Analyse komplexer Flächen ; dazu verwendet Deep Learning tiefe hierarchische neuronale Netze, die automatisch abstrakte Merkmale aus den Daten extrahieren.(4.8%)
- Deep learning erlaubt die Verarbeitung und Analyse komplexer Stoffe ; dazu verwendet Deep Learning tiefe hierarchische neuronale Netze, die automatisch abstrakte Merkmale aus den Daten extrahieren.(4.3%)
- Deep learning erlaubt die Verarbeitung und Analyse komplexer Elemente ; dazu verwendet Deep Learning tiefe hierarchische neuronale Netze, die automatisch abstrakte Merkmale aus den Daten extrahieren.(3.4%)
- Deep learning erlaubt die Verarbeitung und Analyse komplexer Bestände ; dazu verwendet Deep Learning tiefe hierarchische neuronale Netze, die automatisch abstrakte Merkmale aus den Daten extrahieren.(2.0%)
Gradio App Code
import gradio as gr
from transformers import pipeline
# Load model
unmasker = pipeline('fill-mask', model='dbmdz/bert-base-german-europeana-cased')
# mask function
def mask(text):
global unmasker
result = unmasker(text)
ret = ""
for item in result:
print (item)
score = float(int(item["score"]*1000))/10
ret = ret + "\r\n" + item["sequence"] + "(" + str(score) + "%)"
return ret
demo = gr.Interface(
fn=mask,
inputs=["text"],
outputs=["text"],
)
# launch gradio app
demo.launch(server_name="0.0.0.0")