Transcript: Natural Language Processing mit spaCy
Full episode transcript. Timestamps refer to the audio playback.
Hallo liebe Hörerinnen und Hörer, willkommen im Python-Podcast. Heute in einer Jubiläumsepisode und zwar Episode Nummer 30.
Natürlich sind wir wieder mit dem Jochen da und ich bin der Dominik.
Hallo Dominik.
Und heute haben wir auch einen besonderen Gast und das ist die Ines.
Ja, hallo Ines.
Ja, wollen wir die Ines mal vorstellen, Jochen?
Ja, normalerweise, genau, sagen wir Leuten immer, sie sollen sich selber vorstellen, aber ja, vielleicht ist es ja auch gar nicht so schlecht, wenn wir das machen.
Ich habe irgendwo gelesen, dass es besser ankommt, wenn man von jemand anders vorgestellt wird.
Das kommt wahrscheinlich auch drauf an, von wem man vorgestellt wird. Das tut mir jetzt sehr leid, dass ich das wünsche.
Ines ist Explosion, also wer ist Ines?
Genau, also wir kamen drauf, weil ich von einem Hörer eine Mail bekommen habe, der sich dafür interessierte, irgendwie ein bisschen mehr über Machine Learning, Natural Language Processing bzw. halt SPACE zu hören.
und da dachte ich so, oh ja,
das stimmt, das wollte
ich doch auch selber schon immer mal gerne
machen und habe dann halt irgendeine Mail
an Ines geschrieben. Ines, du hast was mit
Spacey zu tun? Und genau,
ja.
Ines Nick.
Wir bei Explosion,
wir entwickeln Spacey,
eine Open Source Bibliothek für
Natural Language Processing in Python
und daran arbeiten wir,
daran arbeite ich seit
ein paar Jahren und
und ja, damit verbringe ich auch einen Großteil meiner Zeit und wir entwickeln auch andere Produkte und Tools hauptsächlich für Softwareentwickler, die mit Machine Learning und vor allem auch mit NLP arbeiten. Also quasi, ja, wir entwickeln Software für Softwareentwickler, um quasi den Alltag ein bisschen schöner und produktiver zu gestalten.
Das hört sich spannend an. Ich würde vielleicht vorstellen, dass wir so ein bisschen mit einer Einleitung anfangen für Menschen, die uns noch nicht so folgen können, weil die vielleicht im Thema noch nicht ganz so tief drin sind. Vielleicht nochmal so ganz kurz die Begrifflichkeiten klären, was ist denn jetzt überhaupt so das NLP und was macht man damit und was für Features würde man denn sowas wie Spacey machen wollen und sowas vielleicht?
Du möchtest zum Beispiel wissen, wer macht was, wer ist das Subjekt, wer ist das Objekt, was für Personen kommen vor, was für Firmen, was für Kon Kon Kon Kon Kon Kon Kon Kon Kon Kon
und Jochen unterhalten sich über die Programmiersprache Python
und Python.
und Jochen unterhalten sich über die Programmiersprache Python
und wo auch tatsächlich diese
Technologie auch wirklich
zum Einsatz kommt
in verschiedenen
Anwendungsbereichen, Firmen,
alles mögliche.
Ja,
ich
habe da auch relativ
viel schon, was Textkategorisierungen
angeht und so, gemacht
und zu der Zeit, das ist halt auch schon lange her,
aber da waren halt so lineare
Modelle das Mittel der Wahl irgendwie.
Das war so...
Das ist so eine...
Es gibt viele
Problematiken, wo wir nach wie vor
Leuten empfehlen würden,
so eine super Oldschool-Methode
linear klappt immer noch besser.
Schneller kannst du
auch teilweise heutzutage,
selbst mit den hottesten
Modellen teilweise nicht überbieten.
Aber es gibt natürlich andere Bereiche, wo wir sagen,
okay, gut,
da braucht man einfach ein bisschen mehr.
Und ja.
Ja.
Ja genau, also ich meine, da hat sich natürlich, also so ein lineares Modell ist natürlich relativ einfach und inzwischen gibt es ja da irgendwie so, was halt Neuronalen Netze angeht, Deep Learning, irgendwie hat sich ja einiges getan, so im letzten Jahrzehnt so ein bisschen.
und
ja, das ist
natürlich auch schön, dass man da jetzt
irgendwie in dem Bereich
nochmal deutlich mehr rausholen kann
und was ich daran ja auch total faszinierend
finde, das ist jetzt auch eine relativ aktuelle Entwicklung
mit diesen ganzen
Transformer-Geschichten,
dass man da tatsächlich
irgendwie aus
ja, quasi
Text oder ungelabelten Daten
halt irgendwie was lernen kann
und dann weniger gelabelte Daten braucht,
weil gelabelte Daten sind natürlich immer relativ schwer zu bekommen.
Ja, und ich glaube, es löst auch ein viel tiefer liegendes Problem,
was wir halt schon immer hatten,
und zwar, dass Sprache ja wirklich auch nur im Kontext der Welt
und im Kontext der Linguistik existiert.
Das heißt, wenn du jetzt ein Modell trainierst
und selbst wenn du dem nur beibringen möchtest,
ist diese E-Mail Spam oder nicht.
Das Modell muss zusätzlich zu dem tatsächlichen Problem und den entsprechenden Wörtern, die wahrscheinlich meistens darauf hindeuten, ob es Spam ist oder nicht, auch noch so viele andere Dinge lernen.
Zum Beispiel schon allein, wie funktioniert die englische Sprache, wie werden da die Wörter meistens angeordnet oder auch einfach, wie funktioniert die Welt, was sind Wörter, die im Kontext der Welt benutzt werden und wie passt das alles zusammen.
und das ist unglaublich viel
Wissen, was man eben auch
einem Modell quasi immer wieder beibringen muss,
damit es überhaupt das machen kann, was sie wollen.
Also es gibt Wortpolzen zu Themenkomplexen oder sowas, ja?
Ja, genau.
Und du wirst wirklich immer
von vorne anfangen
oder so war es in der Vergangenheit und jetzt
Transfer Learning
nennt man das auch.
Eine Sache, die wir
jetzt halt können und die jetzt tatsächlich funktioniert, ist,
dass wir
quasi wissen, dass wir aus anderen
gewonnen haben, quasi transferieren können auf das neue Problem. Also wir können quasi was
vortrainieren, was unserem Modell quasi ermöglicht,
schon ein bisschen mehr zu wissen über die Sprache und die generelle
Welt und die generellen Wörter und so weiter. Also wir können quasi sagen,
hier ist ganz viel roher Text, guck dir das an
und wie es zum Beispiel funktioniert ist, die Aufgabe ist,
hier sind ein paar Wörter und wir lassen jetzt ein Wort weg und dann
und lassen wir unser Modell
vorhersagen, was das Wort sein könnte.
Und das machen wir relativ lange,
bis es hoffentlich
eine ganz gute Gewichtung aufgebaut hat und das nächste
Wort vorhersagen kann. Und es hat sich
herausgestellt, dass diese Aufgabe
sich sehr gut generalisieren lässt für
andere Sachen. Das heißt, die Gewichtungen, die wir da
aufbauen, die haben unglaublich
viel Informationen inkludiert,
quasi über die Sprache. Was ja auch irgendwie Sinn macht,
wenn du überlegst, okay, was muss man
wissen oder lernen
um das nächste Wort
vorhersagen zu können.
Und das ist quasi so die
Essenz von dem,
was jetzt quasi ein bisschen neuer ist und was
auch dafür sorgt, dass man eben
relativ wenig gelabelte
oder spezifische Daten braucht,
um auch ein relativ
komplexes neues Problem zu lösen,
da man eben auf dieses
grellere Wissen zurückgreifen kann.
Also man kann quasi diese Gewichte vortrainieren.
Und das ist
die Idee.
Ja, ich
Genau, letztens gab es auch irgendwie einen Blogpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpostpost
oder eben Transfer Learning.
Ja, Terminologie generell im Bereich.
Was nennt man ein Modell?
Das finde ich ist leider ein bisschen unglücklich,
dass heutzutage oder so Language Model
wird halt für so viele Dinge benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut benut
oder zumindest
traditionell, man nennt vieles ein Modell.
Manche Leute nennen den
Algorithmus ein Modell, also
quasi die Implementation, den
Code, den du dafür schreibst, aber dann
gibt es natürlich auch das Artefakt, das du da
trainierst, also die Gewichte,
also so eine binäre
Datei, die dann da rumliegt
und die du am Ende speicherst.
Und vielleicht das zusammen
kann man eigentlich so als Modell bezeichnen.
Dann, ich glaube, früher
Language Model haben wir früher auch gerne genannt,
und halt Modelle, die wir trainiert haben für verschiedene Sprachen, aber das würde jetzt auch heutzutage viel benutzt für eben diese Gewichte, die man trainiert auf der Basis von rohem Text.
Das ist also heute hauptsächlich, was Leute meinen, wenn sie Language Mono sagen.
Also okay, wir haben kompletten Text aus der Wikipedia im Englischen runtergeladen und diese Embeddings trainiert, indem wir das nächste Wort vorhergesagt haben und die kann man jetzt weiter benutzen.
und das ist ein Language-Motto.
Also es gibt da verschiedene
Definitionen oder verschiedene
Verwendungen.
Es wird halt irgendwie in unterschiedlichen Kontexten
unterschiedlich verwendet.
Ich sehe auch, was Leute, was nennt man
Machine Learning, was nennt man
KI?
Oder AI.
Ist auch leider nicht immer so.
Oder AI.
Ja genau, da muss ich mich auch erst mal dran
gewöhnen, weil ich bin tatsächlich,
die deutsche Terminologie ist mir nicht so
nah, weil ich halt nie,
weil ich es halt nie gelernt habe auf Deutsch.
Also ich bin immer gewohnt, so auf Englisch drüber zu lesen.
Du bist doch gerade in Australien, ne?
Ich bin momentan gerade in Australien, ja.
Ein bisschen Social Distancing
von Opa.
Genau, so weit wie möglich weg.
Ich glaube, die Weitergeht auch gar nicht.
Ja, also wie gesagt, ich freue mich drauf, wieder zurückzukommen,
aber halt momentan ist, okay gut,
bringt ja auch keinem was, wenn ich jetzt
in der momentanen Situation
da wieder in den Flieger steige.
Ja, aber ich habe halt auch nie so,
ich habe zum Beispiel nie jetzt klassisch
Informatik studiert oder so.
Deswegen, das merkt ihr teilweise im Vergleich,
dass manche Leute, die halt auf Deutsch
Programmieren gelernt haben,
da so die deutsche Terminologie drauf haben.
Und da muss ich mich
auch erstmal reinlesen. Ich habe für
Spacey so einen Online-Kurs gemacht, den habe ich auch
in verschiedenen Sprachen übersetzt. Also ich nicht,
ich habe ihn auch nur auf Deutsch übersetzt.
Mehr Sprachen kann ich nicht, aber
andere aus der Community haben uns dabei geholfen
und ich muss mich erstmal sehr reinlesen in
die deutsche Programmier-
Terminologie. So sagt man
iterieren.
Also Konsens ist scheinbar ja.
Ja.
Ja, ich will das auf Deutsch sagen.
Das hört sich manchmal komisch an.
Ja, es ist sehr eigenartig.
Ich komme manchmal jetzt so
das Problem hatte ich jetzt letztens,
dass dann irgendwie
ich weiß nicht, Domain Driven Design,
ob das euch ein Begriff ist,
wenn man jetzt in einer anderen Domäne unterwegs ist,
also gar nicht unbedingt jetzt,
wenn es ums Programmieren geht, sondern einfach
fachlich ist man halt irgendwas unterwegs, wo
Leute halt ihre eigene Sprache für
entwickelt haben, um sich
überhaupt austauschen zu können über das Thema, mit dem
sie da zu tun haben. Und da habe ich
dann erstmal alles nach Englisch übersetzt, weil ich
das so schrecklich fand, weil
das geht gar nicht, wenn da irgendwie so deutsche Worte
im Source Code stehen, dann dachte ich so,
muss ich unbedingt übersetzen. Dann habe ich dann weitergelesen
und dann hieß es so, naja, nee, am besten immer die Originalbegriffe
benutzen, weil ansonsten ist das
die totale Verwirrung. Man weiß hinterher überhaupt
gar nicht mehr, was was bedeutet. Ja, das bin dann auch
passiert.
Es ist
irgendwie nicht so einfach mit den unterschiedlichen
Sprachen, das blöd. Ja, da hat es eine Mischung halt.
Ganz gerade im IT-Bereich ist ja voll auch so
Denglisch irgendwie dann.
Ja, und ich meine, Programmieren an sich,
Python ist Englisch.
Und auch so, du merkst ja natürlich,
die Wörter, du programmierst
auf Englisch. Oder schon
allein, wenn du dir so eine deutsche Tastatur anguckst.
Die englische
Programmiersprachen sind meist für die amerikanische Tastatur entwickelt worden. Deswegen haben wir den Backtick an der blödesten Stelle und es ist eigentlich der Akzent.
Oder Backslash.
Ja, oder auch andere, oder die ganzen Klammern zu tippen. Warum ist das so nervig auf unseren Tastaturen?
Ja, weil, ja.
Ja, wir wollten unbedingt neue eigene Tastaturen machen.
Ja, ich habe mir immer überlegt, ob ich einfach mal sagen soll, okay, ich lerne die amerikanische Tastatur, weil es ja wirklich fürs Programmieren einfach ist. Also einfach eine Taste zu haben, wo du einen Backtick tippen kannst, ist einfach. Aber ich kriege das nicht mehr hin. Ich glaube, ich bin zu alt.
Ja, du musst wahrscheinlich anfangen mit einer anderen.
Ja, oder bei mir ist das Problem auch immer, ich habe es dann immer mal überlegt, ob ich dann nicht in meinem nächsten Rechner dann tatsächlich amerikanische Tastatur oder englische Tastatur halt nehme
und dann dachte ich mir, aber ich habe jetzt noch ein paar andere
Ich habe auch gerne die Umlaute auf der Tastatur
Also es stört mich, wenn ich jetzt nicht ein Öl tippen kann oder so
Ja, aber ich sage mal, die Sprache, wir tippen ja schon alles dann auf Englisch raus
Also auch Kommentare und so würde ich jetzt mal schätzen, dass wir alle die auf Englisch schreiben
Das macht ja auch irgendwie Sinn, wenn man ein bisschen kollaborativ arbeiten möchte und so
und ja, es ist halt schon interessant.
Also ich glaube, Englisch ist halt, weil man so
ein Natural Language anguckt, mit Sicherheit um
Meilen weiter, als das irgendwie
Deutsch sein wird. Und
Meilen ist wahrscheinlich noch zu wenig.
Einfach von der Masse an Sätzen,
die so gesagt werden in den jeweiligen Sprachen
und was man damit halt an Datenbasis irgendwie
anfangen kann.
Also generell, die Forschung findet
auf Englisch statt und natürlich
es gibt unglaublich viel interessante Arbeit,
auch was NLP
angeht in anderen Sprachen
und auch die Forschung, aber
grundsätzlich muss man sagen,
rein alle
Sprachen, die
Englisch ähneln, mit denen können
wir momentan auch im Bereich
Machine Learning am besten umgehen, weil da einfach die
meiste Forschung stattgefunden hat.
Okay, interessant. Welche Sprachen ähneln
Englisch?
Also natürlich so die
romanischen Sprachen
schon. Also alles,
also es ist halt
und so ein Spektrum, aber Chinesisch zum Beispiel eher nicht.
Also ich würde sagen, eher die Sprachen, die Englisch am unähnlichsten sind,
sind durchaus auch weniger erforscht.
Oder die Techniken, die veröffentlicht werden oder die geforscht werden
und die Strategien für Machine Learning und so weiter,
die sind halt schon meist optimiert für Englisch.
und da ist natürlich auch die Motivation da für den Forscher zu sagen, okay gut, du möchtest ja auch, das kann man ja auch den einzelnen Leuten da nicht ankreiden, also du möchtest natürlich, wenn du auf einem Gebiet forschst, du möchtest deine Experimente vergleichen können mit anderer Arbeit, du möchtest sagen, hey, hier, cool, ich habe tatsächlich was entwickelt und was gemacht hier, das irgendwie besser ist als das, was vorher da war und ja, viele der wichtige, die wichtige Arbeit ist halt, ja, funktioniert mit englischem Corpora,
und das heißt, natürlich ist da eine Motivation da, auch mit der englischen Sprache zu arbeiten.
Und natürlich ist einfach mehr und mehr Daten da.
Ja, auch einfach viel mehr Trainingsdaten.
Aber man muss auch sagen, okay, momentan, wir sind am Punkt, man braucht gar nicht mehr unbedingt so viele Daten.
Man kann Daten selber erstellen, das ist ja auch ein Bereich, in dem wir arbeiten.
Also unser kommerzielles Produkt, wodurch wir auch Geld verdienen, weil wir machen ja unglaublich viel Open Source,
was wir verschenken quasi
ist Prodigy, das ist ein
Annotationstool, speziell
entwickelt für Entwickler und Machine Learning. Also die
Idee ist, okay, oft
du willst, wenn du halt ein spezielles
Problem löst, ist es oft nicht damit
getan, dir einfach irgendein Modell aus dem
Internet runterzuladen, das irgendjemand anders mal trainiert
hat und das vielleicht ein bisschen ähnlich ist zu dem, was
du machen möchtest. Und
da wir auch heute an einem Punkt sind, wo wir sagen,
du brauchst gar nicht mehr Big Data
Milliarden an
Beispielen,
und auch ein paar hundert, paar tausend.
Damit kannst du echt, also wenn du es gut machst
und wenn das gut durchdacht ist
und
du dir Gedanken machst, okay, wie strukturiere ich das
Problem, kannst du damit echt super
Resultate mittlerweile erzielen. Das heißt,
es ist auch komplett
machbar, dass du sagst, hey, ich setze mich einfach hin
und verbringe eine Stunde, gucke mir meine Daten
wirklich an, überlege mir, wie label ich die
und wenn
das Tool effizient ist
und du damit gut arbeiten kannst, kannst selbst du
als einzelner Mensch innerhalb
von einer Stunde ein Datenset erstellen,
mit dem du wirklich was
auch produktiv machen kannst.
Vielleicht da nochmal auf die
Features könnten wir da nochmal eingehen.
Was macht denn Spacey jetzt genau
mit einem Datensatz? Also was kannst du damit alles
machen? Also Spacey ist
eine Bibliothek,
mit der du
moderne NLP-Systeme
bauen kannst.
Wir haben
verschiedenste Komponenten, die du
trainieren kannst.
Wir haben natürlich auch Pipelines, die man sich runterladen kann, die wir vortrainiert haben und für verschiedene Tasks oder verschiedene Probleme kannst du halt deinen Text reinfüttern und du bekommst am Ende die Annotationen, die das Modell extra hier hat, am Ende raus.
und Jochen unterhalten sich über die Programmiersprache Python
Name, Städtename, Produktname, Firmenname und so weiter. Und das ist natürlich vor allem spannend, wenn man das halt auf seine ganz spezielle Problematik zuschneidet. Also wenn man spezielle Begriffe in seinem Bereich hat und dann kannst du wirklich ein Modell trainieren, dass das entsprechend dir vorhersagen kann und dann hast du halt den Personennamen.
für die Domäne irgendwie.
Genau, und dann kannst du auch sagen, okay,
der Personenname, ist das jetzt das
Subjekt oder das Objekt und so weiter.
Oder andere Komponenten,
wo wir halt gerade dran arbeiten oder die man halt auch
bauen kann. Du kannst sagen,
wenn du jetzt ein Pronomen hast,
so er bezieht sich
auf wen bezieht sich das? Also der Mann
kommt nach Hause,
er zieht sich die Schuhe aus.
Kannst du das er zurück
auf den Mann
beziehen. Das ist auch in vielen Kontexten sehr wichtig.
Denn das ist was, wenn wir das lesen, uns ist das relativ klar.
Wenn du das maschinell machst, ist es deutlich
trickier und auch nicht immer so eindeutig, wie wir das gerne hätten
in der Sprache.
Textklassifizierung hast du ja schon mal angesprochen vorher.
Du kannst natürlich auch Labels für den ganzen Text vorher sagen. Geht es hier um Sport?
geht es hier um Politik,
geht es hier um Spam,
das ist was, was du machen kannst und du kannst
eben, und Spacy lässt sich halt diese
Komponenten zu einer Pipeline
zusammenbauen
und natürlich zwischendurch
es kann auch sein, dass du sagst, hey, ich möchte
einen Baustein, der soll einfach nur
richtig oldschool, ein paar reguläre Ausdrücke
sein, denn in der Praxis
ist das nach wie vor,
es macht Sinn, du trainierst ein System
richtig fancy, Transformers,
Named Entity Recognition,
Geil, sag Firmennamen voraus, es funktioniert super und dann, weiß nicht, zeigst du es deinem Chef, der gibt irgendwas ein mit deinem Firmennamen drin und das Ding erkennt den eigenen Firmennamen nicht, weil der irgendwie komisch ist und überhaupt nichts Ähnliches in den Trainingsdaten war.
Jetzt können sie sagen, oh, da mache ich jetzt nochmal neue Trainingsdaten,
tune meine Hyperparameters und verbringe da nochmal ein paar Wochen dran
und am Ende kriegt der unseren Firmennamen hin, aber kann irgendwelche anderen Sachen nicht mehr.
Oder du sagst, ja geil, haue ich jetzt einfach einen regulären Ausdruck drauf
und dann kriegt der unseren Firmennamen immer richtig hin.
Und in der Praxis, so löst man viele dieser Probleme.
und so sehen praktische Systeme aus.
Du hast vielleicht einen super heißen, modernen Baustein,
der die neuesten Transformer-Modelle verwendet
und dann hast du vielleicht einen Text-Classifier,
der noch Oldschool-Lineares-Modell, weil es einfach gut funktioniert.
Dann hast du noch ein paar Regeln obendrauf
und am Ende hast du halt
eine Repräsentation von einem Text, wo alle
diese Informationen drin ist, die du dann
verwenden kannst, um
was auch immer dein eigentliches Ziel ist
zu erreichen.
Denn das ist ja auch nochmal ein Problem.
Die tatsächlichen Ziele, die man
hat und die Probleme, die man lösen möchte,
die sind ja nicht immer eins zu eins
übertragbar in ein
Machine Learning Modell, das man
trainiert.
So stellen sich das manche
Leute manchmal vor. Oh, unsere Firma
möchte, dass wir das und das und das auslesen und das am Ende so und so in die Datenbank eingeben.
Kann man versuchen, wirklich von A nach B komplett ein System vorhersagen zu lassen,
ist aber oft in der Praxis nicht sonderlich nützlich.
Und auch nicht oft muss man sich hinsetzen, okay, wie kann man das Problem runterbrechen
in kleinere Bausteine, die man auch tatsächlich effektiv mit den technischen Möglichkeiten,
die wir momentan haben, lösen kann.
Naja, ja.
Ja, es ist auch immer wieder, ich meine, ich finde das
ja tats erstaunlich dass sich im Grunde alle Probleme letztendlich dann doch auch vielleicht manchmal in mehreren Schritten aber auch eben sowas Simples wie bin Klassifikationen quasi runterbrechen
lassen, weil
von binärer
Klassifikationen zu Multilabel, also dass man halt
mehrere Labels jetzt für den Text vorher sagt
oder so, ist eigentlich quasi auch das Gleiche
und ja, dann gibt's halt
noch Regressionen und dann gibt's halt noch Clustering und dann
war's das im Grunde schon, aber man
kann damit halt ne Menge machen und da dachte ich,
so, hm, damit soll man wirklich alles machen können,
aber ja, es geht schon, aber
man muss sich halt dann doch ein bisschen
ja, manchmal...
Es geht halt auch so ein bisschen ums Mindset, aber das ist ja auch beim
Programmieren generell nicht anders.
Also wenn du jetzt sagst, okay, ich hab hier
ein Problem, das möchte ich lösen mit Python,
dann musst du dir auch überlegen, okay, was habe ich hier zur Verfügung?
Was sind so diese Abstraktionen?
Wie strukturiere ich das?
Was macht Sinn, was macht
keinen Sinn?
Und das ist quasi der Job,
den du dann als Softwareentwickler löst und
so ähnlich ist es auch
im Bereich Machine Learning. Ist auch quasi
eine Art zu programmieren.
Ist halt nur ein bisschen anders
und man hat halt noch diese Daten
als die Komponente.
Im klassischeren Programmieren hast du halt
im Programm, da geht was rein, kommt immer
was raus. Hier hast du Code
plus Daten.
Beziehungsweise das, was man
programmiert, ist nicht so sehr
ein Algorithmus, aber man legt
eher die Daten für ein Modell fest, das dann
irgendwie
tatsächlich dann irgendwie was macht.
Das fand ich auch interessant, das gab es, glaube ich, 2018
gab es einen Vortrag von
André Carpati,
ich weiß gar nicht, wie das auch gesprochen wird,
Software 2.0 oder Software 2.0
Genau, also das ist auch eine sehr
jährige Idee, ja. Genau, der
sagt ja auch, ja, also früher haben wir halt
sozusagen eine, also
wir haben ein Problem und
haben wir einen Lösungsraum für dieses Problem
und wenn wir jetzt das explizit
programmieren, dann nehmen wir uns einen ganz winzigen
Punkt aus diesem Lösungsraum
raus und definieren den halt
exakt, aber tatsächlich kann man ja auch vielleicht
einfach eben per Daten so eine
Region aus dem Lösungsraum raus
zeigen und dann halt ein Optimierungsverfahren
verwenden, um tatsächlich die
Lösung zu finden, also
quasi per Machine Learning
ein Modell trainieren, das dann halt
sozusagen die Lösung
modelliert
und dann verändert sich
der Job als Programmierer halt so
ein bisschen und
das fand ich auch sehr interessant.
Das hebt es dann wieder auf eine etwas abstraktere Ebene
dann werden natürlich die Tools, die man dafür braucht
halt extrem wichtig und
sehr interessant. Genau, und auch
die Daten in ganz anderen Stellen werden bekommen
und das ist halt auch, was meiner Meinung nach nach wie vor
nicht genug Aufmerksamkeit bekommt
also auch so als Analogie jetzt
wenn du programmierst
klassisch, schreibst du deinen Code
dann hast du einen Compiler, da geht
dein Code rein und am Ende kommt ein Programm
raus und
jetzt mit Machine Learning hast du
deine Daten, du hast einen Algorithmus
und am Ende trainierst du dein Modell und dein Modell kommt raus.
Und wenn du jetzt feststellst, okay, dein Modell ist nicht sonderlich geil
oder im klassischen Programmieren, das Programm, was am Ende rauskommt aus deinem Compiler,
macht nicht das, was es soll, ist zu langsam, funktioniert nicht, hat Bugs, was machst du?
Du könntest natürlich hingehen und sagen, okay, da gehe ich jetzt erstmal an den Compiler ran
und schreibe mir meinen eigenen Compiler.
Machst du aber normalerweise nicht.
Normalerweise, du gehst in deinen Code rein und veränderst deinen Code
und passt den an und fix den,
damit dein Programm am Ende besser wird.
Ich will damit nicht sagen, es gibt super viel Arbeit,
die man im Bereich Compiler noch machen kann,
aber das ist normalerweise so nicht
das Erste, was man macht.
Und analog natürlich,
Machine Learning, wenn dein Modell
nicht das macht, was es soll und du damit
nicht zufrieden bist, kannst du
hingehen und deinen Algorithmus tweaken
und natürlich kann sein, dass da ein Bug drin ist,
der dafür sorgt, dass dein Modell
nichts lernt, aber meistens, was du
machen solltest, ist, dir die Daten angucken.
Und du kannst
das Schöne am praktischen
Machine Learning oder praktischen
NLP, wenn du es wirklich anwendest
auf Probleme, ist, dass du
selber entscheiden kannst, wie schwierig
oder wie einfach du dir
das Problem machst. Du kannst
kontrollieren, wie du deine Daten
annotierst, wie du die aufbereitest,
wie du
das Problem runterbrichst.
Und das ist, glaube ich, auch
wie sich zum Beispiel die angewandte Praxis so ein bisschen unterscheidet
von der reinen Forschung.
In der Forschung ist das Zielen ganz anderes.
Du hast ein Problem, du hast einen Benchmark,
du hast einen Algorithmus, den du entwickelt hast
und dann, es macht natürlich Sinn, wir wollen alle unsere Algorithmen
am selben Problem vergleichen, denn nur so kannst du sehen,
ist das, was ich jetzt hier mache, besser als das, was jemand anders gemacht hat.
Macht meine Idee Sinn, funktioniert das?
Das heißt, da setzt du dich typischerweise nicht hin
und änderst das Problem, denn dann hat deine ganze Forschung keinen Sinn mehr.
Aber das sind eben ein bisschen die anderen Denkweisen, die man da hat.
Und das ist auch, glaube ich, etwas, was einfach die angewandte Praxis unterscheidet.
Und auch jetzt, um es wieder zurückzuführen, ein bisschen auf das, was wir so machen,
was auch so ein bisschen die Philosophie von Spacey unterscheidet von vielleicht anderen Bibliotheken
und auch die Gedanken, die wir uns machen müssen.
Unsere Nutzer sind ja Entwickler, die wirklich in der Praxis diese Systeme bauen.
Und das heißt, wir müssen natürlich Entscheidungen treffen, die das besonders effizient und einfach machen,
aber auch die Möglichkeit geben, diese Bausteine entsprechend zusammenzusetzen,
manche Bausteine wiederzuverwenden und eben eine flexible Möglichkeit zu haben,
diese Systeme halt zu bauen und auch zu testen
und auch zu sehen, okay,
wenn was nicht funktioniert, möchtest du ja gucken,
wo ist das Problem? Das ist
sehr schwer, wenn alles so eine Blackbox ist und du
am Ende nicht weißt, was passiert da.
Da geht was rein, am Ende kommt was raus und
ja,
das war's halt.
Ja, ja, ja, genau.
Und das ist natürlich auch sowas, was
eben man wahrscheinlich
im akademischen Bereich nicht so häufig hat,
dass man eben auch mit den Annotationstools
viel zu tun hat oder auch mit, was ich auch immer häufig sehe, dass man dieses, wie speichert man Daten, wie reagiert man darauf, wenn sich Daten verändern oder so, ist halt ein ganz wichtiger Teil, dieser ganze Data Engineering Aspekt ist halt auch total wichtig und den hat man halt eigentlich gar nicht, wenn man jetzt mit fixen Corporate arbeitet, die immer gleich sind.
und ich meine, das ist ja wie gesagt,
das ist ja auch nicht unbedingt was, wo sich
ein Forscher mit beschäftigen möchte, aber ich glaube,
es ist eher was, was man auf der anderen Seite, wenn man eben
im angewandten Bereich arbeitet,
sich halt bewusst machen muss, okay,
oder es gibt so ein bisschen den
momentan, viele Leute sind unglaublich
heiß drauf und wollen sich halt so, okay, die letzte
Forschung direkt rein
ins Blut
direkt injizieren
so schnell wie möglich
und in manchen Bereichen
geht das und natürlich, wir haben
wirklich in den letzten Jahren vor allem sehr
schnelle Adoptionen gesehen von Dingen, die in der
Forschung entwickelt wurden und auch
praktisch sehr schnell
auch
verwendbar waren.
Und natürlich
der Kreislauf geht schneller
und wenn irgendwas Interessantes rauskommt,
dann
dauert es auch nicht mehr so lange,
bis man auch tatsächlich was Sinnvolles damit machen
kann, aber es ist halt nicht immer so.
Nur weil irgendein Paper rauskommt,
was halt spannend klingt, heißt es nicht,
und Jochen unterhalten sich über die Programmiersprache Python
Ja, ja, ja, ja.
Ja.
Genau.
Ja,
ihr macht ja auch noch diese
im Prodigy, dieses
Annotationstool, das ist
auch alles quasi so, wie Spacey auch
Python, beziehungsweise wahrscheinlich dann im
Frontend irgendwie was anderes, das weiß ich gar nicht.
Ja, also Frontend
natürlich, du brauchst immer ein bisschen JavaScript, damit es im Browser läuft
und es ist so eine relativ leichte
React-App, aber ja,
Backend ist alles in Python und die Philosophie ist auch wirklich, okay, es ist ein Entwicklertool,
du möchtest damit programmieren. Das war uns immer unglaublich wichtig und
wir freuen uns auch, das wurde halt super gut angenommen, Prodigy ist sehr erfolgreich
und das ist auch was, was wirklich Entwickler
anspricht und das ist auch die Art von Tools,
die wir entwickeln wollen und natürlich auch die Art von Tools, die wir auch gerne benutzen wollen. Also ich möchte, wenn ich mit
etwas arbeite, ich möchte programmieren können. Wenn ich irgendwas
irgendwas möchte, wenn ich
weiß, wie ich irgendwas in Python machen kann
und ein Tool gibt mir die Möglichkeit,
da einfach ein bisschen Code zu schreiben,
denke ich, cool, super.
Vor allem, weil ja auch in dem Bereich
fast alles andere in Python
läuft.
Wenn du jetzt BASIC benutzt,
andere Bibliotheken, die Modelle,
das ist meistens Python.
Du kannst unglaublich viel machen,
was das Laden von Daten,
Streamen und so weiter angeht.
und das ist alles möglich, das ist alles gelöst.
Da ist auch unsere Philosophie generell, wir wollen es Entwicklern ermöglichen, Code zu schreiben.
Wenn du Code schreiben kannst, ist es immer besser.
Du möchtest nicht nur einen Button haben, auf den du klicken kannst.
Ein Button, auf den du klicken kannst, ist cool, aber wenn du mehr machen möchtest,
solltest du die Möglichkeit haben und für Entwickler ist einfach Code die beste Art und Weise.
Was kann man denn machen
mit den Daten, um die vorzubereiten
oder aufzubereiten für Spacey oder
mit Spacey sogar mit den Daten?
Also es kommt natürlich darauf an,
was man machen möchte. Also meinst du mit vorbereiten,
okay, du hast halt rohen Text
und du möchtest halt etwas damit trainieren
und du möchtest den annotieren?
Ja, also
erstmal, die Daten
musst du natürlich annotieren
und die in Format bringen,
damit du zum Beispiel dann
Modell damit trainieren kannst.
Eine Option ist,
du kannst ganz oldschool in einer
Excel-Tabelle machen, du kannst es
ganz oldschool in
JSON machen und das wirklich eintippen,
von hier bis da ist eine Person,
oder das und das ist das Label,
so wird es auch oft gemacht. Dann natürlich mit
einem Tool wie Prodigy sagen wir, hey, du kannst einfach
deine Daten rein streamen, du kannst
ein bisschen klicken,
du kannst auch Sachen ein bisschen automatisieren,
das ist halt auch immer cool, denn
als Menschen,
wir sind einfach, es gibt viele Dinge, die wir einfach
schlechter können als ein Computer.
Ist halt nun mal so.
Unser Erinnerungsvermögen ist schlecht,
wenn es darum geht,
Dinge zuverlässig,
immer konsistent, genau gleich
zu machen, können wir nicht.
Und das sind nun mal Dinge,
dafür haben wir Computer entwickelt, das kann ein Computer halt
besser. Deswegen sagen wir,
wenn du halt Dinge, die
sehr
ein bisschen
stupide, aber wo du immer das Gleiche machen musst,
das kann halt auch ein Computer machen. Du kannst dem Computer sagen, okay, ich bin mir relativ sicher,
dass Berlin eigentlich immer eine Stadt ist.
Und wenn nicht, gut, dann kann ich das korrigieren.
Das heißt, du kannst dir Workflows bauen, wo du sagst, hey,
ich habe hier ein paar Beispiele für das,
was ich quasi in meinen Daten labeln möchte.
Das mache ich jetzt automatisch
und guck mir das nur an und wenn irgendwas falsch ist, dann korrigiere ich das.
Oder du hast schon ein Modell, das sagt ein paar Dinge voraus, ist aber nicht so gut.
Dann kannst du sagen, cool, Modell, label mir das schon mal und ich guck mir das nur an.
Das ist was, was du machen kannst und am Ende, okay, am Ende kriegst du die Daten raus
und kannst dann dein Modell damit trainieren.
Aber da fängt es halt auch, ich würde sagen, da fängt es halt erst an.
Das ist halt der erste Schritt und das Lustige ist oft, wenn man halt hört,
wie Leute sich über diese Themen austauschen,
klingt es danach, als wäre es
dann schon vorbei. Cool, du labelst so ein bisschen
deine Daten, dann trainierst dein Modell, fertig.
Aber natürlich
ist es immer
ein iterativer Prozess.
Dein Modell musst du immer weiter trainieren, genauso wie
du deinen Code
auch ständig refactors
und
weiterentwickelst. Das ist nicht
statisch. Oder eine Webseite.
Du kannst eine Webseite dir entwickeln lassen,
in Auftrag geben, aber die musst du halt auch updaten.
Und wenn du jemanden beauftragst,
dir eine Webseite zu machen,
willst du
normalerweise auch, dass
die Webseite, dass da irgendwas
eine Möglichkeit ist, dass du die auch später updaten kannst
und nicht jedes Mal deinen Webmaster anrufen musst,
wie in den 90ern oder so.
Und deswegen,
okay, einmal du hast deine Daten,
meistens irgendwas geht schief, irgendwas funktioniert nicht,
dann guckst du dir oft an, okay,
was sind die Probleme,
und Jochen unterhalten sich über die Programmiersprache Python
für Stadt, Kreis, Bundesland oder so.
Vielleicht mache ich es ein bisschen allgemeiner,
denn oft ist das ja, vielleicht macht es so,
dass die Modelle ein bisschen einfacher sagen,
okay, du musst nicht nur am Kontext erkennen,
handelt es sich um eine generelle Ortschaft,
ein Land, ein Kontinent, ein Kreis, ein Bundesland.
Und das ist oft vielleicht ein bisschen einfacher
am Kontext vorher zu sagen.
Und dann kannst du immer noch sagen, okay,
ist, dass
sobald ich weiß, da geht es um eine Lokalität,
habe ich einen zweiten Prozess,
der dann sagt, okay, der grenzt das ein bisschen mehr ein
und so weiter. Das sind alles die Entscheidungen,
die man halt treffen muss, die auch oft sehr spezifisch sind
und darauf ankommen, was man halt
für ein Problem lösen möchte.
Naja, also in der Praxis kriegt man dann
immer oft so,
was ich bei
Textkategorisierungen dann
ganze Zeit gemacht habe, war halt so
in einem Preisvergleich Angebote in Kategorien
sortieren. Und da ist es halt zum Beispiel, merkt man dann, wenn man viele Angebote hat und auch viele immer neu dazukommen von irgendwelchen Shops, die man vorher noch nicht gesehen hat, dass es unter Umständen sehr sinnvoll ist, so eine Kategorie zu haben, wie alle Dinge, für die wir keine Kategorie haben, weil ansonsten verteilen die sich halt in alle Dinge, wo man eine hat und das ist gar nicht gut, weil dann denkt man sich, wo kommt dieser Kram immer her? Ja, genau. Einerseits willst du dir natürlich vorher idealerweise Gedanken machen,
wie ordne ich das ein?
Du möchtest auch nicht, dass du während du das annotierst, dass jeder
dann einfach mal, oh hier habe ich noch eine Idee für eine Kategorie.
So stellen sich das
auch manchmal Leute vor, aber das ist natürlich nicht sinnvoll.
Aber andererseits musst du
auch überlegen, okay, wie gehe ich damit um?
100 pro, du hast 1000 Beispiele
annotiert und dann denkst du, ja Mist, nee, hätte ich jetzt doch
nochmal eine andere Kategorie machen sollen.
Und dann willst du einen Workflow haben,
bei dem du das relativ easy machen kannst.
Und wo du nicht sagst, ja toll, jetzt muss ich nochmal
ganz von vorne anfangen oder
oder, ja, jetzt, keine Ahnung, jetzt habe ich meinen ganzen Fortschritt hier verloren und so weiter.
Also das ist alles richtig.
Und noch ein ganz anderes, oder ein ähnliches Thema ist,
du inkodierst immer eine gewisse Voreingenommenheit in dein Modell.
Das liegt schon daran, dass Sprache ist voreingenommen.
Und das ist ja auch nicht unbedingt schlecht.
und Jochen unterhalten sich über die Programmiersprache Python
Twitter-Kommentare generieren.
Genau, oder auch...
Oder du trainierst
dein Modell für Personennamen
und in deinen Beispielen, da haben alle so
schöne deutsche Namen wie Jochen
und das funktioniert auch total super.
Und dann setzt du das
in der Praxis ein, wo auf einmal
Leute nicht so typisch
klassische deutsche Namen haben
und dann geht das nicht. Und dann
können die Leute deine Tools nicht nutzen
oder haben dann ganz komische
Probleme,
und das ist natürlich auch was,
was du erst herausfindest, wenn du
mit den Daten arbeitest und
da tatsächlich iterierst
und
ja.
Ja.
Ja, ich glaube,
das stellen
sich viele Leute meistens dann
so einfach vor.
Ja, es ist
ja.
Und gute Tools an der Stelle.
Sprache ist messy.
und es macht es auch spannend, aber es ist durchaus, also man kommt nicht drum rum, sich auch wirklich Gedanken zu machen.
Und Ärger.
Künstliche Intelligenz macht das alles für uns.
Nein, wenn du es benutzen möchtest und da wirklich, und nicht nur, du musst dir Gedanken machen, du solltest dir Gedanken machen.
und ich finde es wichtig, dass wir uns alle Gedanken machen über das, was wir entwickeln,
was wir erreichen wollen, wie wir das machen, ob es Sinn macht, was da für Probleme auftreten können
und eben auch, wie es funktioniert.
Ich glaube, es ist wichtig zu verstehen, grob, wie funktionieren diese Modelle,
was passiert da, auf welcher Basis machen die Vorhersagen und was bedeutet das am Ende.
und das bedeutet nicht, dass jeder genau im Detail Machine Learning verstehen muss,
genauso wie natürlich, wenn du dein Auto fährst, musst du nicht verstehen, wie das Auto genau funktioniert,
aber bis zum gewissen Grad ist es durchaus wichtig und deswegen finde ich es auch teilweise problematisch,
wenn das so ein bisschen in manchen Tools oder in manchen Produkten so komplett weg abstrahiert wird,
so, uh, gib irgendwas ein, unsere magische künstliche Intelligenz macht das alles für euch.
und ich glaube, da das Problem ist,
das ist halt
schon allein
für die Benutzer
das deutlich intransparenter
macht, was da eigentlich passiert.
Obwohl eigentlich, glaube ich, auch der Endbenutzer
sollte sich überlegen, okay, was geht
da ab?
Okay, eine KI
macht das. Die erste Frage sollte sein, okay,
womit wurde die trainiert?
Oder auch, genau,
in der Medienberichterstattung, okay, cool,
irgendwas mit KI,
auf welcher Basis denn? Was macht das?
Und das einfach ein bisschen kritischer
hinterfragen und ich glaube, dahin kommen wir nur, wenn wir halt
auch dafür sorgen,
dass jeder so ein bisschen grob eine Idee hat,
wie das
so funktioniert
und das ein bisschen einschätzen kann.
Ja, das ist
momentan halt so eine Übergangszeit,
wo teilweise
die Erwartungen halt total übertrieben sind,
auf der anderen Seite halt nicht klar ist, was alles an tollen Sachen schon geht.
Und ich denke, wo dann Leute sagen, ja, das geht ja dann auf keinen Fall.
Und man denkt so, ja doch, eigentlich schon, das geht ja schon.
Das ist halt ein bisschen undiintuitiv, was auf einmal funktioniert und was halt nach wie vor schwer ist,
weil es halt auch nicht immer proportional ist zu dem, was man sich so vorstellt.
Und es ändert sich halt gerade.
Und dann hat man mühselig gelernt, dass dies oder jenes nicht geht.
Und dann ist das Wissen ja auch nur ein paar Jahre alt.
Und dann plötzlich ist es aber schon veraltet.
Und das geht in anderen Bereichen ja nicht so.
Da stimmt das halt alles noch, wenn man das mal gelernt hat.
Und ja, das macht halt
viele Verwirrungen irgendwie auf allen Ebenen.
Ja.
Ja.
Es ist auf jeden Fall eine spannende Zeit, aber ich glaube,
es gibt viele Möglichkeiten und ich glaube auch,
es gibt viele Anwendungsbereiche, wo
auch wirklich diese neuen Technologien
einen großen
Unterschied machen können.
Das würde mich jetzt tatsächlich auch nochmal interessieren, also was für
Anwendungsbereiche es denn dafür alles gibt.
Also Chatbots haben wir jetzt irgendwie schon gesagt oder
und Jochen unterhalten sich über die Programmiersprache Python
und Jochen unterhalten sich über die Programmiersprache Python
anpassen können.
Das klingt erstmal
super lame,
ist jetzt nicht,
als Beispiel denkst du so,
next, aber das ist
tatsächlich was, was
entsprechend auch einen sehr positiven
Einfluss hat,
auf die Welt,
auf die Wirtschaft, unser generelles Zusammenleben,
also auch komplett.
Das ist noch nicht mal so ein Beispiel,
hier Finance, Evil,
und das ist, ja, objektiv zu sagen, okay, gut, davon haben wir eigentlich alle was.
Jetzt, genau, als Beispiel, aber auch, ja, also, ich würde schon sagen,
die Sachen, die relativ gut funktionieren, sind nicht immer die sexiesten, wie man so gerne sagt,
aber
ja.
Ja, ich meine, ich kenne es halt
häufig, ich weiß nicht, ob das jetzt die Welt
wirklich besser macht, aber es wird viel
verwendet eben in diesem ganzen Bereich Werbung
irgendwie automatisieren
in gewisser Weise.
Da kann man sich glaube ich schon, da kann man sich tatsächlich
überstreiten.
Was passiert eigentlich, wenn man so etwas
wie Spacy auf Python als Sprache
lassen würde, also Text in Python?
also eine Programmiersprache.
Also es gibt, also Spacey jetzt an sich
ist schwer zu sagen,
weil natürlich die Implementationen,
die wir jetzt entwickelt haben, die sind natürlich so ein bisschen
getönt auf tatsächlich natürliche Sprache.
Aber es gibt sehr interessante Projekte
zu
Source-Code
Analyse
mit Machine Learning. Ich glaube GitHub hat dazu
auch was gemacht.
Das war sehr spannend und
ja, es gibt auch ein paar Projekte, wo du
halt siehst, oh cool,
dieser generative Ansatz, der funktioniert ja auch, du kannst ja auch sagen, basierend auf diesen Wörtern oder diesen Tokens im Programmierensinn, sage die nächsten voraus.
Und so kannst du natürlich, du kannst natürlich sagen, was am Ende raus das Ding produzieren muss, muss natürlich gültiger Code sein, der auch läuft.
und so haben auch Modelle entwickelt, die natürlich dann programmieren können,
also quasi reflektieren können, was andere Leute auf GitHub gepostet haben.
Oder der Super-Vergessen-Share-Auto-Competition oder sowas ist ja auch relativ nah dran.
Gibt es auch einen Bereich, wo ich sage, okay, das macht natürlich Sinn,
oder auch, wenn du jetzt rein theoretisch, stell dir vor, du hast eine riesen Codebase
und du könntest sowas trainieren für deine eigene Codebase.
und das w zum Beispiel noch mal cooler als jetzt okay auf der Basis vom ganzen Internet oder du f an mit so einem relativ generischen Modell das jetzt irgendwie auf GitHub alles m gesehen hat
dann passt das so ein bisschen an mit deiner Codebase
und dann könnte es zum Beispiel
dein Editor sagen, ja, hier hast du aber
einen Namen benutzt, der
irgendwie sieht komisch aus oder diese
Variable
das sieht irgendwie, das passt nicht
und dann kannst du sagen, ah ja, stimmt,
das war nicht so guter Stil oder
so machen wir das ja eigentlich nicht in dieser
Codebase. Das ist zum Beispiel ganz spannend.
Aber das ist auch wieder sowas,
das ist cool, aber
ist jetzt vielleicht nicht so hypig
wie, wow, AI
schreibt jetzt,
programmiert jetzt für uns.
Aber
man muss eben auch sagen, auch selbst wenn du
eben solche Modelle trainierst, die eben
die nächsten Wörter
fürher sagen, die können super interessante
Dinge ausgeben, aber im Endeffekt
dein Modell ist
kein Programmierer. Dein Modell
Dein Modell kopiert Programmierer.
Genauso wie wenn du jetzt irgendwie so ein Modell fragst zu medizinischen Themen oder so.
Auch wenn das das ganze Internet gelesen hat.
Das kann sich dann als Doktor ausgeben oder so, als Arzt ausgeben.
Oder es kann sich als, es kann genau diesen Text produzieren.
Aber es kann nicht unbedingt Krebs heilen.
weil es eben
nur das repliziert
was existiert
an Text über
die Heilung von Krebs
zum Beispiel
und deswegen
ich glaube auch so
brauchen wir bald keine Programmierer mehr
ich finde das ist immer ein bisschen
ich finde auch man kann sich
Webentwicklung angucken, das ist ein ganz gutes Beispiel
da ist einfach ein paar Jahre voraus
die Tat war, dass jeder
jedes Café
jetzt sich eine Webseite einrichten kann, bedeutet nicht, dass wir keine Webentwickler mehr brauchen.
Im Gegenteil, das ist als Beruf gefragter
denn je. Es ist nur, ja,
bestimmte Teile der Technologie sind halt zugänglicher, aber es gibt nach wie vor genug Leute,
die daran arbeiten und es bedeutet auch, dass, okay, Firmen
viel, viel mehr investieren. Jede Firma hat große Abteilungen, die sich
halt mit Web, Apps, User Experience
und so weiter beschäftigen. Das ist ganz normal.
Und das geht auch nicht zurück,
nur weil sich jeder jetzt irgendwie
einen Online-Blog einrichten kann.
Was sich vielleicht dann doch verändern könnte, ist halt irgendwie
die Art und Weise, wie man sowas macht.
Also dass man halt jetzt nicht vielleicht pure Syntax
schreibt, sondern vielleicht irgendwie auch logische
Gedanken irgendwie formulieren kann
und die Syntax dafür dann
übernommen wird vom Alkoholismus.
Ich weiß nicht, ob das wirklich gehen kann.
Ja, vielleicht.
Ja, also ich glaube auch generell für
andere
und die Programmiersprache Python.
von Programmieren. Und das sind auch
alles Tools, die man entsprechend
verbessern kann
oder wo man einfach
dem Nutzer bessere
Tools zur Hand geben kann,
um einfach
besser arbeiten zu können.
Und das heißt nicht unbedingt, dass man ein
magisches KI-Modell hat, das auf einmal
den Anwalt ersetzt oder den Arzt
ersetzt oder
den Buchhalter ersetzt, sondern...
Ein bisschen mehr, bei anderen weniger, schade.
Ja.
Ja.
Ja, wobei ich mich da auch manchmal frage, ob das nicht
so ein Bias ist, den man hat, dass man
denkt, dass da bestimmte Berufsgruppen,
die halt ein traditionell
hohes Ansehen haben, vielleicht gar nicht
so unersetzt, also ich denke jetzt gerade an sowas wie Lehrer
zum Beispiel, wo man sich sagt, ja gut,
also wenn das jetzt mit dem,
vorher fand man das ja vielleicht mit
irgendwie Remote-Dinge unterrichten
oder so,
und jetzt konnte man halt nicht anders und jetzt haben die Leute gesehen,
ah, es geht ja doch, ist ja gar nicht so schlecht,
warum ist
und Jochen unterhalten sich über die Programmiersprache Python
wegfallen. Und das betrifft
entsprechende Menschen.
Und das betrifft auch entsprechende Bevölkerungsgruppen.
Und eben
leider auch entsprechende Bevölkerungsgruppen, die schon
eh weniger
privilegiert sind als andere.
Das ist die Praxis.
So ist es.
Ich weiß gar nicht, ob es diesmal so unbedingt sein muss.
Mich würde es freuen,
wenn es auch mal andere trifft.
Aber gut, keine Ahnung.
Vielleicht trifft es auch immer die gleichen.
Das ist halt immer
ein viel tiefgehendes Problem.
Natürlich, grundsätzlich ist es ja nicht schlecht.
Wenn wir alle weniger arbeiten müssten, wäre das toll.
Aber das Problem ist,
wie alles in unserer Welt,
in unserer Gesellschaft, wird sich
dieser Vorteil eben nicht proportional
auf uns alle verteilen.
Genauso wie sich das Geld nicht proportional...
Uns geht es ja viel, viel besser.
Wir verdienen alle viel, viel mehr Geld im Schnitt.
Aber das Geld verteilt sich leider
nicht proportional auf uns alle.
sondern nur auf sehr wenige
das heißt und genauso wird es natürlich
es ist eher naiv
anzunehmen, dass sich der Vorteil
aus weniger Arbeit und Automatisierung
auf einmal
schön gleich auf uns alle verteilt, dass wir da alle
was von haben, natürlich
und das ist auch was, was man nicht
was man sich bewusst machen muss
wenn man auch an diesen Technologien arbeitet
aber was man auch andererseits nicht
mit Technologie
magisch lösen kann
wie viele andere Probleme auch
Ja.
Das ist ein interessanter Bereich, da gibt es zum Beispiel auch eine Bibliothek, die auf Spacey aufbaut, die ein Entwickler, der eben auch Jurist ist, entwickelt hat.
Das ist auch etwas, was ich sehr toll finde, dass halt in unserem Bereich, da wir natürlich auch, wir wollen sicher gehen, dass auf Spacey relativ, zumindest der Einstieg leicht ist.
Es ist unglaublich leistungsstark, aber du kannst auf jeden Fall relativ einfach anfangen und das ermöglicht eben auch Leuten, die vielleicht aus einem anderen Bereich kommen, zu sagen,
cool, ich habe mir ein bisschen Programmieren beigebracht, ich möchte
jetzt anfangen, in dem Bereich zu arbeiten.
Da gibt es ein paar Pakete, die halt
Entwickler entwickelt haben
und eins davon nennt sich
Blackstone, das beschäftigt sich eben
mit juristischen Texten auf Englisch.
Erstmal.
Da kann man auch ganz spannende Sachen
machen. Ich glaube, es ist
leider halt nicht so einfach, dass
Juristensprache
ist halt so
kodiert, dass es eh
über die Bereiche ist.
Aber es gibt,
ich glaube tatsächlich, weil es halt so eine
Formel, weil es sehr
formulärisch ist, sagt man das so?
Formal,
formalisiert.
Irgendwie so.
Das war jetzt so ein
Anglizismus-Fail, also formulaic, wollte ich sagen.
Genau.
Egal, also es ist auf jeden Fall
sehr spannend, aber natürlich, was man so weit wie auch
im juristischen Bereich, du musst ja auch immer bedenken,
am Ende sitzt da ein Richter oder so,
in vielen Fällen
und trifft eine Entscheidung.
Und das ist auch eine Entscheidung basierend auf
einer menschlichen Interpretation.
Und
das steht ja nach wie vor am Ende.
Und klar,
man kann Technik nutzen,
um Fehler zu vermeiden.
Es gibt viele Dinge, wo
man sagen kann, okay, du hast ganz viele Dokumente,
die möchtest du
am Computer drüber lesen lassen, wenn da irgendein Problem ist,
wenn irgendwas anders ist,
wenn irgendwas verdächtig aussieht.
kannst du da halt nochmal Aufmerksamkeit
Ich glaube, der Algorithmus könnte
an der Stelle zum Beispiel relativ genau vorhersagen,
was so der Spielraum
realistischerweise denn ist.
Ich meine, man kann jetzt irgendwie in einem juristischen Kommentar
nachschlagen und gucken,
wie könnte denn der jeweilige Sachverhalt
interpretierbar sein und ich glaube,
sowas kann halt der Algorithmus auch recht gut.
Also ich meine, man könnte vielleicht
diese Recherche, die vielleicht
ein Jurist machen kann, aber man muss auch wieder
vorsichtig sein, denn am Ende, worauf basiert
dein Modell? Dein Modell basiert
vielleicht auf anderen Entscheidungen. Dein Modell kann vielleicht replizieren, was in der Vergangenheit
entschieden wurde. Ist das denn immer gut?
Das ist ja das Strafverkehrsrecht trainiert.
Ja, ich meine, es gibt ja so ein paar Sachen, über die man liest oder Anläsbereiche auch aus dem
rechts, auch aus dem behördlichen oder auch aus dem Bereich Strafverfolgung, zum Beispiel in den USA,
die einem da sehr Sorgen bereiten können
oder wo auch gewisse große
Technologiefirmen hingegangen sind und
versucht haben ihre künstliche Intelligenz
sehr aggressiv
zu vertreiben und dann Leuten zu erzählen
die ist 99,9%
korrekt oder so
was natürlich
schon allein wenn du sowas hörst, dann müssen die eigentlich
die Alarmglocken angehen, aber
Leute glauben das, weil ja
es ist halt künstliche Intelligenz und
dann soll
diese künstliche Intelligenz entscheidet dann halt, ob jemand auf Bewährung entlassen wird oder nicht.
Auf der Basis von, keine Ahnung, unklar, wird ja nicht gesagt,
aber angeblich 99,9% korrekt oder so.
Und da sind natürlich alle Entscheidungen, die
Menschen gemacht haben, inklusive jeglicher Voreingenommenheit,
ob gut oder ob schlecht, drin wiedergespiegelt.
Aber andererseits gibt den Menschen das schöne Gefühl,
und Jochen unterhalten sich über die Programmiersprache Python
Manches funktioniert ganz gut, manches halt nicht
Aber wo es gefährlich wird
ist, wenn
die Allgemeinheit glaubt, dass es funktioniert
Das ist viel, viel gefährlicher als so eine dystopische
KI-Zukunft, wo die Maschinen
alles super machen
und auf einmal super intelligent sind
Ja, wenn sie super intelligent sind, vielleicht machen sie es dann ja auch gut
Wer weiß
Aber auch wenn wirklich die Idee
zumindest diese Prämisse funktioniert
Was gefährlich ist
Du hast da ein System, was irgendjemand
so zusammengehackt hat mit allem möglichen
Zeugs, was so, was gar nicht
wirklich funktioniert.
Golden Age für gute Entwickler.
Die können ja einfach dann so tun, als haben die ein gewünschtes Ergebnis
und alle Leute glauben, was sie da erzählen.
Ja, genau. Das ist ein unglaublich
Beispiel, auch hier
historisch vielleicht ganz relevant,
auch so für uns.
Dann kommt jemand an und holt deinen Nachbarn ab,
weil das KI-System,
das 99,9%
korrekt legt, gesagt hat, dass der ein Terrorist
ist. Dann sagst du dir, ja,
Also du hoffentlich jetzt nicht, aber dann sagen sich viele Leute, ja gut, wenn das halt so ist, ist halt die Technologie, wenn die da, das ist ja 99,9 Prozent, das muss schon richtig sein. Und das ist sehr düster und das ist genauso düster, wenn das halt, was weiß ich, überhaupt nicht funktioniert und so ein komisches Modell ist, was man immer trainiert hat.
Ja, aber solche Modelle gibt es ja schon.
Wenn es halt gut genug funktioniert,
dass man es einsetzt,
aber einem dann halt egal ist,
dass es halt sehr ungerecht ist und man sich dann auch
nicht mehr dafür verantworten muss, weil es hat ja der Computer
entschieden, dass es schon, das ist halt so ein bisschen wie eben,
man geht zur Bank und die hat einem gesagt,
kein Kredit für dich heute.
Ja, halt eine Gruppeanscheidung,
wo du halt irgendwie so Bewegungen
getestet werden, wo du halt von oben
so Drohnen hast, die gucken, was du halt machst
und wenn du dich halt auf den Parkplatz setzt und halt dem Strom
nicht folgst oder sowas, dann gehst du halt direkt
in den Fokus desjenigen, der da guckt, was denn da los ist.
Weil könnte ja sein, dass da irgendwas nicht in Ordnung ist.
Ja, ich weiß gar nicht, wer das, von wem dieses Bild war,
aber im Grunde, wenn man Leuten vermitteln möchte,
was denn jetzt diese, was denn in Zukunft, wie das denn funktioniert,
dann fand ich das sehr hilfreich, sich das so vorzustellen,
dass man sagt, naja, so künstliche Intelligenz,
wir haben es im Grunde mit denen heute auch schon täglich zu tun,
so mit denen wir es dann in Zukunft zu tun kriegen,
und zwar Unternehmen oder Organisationen,
Behörden, die sind im Grunde schon
sowas. Die sind nur halt sehr viel
langsamer, aber im Grunde
sind die so und
man muss sich das nur vorstellen, die Dinger werden jetzt
halt richtig schnell. So, dann
hat man so eine Vorstellung, was da passieren
wird. Das ist eigentlich
eine ganz gute Analogie auch, weil
momentan auch so eine Behörde, okay, da hast
du entsprechende Regeln, entsprechende
Abläufe und das wird
halt reproduziert von Menschen,
die halt da sitzen am Schreibtisch.
Und am Ende
ein Computer kann das genauso machen,
natürlich, aber ohne...
Ohne
Rechtsweg. Rechtsweg ausgeschlossen.
Computer irrt mich.
Und natürlich
gibt es Dinge, die auch
natürlich
ein Vorteil sein werden.
Vor allem die interessanteren Sachen sind, wo
eine Maschine einen Menschen unterstützen kann.
oder wo zum Beispiel
eine Maschine auch nochmal
auf ein Röntgenbild drauf gucken kann
und vielleicht ein Röntgenbild nochmal
entsprechend hervorheben kann,
damit sich das nochmal
ein Arzt anguckt oder so.
Damit halt nichts übersehen wird.
Aber so muss man
meiner Meinung nach auch an die Dinge rangehen.
Wenn man sieht, ein neues System kann
Tumore erkennen,
kann genauso gut Tumore
erkennen wie ein Mensch oder so.
Das heißt ja erstmal,
Erstmal heißt das ja nicht, dass das System überhaupt besser ist als ein Mensch.
Das heißt, dass du das Datenset hast, mit dem das trainiert wurde,
und dann hast du die Vergleichsdaten, an denen das ausgewertet wird.
Und meistens, wenn du Menschen nochmal sowas auswerten lässt,
die Menschen sind ja auch nicht hundertprozentig genau.
Die Menschen kriegen dann manchmal so 90% hin oder so.
Und wenn du ein System hast, das auch 90% hinkriegt,
dann sagst du auch genauso gut wie ein Mensch.
und
in einer ganz bestimmten
Aufgabe.
Aber es ist ja nicht
in so einem Bereich, wenn du
das System einsetzt und das jetzt
ausschließlich
deine Röntgenbilder auswertet, das ist vielleicht nicht so geil.
Aber wenn das System vielleicht irgendwas sieht,
was ein Mensch übersehen hat,
warum nicht? Kann auf jeden Fall
sinnvoll sein.
Und im Bereich so gruseliger Anwendung
oder so negative Dinge.
Ich finde, worüber nicht genug geredet wird, ist so
Spam und Malware.
Weil das ist tatsächlich
schon sehr realistisch
und
das ist viel destruktiver
als jetzt diese Idee, uh, werden uns
die Maschinen versklaven.
Ja. Oder
wahrscheinlich eher andere Menschen, die
Maschinen benutzen, um uns zu versklaven.
Die haben halt eine Intention,
die Maschinen gar nicht so.
Ja, ich glaube, das ist
viel nähere und realistischere
Probleme,
die wir uns stellen müssen.
Wo sich auch, glaube ich, jeder Entwickler fragen muss,
okay, was mache ich hier?
Wozu trage ich hier bei?
Ist das gut oder
schlecht?
Und ich glaube, das kann man nicht unbedingt
voneinander trennen.
Ich glaube, man kann da nicht sitzen
in seinem Vakuum und sagen, oh, ist mir egal, ich schreibe nur Code.
Ja, man kann auch relativ wenig
gegen machen. Selbst wenn man jetzt irgendwie vernünftige
für Lizenzbedingungen nimmt, ob man da irgendwie dann sich aus dem Schein da ist, das ist schwierig.
Ja, das ist auch das, wo wir uns Gedanken machen müssen, okay, wenn wir jetzt zum Beispiel
mehr Funktionalitäten für bestimmte Sprachen zur Verfügung stellen,
wer benutzt das?
Und okay, wir machen das öffentlich verfügbar, Open Source.
Wie viele Menschen gibt es, die diese Sprache sprechen? Welche Regierungen gibt es?
Gibt es da Problematiken, wo die Regierung vielleicht
und Jochen unterhalten sich über die Programmiersprache Python
und wie wir uns in unserem Alltag Gedanken drüber machen müssen.
Und auch vor allem, okay, so eine Bibliothek wie Spacey ist sehr verbreitet,
es ist sehr beliebt, viele Leute benutzen das.
Zwei Millionen Downloads pro Monat gehen irgendwo raus an irgendwelche Systeme
und an irgendwelche Server und Dinge, die Leute damit machen.
und in irgendwelche
tausende Firmen, die damit auch Dinge machen
und wer weiß wohin noch.
Ja, es ist schwierig.
Ich bin nach wie vor Verkächter von
Open Source und ich glaube Open Source als
einerseits natürlich als
Software-Modell, aber eben auch als
und natürlich andererseits muss man auch sagen als
Geschäftsmodell. Das ist ja eine
Open Source ist ja
auch weiter und weiter
verbreitet als
Softwarevertrieb
quasi. Das ist ja auch eine Realität
der Open Source Software.
Irgendwie
tatsächlich hat sich das so
durchgesetzt irgendwie.
Ich erinnere mich noch an
die Halloween Papers 1997
von Microsoft,
wo sie geschrieben haben, oh nein, das wird uns
irgendwann umbringen langfristig.
Das ist tatsächlich passiert, sehr gut.
Aber auf der anderen Seite, Microsoft heute ist auch wieder
Microsoft ist einer der Vorreiter.
im Bereich Open Source.
Hätte ich mir damals nicht träumen lassen,
aber es ist tatsächlich passiert.
Was interessant ist, finde ich,
auch da im Bereich Open Source ist,
ich glaube, es wird oft missverstanden, Leute denken,
Open Source ist verbreitet,
weil es gratis ist. Natürlich,
die Tatsache, dass es halt
meist frei verfügbar ist,
ist auf jeden Fall ein Aspekt
im kommerziellen Bereich
oder was Firmen angeht.
Die Tatsache, dass es gratis
ist, ist nicht unbedingt der Knackpunkt.
der Knackpunkt ist, dass es offen ist
und dass man
damit programmieren kann, der Code
ist da und wenn du diese Entwicklertools
hast, die eben auch Open Source sind
also Open Source Bibliotheken
zur Verfügung gestellt wird
und die Tatsache, dass du
nicht auf eine
Lösung festlegst oder auf einen
Anbieter festlegen musst
und dass du dich da nicht
einschließen lässt
und diese Autonomie bewahrst, ich glaube
und das ist in der Praxis tatsächlich, was für Firmen deutlich entscheidender ist als die Tatsache, dass es
0 Euro kostet. Denn es kostet ja in der Praxis nicht 0 Euro
mit einer Open-Source-Bibliothek was zu entwickeln.
Und da ist wieder unglaublich viel Geld rein investiert in vor allem
KI, Machine Learning, die entsprechenden Entwicklungen. Das sind top bezahlte Entwickler.
Weswegen auch zum Beispiel Entwicklertools und
Developer Experience und Tools, die halt sowas fördern
und einfach die Entwickler produktiver machen,
einen großen Einfluss haben können.
Weil cool, wenn dein top bezahlter
Machine Learning Entwickler
ein bisschen weniger rumsitzen muss
und
stupide Arbeit machen muss und einfach
besser arbeiten kann, ist das
natürlich besser für alle.
Lohnt sich auf jeden Fall, aber ich weiß nicht genau.
Ich habe doch häufig das Gefühl, dass es da so ein gewisses
Marktversagen gibt irgendwie, weil
wenn man sich zum Beispiel
sowas anguckt wie Pandas oder
oder Django oder Spaces weiß ich jetzt gar nicht genau, aber so halt Software, die halt als Infrastruktur unter ganz, ganz vielen Produkten und bei ganz, ganz vielen Firmen sozusagen darunter liegt, dann müsste man ja jetzt meinen, so rein aus so einem, gut, ich habe jetzt nicht so wirklich Ahnung von Ökonomie, aber so, dann wäre es doch für große Firmen allein schon aus so einem Versicherungsaspekt sinnvoll, die Projekte zu unterstützen, damit ihnen nicht plötzlich die Infrastruktur unter den Füßen wegbricht.
Ja, aber das...
Tatsächlich ist es aber so, dass kaum Firmen das machen.
Das liegt daran, dass die Informationsasymmetrie nicht zu irgendwelchen kompetenteren
oder Entscheidungsträgern durchdringend die Budgetverantwortung haben.
Die wollen halt irgendwie Sachen, Projekte bekommen und die Projektmanager,
die halt dann die Projekte bestellen oder bezahlen,
die haben vielleicht schon mal von ihren Entwicklern irgendwie so ein bisschen was von oben zugehört,
das irgendwie sinnvoll wäre, aber dann eine Ebene weiter oben sagen dann ganz viele einfach so,
ja, nee, aber das bringt uns das irgendwas, das sind die nicht so, das ist schwer.
Ja, aber so eine Idee, eigentlich.
Also ich meine, es gibt ja verschiedene Versuche, das irgendwie zu lösen.
Es ist immer ein bisschen problematisch.
Es ist halt nicht einfach.
Und ich glaube auch, einerseits, man sieht schon, es ändert sich was, auch in großen Firmen.
Denn dieses Klischee vom alten Manager, der irgendwie kaum Computererfahrung hat,
das stirbt ja langsam aus.
Du hast ja Leute im Management, die sind in ihren 40ern, die programmieren seit ihrer Jugend.
Das ist jetzt nicht mehr seltsam.
und eben auch diese Idee von so einem dummen Management, das irgendwie keine Ahnung hat.
Gibt es immer noch, natürlich, aber in vielen Bereichen hast du halt Leute, die kennen sich aus mit Technik.
Und denen kannst du auch nicht mehr irgendwelchen Schwachsinn andrehen unbedingt.
Und die haben da auch Meinungen zu, zum gewissen Grad.
Aber ich glaube, mit Open Source, ein Problem ist, es gibt ja keine wirkliche,
es ist ja alles nicht wirklich standardisiert.
Es gibt verschiedene Projekte, die aus den verschiedenen Motivationen heraus entstehen.
und manche
sind natürlich jetzt mittlerweile
gefördert von der Stiftung, das ist ja die
Tatsache für viele dieser Scientific Computing
Geschichten auch
im Python-Ökosystem
und dann gibt es aber andere Projekte, okay, das ist halt
irgendjemand hat das mal entwickelt, der hatte da Spaß dran,
das wurde
populär und
ja, jetzt
sitzt da jemand mit einem erfolgreichen Projekt
und aber kein
nicht unbedingt im direkten
Pfad zu
zu, ja, etwas kommerziell draus.
Das kann man ja auch dem Entwickler
nicht unbedingt anlasten.
Sagen, okay, gut,
das ist halt
nun mal so und auch, okay, die Firmen,
was willst du da machen?
Es kommt halt immer darauf an, auch auf die
Motivation, die zu einem Open-Source-Projekt führt.
Es gibt andere Projekte, wo
Firmen, Entwickler
speziell gesagt haben, okay, cool, ich entwickle das
und ich habe eine Motivation,
dass da entweder, wenn das populär wird
kann ich das für meine Karriere nutzen
gibt es ja auch viele Entwickler
die sagen, hey
da kriege ich einen besseren Job, funktioniert ja auch oft
oder in unserem Bereich, wir haben es ja auch
die Idee war immer, dass wir wollen
eine Firma gründen
und wir wollen
etwas machen in dem Bereich und in diesem Bereich
arbeiten und die Tatsache, okay
Spacey ist Open Source und das ist auch
strategisch so
und das ist uns sehr wichtig, aber
und das ist eben natürlich auch Teil
unserer generellen Strategie und wir sagen, okay, wir bauen,
wir machen jetzt nicht so ein Open-Core-Ding, wo du halt für
bestimmte Features zahlen musst, sondern
wir sagen, hey, hier ist unsere
Open-Source-Bibliothek, die ist gut,
du kannst sie testen, du kannst damit Dinge
bauen, wir geben sie dir
gratis, weil wir auch glauben, okay,
das, wo der meiste Wert drinsteckt, sind
die Daten, das ist nicht unbedingt, oder deine speziellen
Daten, die man auch gar nicht unbedingt so verkaufen kann,
den Algorithmus und die Bibliothek geben wir dir gratis und wenn du unsere Sachen gut findest und damit Dinge baust haben wir andere Produkte die dir auch gefallen w wenn du ein Spacey bist zum Beispiel Wenn jetzt deine Firma
ein System auf Spacey aufbaut,
dann willst du meistens auch deine Systeme
trainieren und dann willst du Daten sammeln
und dann hast
du vielleicht auch Interesse an Prodigy und
anderen Dingen, die wir darauf aufbauen.
Kann Spacey Emotionen
erkennen?
Ja, klar.
Das ist eine allgemeine Frage.
Das ist erstmal meine Antwort.
Nein, Gott.
Das ist halt sehr aufgeladene
Emotionen, ist halt auch immer
sehr abstrakt.
Und es ist auch
etwas, was sich nicht sehr gut
generalisieren lässt. Du kannst natürlich
sagen, du kannst bestimmt ein System
trainieren auf der Basis
von entsprechenden Wörtern,
Ausdrücken, wie Dinge
präsentiert sind.
vorher zu sagen,
in welche emotionale
Richtung ein Text geht. Ist ja auch sowas wie
Sentiment Analysis, ist ja auch ein Thema, was
sehr verbreitet ist,
wo die Idee ist,
wie steht
der Sprecher zu einem
bestimmten Thema, meistens natürlich in der
Marktforschung oder wer jetzt eine Marke
Coca-Cola möchte wissen, wie Leute
über Coca-Cola reden oder keine Ahnung.
Aber
was ich sehr kritisch finde, sind
diese
General Purpose Modelle,
die auch teilweise viele Cloud Services
anbieten, die sagen, oh, hier ist Sentiment Analysis
für alles. Denn
selbst ob was positiv oder negativ
ist oder welche Emotionen
hinter einem etwas
steht, selbst wenn du es messen könntest,
ist unglaublich subjektiv
und unglaublich themenspezifisch.
Also
ein Beispiel, was ich zum Beispiel, glaube ich, in meinen
Talks manchmal verwende, ist,
Du hast zwei Sätze. Ich liebe Katzen und ich hasse Katzen.
Sind diese zwei Sätze ähnlich oder nicht ähnlich?
Und teilweise frage ich, okay, kannst du auch gut Publikum fragen und meistens hast du so vielleicht so 50-50.
Und für beides kannst du begründen.
Wenn ich jetzt generell Text analysiere, relativ zu allem, was ich in der Sprache, in der deutschen Sprache sagen könnte, ist es unglaublich ähnlich.
Zwei Sätze, die kurz sind und meine Haltung gegenüber Katzen ausdrücken.
das ist unglaublich ähnlich, unglaublich speziell
im Vergleich zu allem anderen, was ich hätte sagen können
aber
wenn du jetzt, was weiß ich, eine
Dating-App entwickelst und du möchtest
irgendwie gucken, ob zwei Leute
aufgrund ihrer Profile zueinander passen
möchtest du das unglaublich
ja, möchtest du
das als sehr unähnlich ansehen
weil, ja
ein Katzenhasser und ein Katzenliebhaber
passen wahrscheinlich nicht zusammen, das ist komplett
polare Unterschiede
und so ist es auch mit
eigentlich sehr, sehr vielen anderen
Dingen,
die man vorhersagen kann
mit Hilfe von Machine Learning.
Und eben auch Sentiment
und Emotionen.
Und ja.
Ich finde, es vermittelt auch so ein bisschen das falsche
Bild eben zu sagen, oh, wir können das jetzt mit
einem vortrainierten Modell lösen.
Du kannst das lösen, wenn du es eben
wirklich speziell zuschneidest auf das,
was du machst.
Also ob der Nachrichteninformationswert
positiv oder negativ ist, kriege ich dann für das jeweilige Unterfach...
Hängt davon ab, wenn ich jetzt zum Beispiel
auf was ich spekuliere, wenn ich jetzt zum Beispiel Gewinn daraus ziehen möchte, wie sich der Kurs
in Zukunft von irgendeinem Unternehmen entwickelt, dann spielt es halt eine Rolle, ob ich jetzt
irgendwie long sozusagen gehe oder ob ich das Ding short sellen möchte
und es kann halt für mich irgendwie unter Umständen eine sehr gute
Nachricht sein, wenn Privatanleger in Gangstab-Aktien jetzt plötzlich reingehen
oder hat er schlecht gemacht.
Das Beispiel ist eigentlich auch ganz gut,
weil das illustriert auch so ein bisschen,
was man mit Machine Learning gut lösen kann
und was eben zum Beispiel nicht.
Also wir hatten, glaube ich, mal ein Beispiel,
wo jemand versucht hat, auch,
ich glaube, es ging so um so Supply Chain Risk und Management,
das ist auch sowas, klingt ein bisschen öde,
aber ist tatsächlich was, was viel wert ist,
wenn du eben sagst, okay, du hast jetzt hier einen Händler in China,
von dem beziehst du Waren, mit denen du dann irgendwas machst
und dann hast du hier jemanden in Russland
und die importieren
aber von da und da und du möchtest dann wissen,
wenn jetzt da und da
ein Streik ist oder hier
irgendwie ein Schiff untergeht oder so,
wird das in der
Zukunft zum Beispiel
dein
Unternehmen beeinflussen oder so.
Und das kannst du zum Beispiel,
ein Teil davon ist, du möchtest dann
Nachrichten analysieren und gucken, was ist los.
Es kann ja sein, in irgendeinem
kleinen Ort
in was weiß ich wo, wo jetzt zufällig gerade irgendwas hergestellt wird.
Ja, wenn die Nachrichtenkategorie Emotionen katastrophal werden würde,
möchtest du das für den lokalen Ort dann wissen?
Ja, oder irgendwie da und da passiert was, das möchtest du wissen und dann irgendwie zusammenhören.
Und genau, es gab irgendeinen so ähnlichen Fall war das.
Und es ging einem auch darum, die Firma wollte herausfinden,
okay, was ist jetzt gut für ihr Unternehmen?
Und das ist natürlich so unglaublich abstrakt.
Und der erste Schritt war, okay, die haben dann Trainingsdaten erstellt,
wo sie alles was gut für ihr Unternehmen ist hervorgehoben haben
inklusive Sachen die komplett abstrakt waren
oder Dinge die schlecht sind für das eigene Unternehmen
wenn dein Konkurrent
irgendwas auf den Markt bringt oder so
ist das schlecht für dich
und das weißt du
das ist aber was du nicht unbedingt einem Modell
auf Basis des lokalen Kontexts beibringen kannst
und dein Modell wird nicht unbedingt in der Lage sein,
so zu generalisieren und zu wissen,
die und die Firma ist dein Konkurrent
und die Tatsache, dass die ein Produkt veröffentlichen, ist schlecht.
Aber die Tatsache, dass vielleicht dein Lieferant was veröffentlicht, ist gut.
So funktioniert das einfach nicht.
Das wird auch ein bisschen klarer, wenn du dir überlegst,
wie funktioniert das Modell und auf welcher Basis trifft das diese Vorhersagen?
Was guckt sich das an? Worauf basiert das?
und wie wird quasi die Information da inkludiert.
Und da geht es dann wieder zurück in so, okay, wie breche ich das runter?
Oder okay, du kannst sagen, ich möchte ein Modell trainieren,
das Kleidung für Erwachsene, Kleidung für Kinder,
Kleidung für alte Leute oder so erkennen kann und entsprechend ordnet.
funktioniert wahrscheinlich nicht so gut,
wie wenn du sagst, oh, ich möchte
nur generell Kleidung erkennen
und hab dann andere Prozesse, die das so ein bisschen
weiter runterbrechen, denn der Kontext
gibt da oft nicht so viel her
und viel benötigt unglaublich viel
Wissen und
ist noch nicht mal so eindeutig.
Katastrophale
Beispiele waren immer sowas,
aus einer Sicht
von einem Redakteur sozusagen, oder
wie man das
verkaufen möchte, macht das durchaus Sinn, dass man
Handys mit und ohne Vertrag in zwei unterschiedliche
Kategorien packt, aus Sicht von
Machine Learning ist das scheiße, weil
das funktioniert einfach nicht richtig.
Genau, sowas, wo, okay, gut,
das kannst du dann vielleicht später machen, oder du hast
eine Datenbank, wo du diese Information abrufst,
aber, und selbst wenn
es neuere
Modelle, Architekturen und
eben auch vielleicht
vortrainierte Gewichtungen gibt, die das eben
vereinfachen,
ist immer noch die Frage, okay, willst du das tatsächlich
so lösen. Du kannst dein Problem unglaublich
komplex formulieren,
quasi von der
Machine Learning Sicht,
dann da so ein richtig krasses Modell
draufschmeißen, das dann
auf krassen Hochleistungsrechnern
laufen lassen und damit ganz gute
Resultate erzielen, wenn du vielleicht,
wenn es eigentlich vielleicht viel einfacher gewesen wäre,
das einfach ein bisschen besser
zu strukturieren oder ein bisschen
logischer runterzubrechen.
Auch die Tatsache, dass gewisse Dinge
jetzt möglich sind, heißt nicht unbedingt,
und Jochen unterhalten sich über die Programmiersprache Python
Ja, ja, ja, aber im Grunde so ein bisschen eben dieses Modell bei Spacey klang für mich auch so nach dem, das ist ja auch ein Modell, das viele, viele Open-Source-Projekte oder viele Leute, die dann mal ein Open-Source-Projekt, das dann erfolgreich geworden ist, gestartet haben, womit sie dann Geld verdienen, halt sozusagen so ein bisschen Consulting.
also es ist bei Space ein bisschen anders mit dem
Annotationstool, aber es ist halt auch im Grunde
so Dienstleistungen um
das Open Source Projekt
herum quasi.
Ja, also generell
eine Sache, also wir haben
anfangs mal ein bisschen Consulting gemacht, vielleicht
dann haben wir uns hauptsächlich auf
Produkte spezialisiert, vielleicht
machen wir in Zukunft mal ein bisschen mehr, weil es eigentlich immer ganz cool
ist, auch so ein bisschen die Connection
zu haben zu den Nutzern, aber
ja, eine Sache, die uns immer ganz wichtig war,
war Support,
finde ich immer bei vielen
Dingen ein bisschen kritisch. Also es gibt Dinge
so Infrastruktur oder so.
Ja gut, da braucht es, da macht es Sinn, jemanden
zu haben, dem du bezahlst, der dir das dann alles
einrichtet. Aber bei anderen
Tools, vor allem Entwicklertools,
wir möchten ja, dass
das Tool auch wirklich benutzt wird.
Es ist gut für uns, wenn natürlich Leute
unsere Open-Source-Tools benutzen.
Aber wenn jetzt unser Hauptgeschäftszweig
Support ist, bedeutet das
natürlich, dass wir mehr verdienen, wenn Leute mehr Support brauchen. Aber natürlich,
wenn Leute mehr Support brauchen, dann verdienen wir aber auch andererseits weniger, weil es dann
natürlich viel weniger Leute das Ding nutzen. Und ich finde das ist mal ein ganz komischer Kreislauf,
der meiner Meinung nach nicht so gut funktioniert
für viele Entwicklertools. Aber natürlich, Dinge
drumherum, Open Source ist ja auch eine gute Art und Weise zu zeigen, hey, wir können
gute Software bauen. Also wenn man das
und wenn man es strategisch
so angeht, kann es gut sein. Also ich bin jetzt nicht der
Verfechter, der sagt, oh, jeder sollte jetzt hier
seine ganze Freizeit mit Open-Source-Projekten
verdienen und quasi
gratis für Firmen
arbeiten. Aber
es ist durchaus so, dass man es auch
strategisch angehen kann und
das auch ein Pfad sein kann,
erfolgreich
zu sein und auch was zu machen, was vielleicht
einem Spaß macht.
Im Prinzip ist das ja super, genau.
und Jochen unterhalten sich über die Programmiersprache Python
entweder, ja, ich
hab ein Obsoles-Projekt, ich möchte, ich sage
Leuten, hey, benutzt das. Das ist ja auch so eine Sache.
Okay, sagst du Leuten, mein Projekt ist
geil, benutzt das, ihr solltet da alles drauf aufbauen
oder sagst du, oh, das ist nur so ein
Nobby-Projekt, ich hab meinen Code einfach veröffentlicht
und wenn jemand anders das nützlich
findet, benutzt es gerne.
Oder dieses ein bisschen oldschooligere Modell,
wir bauen was zusammen.
Das sind so für mich die drei
Arten von Open Source. Einmal, okay,
ich hab was gebaut, wenn jemand,
ich gebe es dir umsonst, wenn du Lust hast,
vielleicht findest du es ja nützlich, oder
wir bauen als Community, entwickeln wir
was gemeinsam, oder wir
haben ein Produkt entwickelt und wir geben es euch umsonst.
Und
ich glaube, davon hängt es halt
auch ab, wie die Erwartungen,
die man als Nutzer haben sollte an das Projekt.
Und ich glaube, das wird halt auch oft nicht
offen kommuniziert.
Und das ist, wo viele der Missverständnis
passieren,
wenn man eben ein
so ein persönliches Projekt betrachtet wie ein kommerzielles Projekt oder ein kommerzielles Projekt
betrachtet wie so ein Community.
Oder wenn die Nutzer oder die Maintainer gar nicht sicher sind, was sie überhaupt sind.
Das hört man dann immer von, das ist halt genau dann wahrscheinlich dieser Mismatch, dass dann die Nutzer denken,
es ist ein Produkt, wo sie dann Support einfordern können und die Maintainer denken,
warum, andere Leute haben Freizeit, warum habe ich eigentlich keine, warum sitze ich
immer, muss irgendwie kostenlos Dienstleistungen für Leute machen,
die Begleitung zu bezahlen.
Ja, und das ist ja auch von vielen Firmen oder von den Nutzern,
das ist ja nicht unbedingt immer der Respekt da, zu sagen,
oh ja, das macht jetzt jemand in seiner Freizeit.
Sondern, ja nö, ich brauche Support.
Und in manchen Sachen, okay, wenn man halt
Möglichkeiten schafft, die Maintainer zu
bezahlen, kann das gut sein. Auch so GitHub hat ja
GitHub-Sponsors und es gibt andere Möglichkeiten.
Aber kann auch in manchen
Situationen problematisch sein, wenn du
halt, vor allem, es geht ja nicht immer
um diese riesen Beträge. Wenn du jetzt ein kleiner
Entwickler bist, du sagst, hey, du hast so ein Hobbyprojekt,
und das hat auf einmal ein bisschen an Popularität
gewonnen, das benutzen ein paar
Firmen und die zahlen dir jetzt
5 Euro im Monat.
Davon wirst du nicht
unbedingt reich und das
zahlt dir jetzt auch nicht
unbedingt die Zeit, die du da rein investierst.
Aber auf einmal sind diese Firmen jetzt nicht nur
irgendwelche nervigen User
auf deinem Issue-Tracker, das sind jetzt deine Kunden quasi
oder die fühlen sich zumindest so.
Ob das jemand die Anforderung stellen
kann an dich, weil der dir 5 Euro zahlt, ist eine andere
Aber die fühlen sich, als wären sie deine Kunden und sagen, wenn die jetzt diesen Bug nicht fixen bis morgen, dann ziehe ich aber hier mein Sponsorship zurück.
Das ist jetzt nicht so das Allheilmittel, das kann auch, glaube ich, durchaus Dinge noch komplizierter machen.
Also ich habe jetzt keine Lösung dafür.
Nö, es gibt wahrscheinlich keine einfach Lösung dafür.
Ja.
Tja.
Ich bin der Meinung, dass
Open Source
quasi
dass zum Beispiel
Open Source staatlich gefördert werden sollte.
Also zumindest, oder wenn wir
in so einem System sind wie in Deutschland,
finde ich, dass die Bundesregierung
sollte
finanzielle Mittel zur Verfügung stellen, die eben
tatsächlich in die Open Source
Entwicklung fließen sollen.
oder wir sollten quasi
Open Source als
Common Good angehen.
Mit der Gießkanne oder kuratiert?
Das ist halt eine Frage.
Das Problem ist halt auch, okay, momentan,
wenn du dir das anguckst, okay, was wird so entwickelt,
wer bekommt Zuschläge für
die Entwicklung von was und wie funktioniert das am Ende
und wie sieht das denn aus?
Also ich finde,
ich glaube schon,
ich glaube,
eine Lösung, wo
da jemand sitzt, der
der Open-Source-Minister sitzt und sich die Open-Source-Projekte aussucht, finde ich auch problematisch.
Ich glaube nicht, dass das etwas ist, was wir möchten.
Ich kann mir auch momentan keinen Open-Source-Minister vorstellen.
Es gibt nur sehr wenige politisch aktive Menschen, die ich momentan vorstellen könnte als Open-Source-Minister.
Andi, schau ja nicht über Impftags-Force jetzt. Schade, der wäre doch gut geeignet gewesen.
Ja, ich hätte jetzt vor, du hast dann so ein
Äquivalent von Horst Seehofer
als Ops-Source-Minister.
Ich glaube, das wollen wir alle nicht.
Aber
wie gesagt, ich habe jetzt noch kein
politisches Programm ausgearbeitet,
das ich hier präsentieren möchte, aber ich glaube,
das ist auf jeden Fall eine Richtung,
die ich
Ich weiß nicht, ich hätte mal überlegt,
das wäre doch ziemlich
einfach, zumindest mal die Anforderungen
von irgendwelchen öffentlichen,
größeren Projekten reinzuschreiben, dass halt selbstverständlich, wenn das halt mit öffentlichen Mitteln finanziert wird,
auch dann als Infrastruktur wieder zurück an die Öffentlichkeit
geht. Aber ja, keine Ahnung.
Ja, das würde ich auch unterstützen. Ich kann mir auch gut vorstellen, warum die das
nicht möchten.
Ja, klar, dass die Auftragnehmer das nicht möchten, das kann ich mir auch gut vorstellen.
Ich könnte mir auch vorstellen, die jetzt vor manche dieser öffentlich finanzierten Projekte,
auch die man dann so nur als Nutzer mal zu sehen kriegt, wenn man mit denen interagiert.
Achso, ja.
Oder so was jetzt zum Beispiel, auch selbst so eine App oder irgendein Portal, irgendwas wird entwickelt,
da wird ordentlich viel Geld reingegeben und okay, es gibt auf jeden Fall ein Argument zu sagen,
das sollte Open Source sein, damit wir das auch sehen können.
Zumindest jetzt nicht die ganze kritische Infrastruktur oder so, aber grob, okay, wie funktioniert das?
was ist da hinter?
Oder vielleicht ein paar Details.
Okay, wenn die jetzt irgendwelche Modelle trainieren,
dann wäre es schon gut,
ein bisschen mehr
Informationen dazu zu haben, was da jetzt reinfließt.
So wäre das gebaut.
Sind da überhaupt diese ganzen Fragen, die man eigentlich mal
berücksichtigen sollte, sind die denn berücksichtigt worden?
Hat da sich jemand drüber nachgedacht?
Ja, wahrscheinlich nicht.
Das wäre schon gut.
Aber ich glaube,
es geht da auch
ein ganz neues Genre an
Technikjournalisten,
die sich wahrscheinlich den ganzen Tag damit beschäftigen könnten,
die Open-Source-Projekte,
die staatlich geförderten Open-Source-Projekte auseinanderzunehmen
und zu analysieren.
Was ja auch nicht schlecht wäre.
Aber ich meine, es gibt halt,
wenn man sich so Machine Learning anguckt,
es gibt ja nicht wirklich Standards,
die man anbringen könnte.
Und es ist ja auch schwierig.
und Jochen unterhalten sich über die Programmiersprache Python
Weißleihe sagen, relativ klarer Fall, okay, das geht natürlich nicht, wenn jetzt die Daten nicht verfügbar sind.
Da geht es über andere Sachen, wo du, okay, nur wie abstrakt
sollten diese Gewichtungen sein, die du trainierst,
um halt das Argument machen zu können, das repliziert jetzt nicht unbedingt
die Originaldaten. Kann man das überhaupt sagen?
Ja, das ist halt immer die Karte.
Wenn jetzt Instagram oder Facebook sagt, wir trainieren jetzt unsere Modelle anhand von
Profilbildern unserer Nutzer.
Geht das? Geht das nicht? Können die das dann
verwenden? Kannst du einfach das Internet
scrapen und
dann dein Modell
veröffentlichen, das dann alle möglichen Firmen benutzen?
Und wenn irgendwas ist,
wer ist schuld? Du? Die Firmen?
Das sind alles
Fragen, die haben...
Da kann man sich drüber auslassen.
Wie gesagt, ich bin blei.
Ich habe da nur Meinungen oder Ideen
zu, aber auch da kommt es ja gar nicht
an. Es ist am Ende, es gibt ja keine, es gibt kaum Entscheidungen dazu, es gibt kaum Fakten dazu.
Es ist halt, du musst halt gucken.
Naja, das wird noch eine ganze Zeit lang dauern, bis das einigermaßen...
Bis das überhaupt jemand da irgendwo verstanden hat.
Ja, das wird erstmal ein bisschen...
So diese Trolley-Probleme von wegen hier, okay, wer ist schuld, wenn das selbstfahrende Auto
einen Menschen überfährt? Das gab es ja schon.
So, wer ist da schuld?
die Firma, die das Auto hergestellt hat
die Person, der das Auto gehört
der Entwickler, der
dieses Modell trainiert hat
der
die Person, die
auf Mechanical Turk für 3 Dollar
die Stunde
das falsch gelabelt hat
das falsch gelabelt hat
ja
ja
auf jeden Fall interessante Fragen
Ja, ich denke, der Weg zu sinnvollen und so Common Sense irgendwie Umgang damit im Alltag wird gepflastert sein mit einem Haufen Fehlentscheidungen, absurden Situationen und komischen...
Wie bei allem, ja.
Ja.
Das ist auch ein entspannender Ausblick in die Zukunft.
und ja, es ist
alles nicht
ganz schlecht, es ist alles nicht
super schön. Ja, ich finde solche Sachen
sehr wertvoll.
Schön, dass wir mal drüber geredet haben.
Nein, wirklich, was ich
jetzt da geschrieben habe, ist etwas, was uns
irgendwie weiterbringt.
Es hilft dabei, so Gefühle vorzukriegen.
Ja, auf jeden Fall.
Ich habe immer die Hoffnung, dass das
irgendwann besser wird und nicht schlechter.
Ja. Also objektiv betrachtet
ist es ja auch. Dinge werden ja besser.
Also natürlich ist es immer,
man hat das subjektive Empfinden und es
gibt natürlich andere Probleme, auch wenn du
okay, wenn du
der Gesellschaft es besser geht,
auch dem Einzelnen geht es ja
besser, wenn du so
generell den Stand der Welt
dir anschaust. Sagst, okay, haben wir
wie viele
Menschen haben wir, die unter der Armutsgrenze leben?
Aber natürlich ist das nicht die einzige
Art und Weise, wie du sowas
quantifizieren kannst. Ja, vor 100
und haben die Leute Menschen auf dem Zoo ausgestellt.
Das ist halt einfach, ja.
Ja, natürlich. Oder die Lebenserwartung,
der generelle Lebensstandard ist
natürlich besser, aber das heißt ja eben auch nicht, dass man
sagen kann, ach ja, ist ja alles super, im Schnitt
geht es allen besser. Oder, oh,
du bist weniger arm als vorher, bist aber immer noch
arm. Also,
das ist ja nach wie vor ein Problem.
Und wir haben, wir, wir,
ja, denken uns auch immer neue
Probleme aus. Ja,
es eskaliert natürlich auch an einigen Stellen immer völlig.
und Jochen unterhalten sich über die Programmiersprache Python
Fortschritte haben die
aus sich heraus schon so
in sich
emanzipatorisches Potenzial oder sind sie
doch dann nur dazu, dass Leute irgendwie
noch reicher werden, die vorher schon relativ reich waren?
Schwer. Also ich meine,
was man vielleicht sagen kann,
ist, dass in Zeiten, in denen sich viel ändert,
gibt es halt auch mehr Chancen für Leute, die halt
sozusagen was machen möchten.
Oder wir nehmen die Antwort, die wir immer geben können,
it depends.
Ja, stimmt.
Deutschland läuft.
Irgendjemand hört sich das an, der ist was weiß ich wo
und das geht alles.
Und jetzt, okay,
es wird weniger wichtig, wo jemand arbeitet,
wo jemand leben möchte.
Ja, voll gut.
Das ist auf jeden Fall
theoretisch eine sehr positive
Entwicklung oder kann eine sehr positive
Entwicklung sein, wenn es entsprechend genutzt wird.
Ich finde,
das ist ein sehr tolles Schlusswort, ehrlich gesagt.
Ja.
Ne, klingt gut
Egal wo ihr uns also hört
Ob ihr nachts, tagsüber, morgens, mittags, abends
im Flieger oder
im Boot oder
auf der Couch
Zum Einschlafen
Es ist der Fortschritt, der gerade durch eure Kopfhörer
in euer
Gehirn ausstrahlt
Vielen Dank Ines, dass du heute dabei warst
Ja, war sehr schön
Ja, bleibt uns gewogen
und schaltet wieder rein
Tschüss
und die Programmiersprache Python.