Transcript: Natural Language Processing mit spaCy

· Back to episode

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.