Transkript: Vermischtes über Data Science, Machine Learning und nbdev

· Zurück zur Episode

Vollständiges Transkript der Episode. Zeitstempel beziehen sich auf die Audiowiedergabe.

Dominik

Ja, hallo liebe Hörinnen und Hörer, willkommen beim Python Podcast in der 28.

Dominik

Episode heute.

Dominik

Es ist ein bisschen wieder eine Laberfolge, und zwar über Machine Learning heute.

Dominik

Ja, hi Jochen, du bist wieder dabei.

Ich bin der Dominik.

Jochen

Ja, hallo Dominik.

Dominik

Und heute ist auch der Christian wieder.

Christian haben wir auch dabei.

Hallo, willkommen.

Danke.

Dominik

Ja.

Dominik

Habt ihr euch schon was genaueres überlegt oder wolltet einfach so ein bisschen die Dönikis erzählen?

Dominik

Wir haben heute übrigens, wir wollten es ja irgendwann mal anfangen zu sagen.

Dominik

4.

Dominik

Februar 2021.

Jochen

Ja, ich glaube, diesmal wollten wir wieder so ein bisschen Richtung irgendwie Data Science Machine Learning ein bisschen mehr.

Jochen

Wir hatten in letzter Zeit immer ganz, ganz viel Webentwicklung und so.

Jochen

Ja, und bewegen uns da jetzt mal so ein bisschen.

Jochen

So wirklich das Thema haben wir noch nicht, wir haben alle so ein bisschen was mitgebracht, mal schauen.

Dominik

Ja, wir hatten auch einige Hörerwünsche, was Datentypen zum Beispiel angehen.

Dominik

Wir wollten auch mal eine Folge machen, wo wir genau diese Bild-In-Interprint-Implementierung in Python dazu erklären.

Dominik

Aber das wird dann eine der nächsten Folgen werden.

Dominik

Was wir euch aber nochmal fragen wollten, wenn ihr Feedback und Kritik und so habt, wie immer an hallo.python podcast.de und sagt uns auch mal, auf welche Themen ihr so besonders Lust hättet.

Dominik

Dann werden wir die auch nochmal mit in unsere engere Auswahl nehmen.

Dominik

Ja.

Dominik

Bei Schienung, es gibt was Neues.

Dominik

Es gab eine möglichen Updates von Paketen NumPy, Pandas, Pandas auch?

Dominik

MyPai?

Dominik

Nein, Pandas nicht.

Jochen

Doch, Pandas, Pandas tatsächlich auch, fällt mir jetzt gerade so ein.

Jochen

Ich hab's das hier gar nicht aufgeschrieben, aber ja, gab es jetzt auch letztens irgendwie eine neue größere Version 1.2.

Jochen

Ich bin nicht ganz sicher.

Jochen

Aber tatsächlich auch NumPy hat die größte Release, also mit den meisten Pull-Requests seit X Jahren, jetzt mit 1.20 und JupyterLab 3 ist draußen und Spacey, also die ganze Natural Language Processing-Geschichte, nochmal Version 3 ist jetzt gerade erschienen mit Support für Transformer.

Jochen

Also genau, das war mal so das erste, ich habe immer anguckt, was ist denn alles Neues passiert, weil ich da auch schon lange nicht mehr drauf geguckt habe und da ist ja in letzter Zeit einiges hat sich da.

Dominik

Falls ihr irgendwie tatsächlich mal den Einstieg finden wollt in NumPy und oder Pandas oder schon immer mal ein bisschen tiefer angucken wollte, es gab einige richtig coole YouTube-Tutorials, die ich fand, die ich bisher zu die besten nicht kennengelernt habe von Ben Gorman dazu.

Dominik

Und zwar NumPy for Grandmas und Pandas for Your Grandpa.

Okay.

Dominik

Ja, eine richtig schöne Einführungsserie für die beiden Bibliotheken, würde ich sagen, wo man mal so ein bisschen schon doch tiefer reingucken kann.

Fand ich super.

Jochen

Genau.

Jochen

Ja.

Jochen

Genau, wollen wir so ein bisschen News machen?

Jochen

Also es gab noch so ein paar andere Releases auch.

Jochen

MyPi kann man dazu was sagen.

Jochen

Also ich weiß nur, das hat jetzt irgendwie Support für 3.9 Python.

Jochen

Dann gibt es irgendwie für PIP's einen neuen Resolver.

Jochen

Ich weiß nicht, hat es sich den irgendjemand schon mal angeguckt, so ein bisschen?

Christian

Ich hatte drüber gelesen und mir ihn nochmal auf die Wiedervorlage gepackt.

Christian

Tatsächlich bin ich mit, was das Resolving angeht, momentan, ich bin immer noch an dem anderen Ende umdoktern, wie ich irgendwie so einmal zusammengestellte Paketlisten so fix und fertig durch die Gegend verteile.

Christian

Deswegen hatte ich es wieder zur Seite gelegt, aber ich merke auch, es hat uns nirgendwo gebissen zumindest.

Christian

Es stand ja so ein kleines Teilchen drauf von, man kann noch den alten Reserver, glaube ich, aktivieren, wenn einen der neue irgendwie Quatsch macht.

Christian

Aber nee, erstmal nicht negativ aufgefallen.

Jochen

Ja, ne, ich merke, ab und zu funktioniert das halt irgendwie nicht so richtig und dann irgendwie meistens hilft irgendwie das Paket, was Ärger macht, nochmal auszukommentieren, um irgendwie alles neu zu installieren und dann wieder reinzunehmen, dann geht es irgendwie wieder.

Ja.

Jochen

Aber ich habe es auch eigentlich nicht.

Jochen

Also insofern, ich habe es nicht, es hat nicht wehgetan.

Jochen

Insofern scheint alles halbwegs gut gelaufen zu sein.

Christian

Wobei das, was du, also wenn du das erzählst, ist es aber genauso ein Fall von, ja, nee, das kann ich nicht leiden.

Jochen

Ja, ja, das ist so ein schlechtes Gefühl, wenn ich sowas bemerke.

Christian

Ich spiele halt ein bisschen rum mit so einer Form von Log-Files, dass ich halt ein Environment beschreiben kann.

Christian

Ich hatte, glaube ich, an irgendeiner Stelle ja mal das App-Env erwähnt gehabt, was ich benutze, um so fertig gebackene Virtual-Enfs zu erzeugen.

Dominik

Klingt nach Poetry.

Christian

So ein bisschen, das Problem bei Poetry war mir, das ist zu viel.

Christian

Das ist einfach zu viel Kram.

Christian

Ich brauche irgendwie was ganz Kleines.

Christian

Der wichtigste Teil für mich ist, wir haben so Projekte, wo wir ein Repo haben, das auschecken und dann bringt das Repo im Prinzip seinen Log-File mit.

Christian

Und das konkrete Tool, was daran hängt, Bootstrappt sich mit dem Log-File selber durch ein kleines Bootstrap-Skript, was in dem Repo drinnen liegt.

Christian

Also Bateau ist bei uns so das große Werkzeug, was das benutzt.

Christian

Und dann hast du dort ein, dann kann sozusagen jeder, der mit diesem Projekt arbeitet, das Repo auschecken und tippt einfach Punkt, Schräg, Strich, in dem Fall Bateau oder auch irgendwas anderes.

Dominik

Du musst vielleicht nochmal kurz auf Bateau eingehen, gleich?

Christian

Ja, kann ich auch.

Christian

Und dieses Skript, was in dem Repository eingecheckt ist, ist nur ein ganz kleines Bootstrap-Skript, so ein Single-File, was auch über mehrere, mindestens so, glaube ich, 3.4 oder 3.5 bis hoch zur aktuellsten halt kompatibel ist.

Christian

Und der ist ein kleiner Wrapper, dass wenn man ihn aufruft, guckt er, ob ein funktionierendes Virtual Env für das Log-File oder halt auch das Requirements-Text-File vorhanden ist.

Christian

Und wenn ja, dann startet er sozusagen das eigentliche Kommando aus diesem Virtual Env statt sich selber.

Christian

So einmal durchgerecht wie so ein Exec.

Christian

Und wenn das aber eben nicht der Fall ist oder wenn das Virtual Env kaputt ist oder wenn sich das Log-File geändert hat oder wenn du deinen Python-Interpreter geändert hast, dann erkennt er das und macht in dem Moment sofort eine Reinstallation, ohne dass du irgendwas tun musst.

Christian

Du rufst einfach wie immer dein Tool auf, um zu sagen, ich will es XY machen und dann sagt er im schlimmsten Fall, nur ja, Moment, weil zum Beispiel ein anderer im Projekt hat was committed, weswegen des Logfiles sich geändert hat, und dann zieht der das sofort gerade.

Christian

Und dieses self-contained-Ding, es ist auch so, dass du kannst dann halt dieses Tool in sieben Projekten benutzen und jedes Projekt benutzt seine eigene Versionsliste automatisch.

Christian

Und du hast nie eine systemweite Installation dieses Tools, sondern das hängt immer konkret an den Projekten dran.

Christian

Und das ist ein Use Case, den habe ich nirgendwo gefunden, der das so abbildet.

Christian

Und Poetry hatte ich gesehen und das war aber sozusagen dafür, Poetry zu verwenden, wäre viel zu aufwendig geworden, um dieses ganze Self-Bootstrapping irgendwie anzugehen.

Christian

Und ich merke, da habe ich auch häufig Gedanken und Ideen, wie ich möchte, dass das funktioniert, wo ich gegen andere Tools nicht mehr ankämpfen möchte.

Christian

So viel Code ist es dann nicht, das selber zu bauen, als dass ich dann einem riesen Tool hinterherlaufe, dem man ständig sagen muss, du, ich brauch das aber so oder so.

Dominik

Okay, und vielleicht, das machst du mit Bateau oder das Tool heißt Bateau?

Christian

Also dieses Bootstrap-Tool heißt AppEnv.

Christian

Das ist im Prinzip nur eine einzige Datei, da gibt es bei uns auf GitHub, GitHub, Flying Circus.io, AppEnf.

Christian

Das ist nur eine einzige Python-Datei, die legt man sich in ein Repo.

Christian

Und wenn in dem Repo daneben eine Datei liegt, die Requirements-Text heißt, dann passiert folgendes: Dann benennt man das Skript so wie das eigene Tool.

Christian

Das muss nicht bei Toe sein, das kann irgendein Python-Package sein, was ein Konsole-Skript hat, was genauso heißt wie das Skript, was du in deinem Repo ablegst.

Christian

Und dann installiert er alles das, was in dem Requirements-Textfall drin steht, in eine geheime, in Anführungszeichen, Position.

Christian

Also es heißt dann irgendwie Punkt, dein Tool-Name, Schräg, Strich und dann werden da so gehashte Virtual Envs drin erzeugt und auch wieder aufgeräumt und ruft im Prinzip dann bloß Punkt da aus dem Virtual Envin und dieses Konsolskript auf.

Christian

Viel mehr macht er nicht.

Christian

Und das ist das App-Env, um so einen Bootstrapping-Mechanismus da einmal abzubilden.

Christian

Und Bateau ist ein Werkzeug, was das halt benutzt.

Christian

Wir haben so Bateau-Projekte, also das ist ein Deployment-Werkzeug, ähnlich zu Ansible und anderen Tools.

Christian

Und ein Charakter von dem Ding ist halt, wenn du Bateau-Projekte machst und wir haben bei uns bei den Mitarbeitern halt gerne, dass die haben 12, 15, 20 so Projekte rumfliegen, die sie jonglieren.

Christian

Und jedes davon, dann, eins davon hat ein Kunde halt mal in Dreivierteljahren nicht angepasst und das ist jetzt auf einer Bateau-Version von vor anderthalb Jahren oder irgendwas.

Christian

Und dann will ich nicht überlegen müssen, was muss ich tun, um diese Bateau-Version wieder zum Laufen zu kriegen, weil meine letzten drei Projekte waren in einer anderen Bateau-Version.

Christian

Oder ist das Thema halt, nee, du brauchst ja bloß das Repo nehmen, rufst Punkt slash Bateau in dem Repo auf und der zieht sich exakt die Version, die für dieses Projekt gebraucht wird, her.

Christian

Und du kannst dann halt in dutzenden Projekten halt die Dependencies ordentlich managen, ohne jemals händisch reingreifen zu müssen.

Christian

Das macht er alles im Self-Bootstrapping und auch ohne, dass in deinem System was anderes installiert ist, außer Python selber.

Christian

Also da sind auch noch ein paar Hacks drin, dass wenn du halt kaputte Pythons hast, wie auf Debian üblich, also Debian macht halt gerne Setup-Tools und Pip und so kaputt, und dass die Standard Library noch nicht mehr geht, dass da ist überall so dieses kleine Wissen drin von, wie ziehe ich mir das in so einem Moment halt alles gerade, dass ich mich dann aus dem luftleeren Raum, solange ich irgendwie ein Python habe, was nicht nur ein bisschen kaputt gemacht wurde, dass er sich daraus halt bootstrappen kann und dir dann ein voll funktionier

Christian

es Virtual Enf auch zusammenbaut.

Christian

And du eben nie sagt und du musst nie überlegen, muss ich das Virtual Enf just aufräumen oder nicht, sondern er macht es halt immer, weil er erkennt, wann das nötig ist.

Das klingt klasse.

Jochen

Ja.

Jochen

Ja ehrlich gesagt, hätte man an der Stelle schon eigentlich eine ganz gute Überleitung zu MBDev, also das wäre so ein Ding, mit dem spiele ich in letzter Zeit so ein bisschen rum.

Jochen

Weil das im Grunde auch ein Großteil von diesen Dingen halt tut.

Dominik

Probleme lösen, wie man seine Umgebung so einrichtet, dass man damit arbeiten kann, oder?

Jochen

Ja, wobei es halt auch sehr weit noch in den Bereich reinragt, irgendwie, wie kann man quasi ein Projekt so konfigurieren, das hinterher dann auch Pakete für Pipe PI rausfallen und Dokumentationen und irgendwie GitHub-Actions, wo dann direkt irgendwie so ein Continuous Integration Zeugs halt läuft und

Dominik

Also Jochen, man hört raus, mag Notebooks, Jupyter Notebooks.

Jochen

Ja, also ich mag die tatsächlich und das Ding dreht halt quasi den Jupyter Notebook-Level so auf Öf, weil da schreibt man halt alles in Jupyter Notebooks, beziehungsweise das ist halt eigentlich so eine Art Idee und plus Projektverwaltungsdings irgendwie und genau, also es ist halt quasi so die Antwort auf die Frage, was wäre, wenn ich alles in Notebooks machen wollte.

Jochen

Und dann kommt so ungefähr das dabei raus.

Jochen

Und das hat einige interessante Vorteile.

Jochen

Also es hat auch interessante, also es ist halt auch ein bisschen komisch natürlich, also wenn man jetzt irgendwie eine Idee gewohnt ist oder irgendwie auch nur einen normalen Texteditor, dann kommt einem das alles so ein bisschen eigenartig vor.

Jochen

Es gibt ja auch so einen sehr populären Talk, ich weiß gar nicht wo, der gehalten, Joel Gruz, auch der macht auch so einen Data Science Podcast, Adversarial Learning, glaube ich, heißt der.

Jochen

Und der macht viele YouTube-Videos und der hatte halt so einen Talk gehalten, I Don't Like Notebooks, der dann oft irgendwie immer rumgeschickt wurde.

Jochen

Und wo er sagt, ja, ja, das encouraged irgendwie in Haufen sehr schlechte Softwareentwicklungspraktiken und macht die funktionierenden Workflows, die ich habe, halt kaputt.

Jochen

Und deswegen, ich finde das alles doof und nicht deterministisch und ja, in gewisser Weise hat er da so einen Punkt, aber man kann da auch überall um diese ganzen Ecken drumherum arbeiten und manche Sachen sind halt auch sehr, sehr, sehr, sehr cool dabei.

Jochen

Also das, was es halt so ein bisschen möglich macht, ist halt ein Ideal, dass ich glaube, Knut hatte das irgendwann mal 1983 oder so aufgeschrieben, so von Literate Programming, dass man halt sozusagen nicht nur Code hinschreibt, sondern halt Dokumentation und Code oder beziehungsweise der Code tun soll, halt irgendwie zusammen.

Jochen

Gab es diverse Versuche, das irgendwie hinzukriegen.

Jochen

Ich glaube, mit den ersten war, war das der erste Versuch war Mathematiker, aber das ist halt irgendwie nicht so richtig populär geworden.

Jochen

MATLAB, ja, RStudio ist halt, geht auch in die Richtung.

Jochen

Und jetzt halt Jupyter Notebooks, damit würde ich sagen, war es halt so, es hat, hat es in gewisser Weise einen Durchbruch gehabt und wird jetzt überall verwendet und halt auch JupyterLab nochmal so als komplette Idee irgendwie dafür.

Jochen

Und genau, da gibt es dann halt auf diesen Talk auch eine Antwort von einem, der sich, also der, derjenige, der sich diese NBDF-Geschichte überlegt hat oder dann halt ja, die dann entstanden ist bei der Entwicklung einer Bibliothek, das Jeremy Howard, der hat der hat halt FastAI, die Library, das ist auch so ein Rapper um PyTorch im Grunde, damit geschrieben, auch ein Buch darüber geschrieben, das auch wahrscheinlich so das empfehlenswerteste Buch über P

Jochen

yTorch ist.

Jochen

Und das Buch ist auch komplett mit NBDev geschrieben und das ist halt schon, das hat auch schon sowas sehr, sehr Cooles.

Jochen

Und der argumentiert halt ja, also für mich ist das alles viel einfacher.

Jochen

Also einmal diese ganzen Hässlichkeiten und da muss man leider sagen, es ist halt, es gibt viele Hässlichkeiten, es fällt vielen Leuten total schwer, irgendwie Projekte ordentlich aufzusetzen.

Jochen

Das geht halt alles mehr oder weniger weg, wenn die Leute halt mit, also es gibt ja so ein Template für GitHub zum Beispiel, wo man einfach sagen kann, okay, ich erzeuge mir so ein MBDev-Projekt oder man sagt MBDev New irgendwie, ich weiß jetzt gar nicht genau, wie man das Papier installiert hat und dann erzeugt es einem halt so eine Projektstruktur, so ähnlich wie bei Poetry, Poetry Init oder so.

Jochen

Nur es macht noch mehr, deutlich mehr.

Jochen

Und ja, dann für ihn, Alter, ist es halt total super, weil die Pull-Requests werden halt besser.

Jochen

Und er reviewed die Pull-Requests, da gibt es dann auch ein eigenes Tool für, dann direkt in einem Notebook, das halt irgendwo auf Binder oder irgendwie auf Google Colab oder so gestartet wird.

Jochen

Das heißt, ein Pull-Request kommt rein, er klickt halt auf einen Link, dann geht das halt in einem eigenen Notebook auf, das überhaupt nicht bei ihm läuft, sondern irgendwo in der Cloud.

Jochen

Und dann kann er halt auch direkt sehen, da das halt so ein bisschen Richtung Literate Programming geht, was hat sich denn geändert?

Jochen

Also wie verändern sich zum Beispiel auch die Visualisierungen von irgendwelchen Dingen?

Jochen

Das ja ansonsten auch ein Problem wäre, wenn jemand einen Pull-Request stellt für so, jetzt sieht die Visualisierung von irgendeiner Geschichte besser aus.

Jochen

Ja, da muss man erstmal die Daten zusammensammeln, das dann irgendwie ausführen und dann sich das angucken, oh, wo guckt man sich das an?

Jochen

Wie generiert man diese Grafik eigentlich?

Jochen

Das ist alles ziemlich umständlich.

Jochen

Und da hat man es halt dann direkt sehen, okay, ah, sieht besser aus als vorher, super, Pull-Requests akzeptieren, fertig.

Jochen

Und auch ein schöner Vorteil ist halt Tests und so, die sind da auch direkt mit im Notebook.

Jochen

Also normal, also bei so klassischer Softwareentwicklung mit einer IDE oder so, hast du dann halt schon auch die Tests oft in einem sehr anderen Bereich deines Pakets als der Code, an dem man gerade schreibt.

Jochen

Und das ist halt auch immer nicht so richtig, also die liegen halt nicht nah beieinander.

Jochen

Während wenn man das jetzt in ein Notebook schreibt, dann hat man halt irgendwie den eigentlichen Code, der irgendwas tut.

Jochen

Und halt noch Dokumentation und Beispiele, wie man es halt ausführt und so drumherum.

Jochen

Plus die Tests alle zusammen in einem Notebook.

Jochen

Und über den Teilen, die halt hinterher in der Library wirklich landen sollen, steht halt noch irgendwie Export in Markdown oben drüber und dann werden die halt in eine Library gepackt.

Jochen

Und der ganze Dokumentationscode nicht, aber der landet dann durchaus noch in der Dokumentation.

Jochen

Und das ist schon, das ist schon sehr nett.

Jochen

Also ich finde es auf jeden Fall einen sehr interessanten Ansatz und ja, also es.

Dominik

Ist das nicht dann irgendwie so ein ewig langes Endlos-Scrolling durch irgendwelche Projekte dann durch, von Top to Bottom oder?

Jochen

Ja gut, du kannst das ja strukturieren.

Jochen

Natürlich können die Notebooks schon lang werden, man kann das ja strukturieren, wie man möchte.

Jochen

Man kann auch viele Notebooks machen.

Jochen

Ist auch so, also es ist ein, ähm, man kann auch Dinge dann in der Library ändern und die werden dann in die Notebooks zurückgesynkt, der Code, und umgekehrt halt.

Jochen

Und es ist so, man muss, wenn Dinge jetzt, wenn Klassen zum Beispiel sehr groß werden, dann muss man nicht alle Methoden direkt an die Klasse dran schreiben, sondern man kann das dann auch später machen.

Jochen

Dann gibt es dann halt Dekoratoren, die dann irgendwie Funktionen als Methoden wieder an Klassen dranklatschen.

Jochen

Dem Code, der dahinter herausfällt, den sieht man das nicht an, aber im Notebook ist es dann halt schön übersichtlich, weil die ganzen Methoden, die die Klasse groß machen, kommen dann halt erst so nach und nach dazu oder können halt auch in einem anderen Notebook dazu kommen.

Jochen

Ja, also es ist sehr anders, als man normalerweise so entwickelt, aber ich finde, das ist interessant.

Jochen

Und ja, ich meine, ich meine, ich muss sich so ein bisschen zwingen, also ich muss mich manchmal so ein bisschen zwingen, da immer mal so reinzugucken in so solche Dinge.

Jochen

Ich habe auch zuerst, muss ich gestehen, Notebooks hielt ich erst für ziemlichen Quatsch.

Jochen

Und ich musste erst Leute damit arbeiten sehen, um zu verstehen, dass das eigentlich eine ziemlich coole Geschichte ist.

Jochen

Das war auch relativ spät.

Jochen

Also ich hatte, ich weiß nicht, wann ich erfahren habe davon, dass es Notebooks gibt, also schon wahrscheinlich relativ früh, kurz nachdem sie irgendwie da waren.

Jochen

Und dann aber gesehen, dass das eine coole Geschichte ist, habe ich erst 2015, Ende 2015 oder so.

Jochen

Und ja, wenn man es dann halt mal ausprobiert, dann merkt man doch, oh, für manche Sachen ist das total super.

Jochen

Ja, und genau, deswegen gucke ich mir das jetzt gerade an und probiere das halt auch mal aus.

Jochen

Und das ist auch halt auch sowas, was der Autor von Imdigen dann in seinem Talk als Antwort auf diesen I Don't Like Notebooks Talk erzählt hat.

Jochen

Ja, also er hat immer, er findet, es funktioniert immer gut bei Anfängern oder bei sehr, sehr erfahrenen Leuten.

Jochen

Dazwischen, wenn die Leute so sich eingegroovt haben auf ihre Idee oder so, dann sind alle immer sehr skeptisch zuerst.

Jochen

Weil das natürlich auch immer so eine harte Änderung ist.

Jochen

Ich merke das ja auch, ich meine, ich bin eigentlich VI-User und ich habe mich jetzt dieses Jahr mich mehr mit PyCharm beschäftigt.

Wie es gut.

Noch nicht so.

Jochen

Und das war schon schmerzhaft.

Jochen

Also das war irgendwie nicht, ja, aber muss man ab und zu wohl mal machen, um einfach mal zu gucken, wie sind andere Entwicklungsumgebungen denn so.

Jochen

Vielleicht gibt es da ja doch tolle Sachen.

Dominik

Also was ich mich frage, macht ihr gerne Notebooks?

Dominik

Könnt ihr da bestimmt gerne mal Bescheid, schreibt uns eine E-Mail dazu oder sowas.

Dominik

Also ich benutze zum Beispiel Notebooks auch relativ gerne, so zum schnellen Debuggen oder sowas, wenn ich irgendwie neue Methoden, neue Funktionen baue, dann schreibe ich die gerne erstmal im Notebook, zum Beispiel in einer Django-Shell dann auch oder so.

Dominik

Und probiere es dann direkt aus, ob es geht.

Dominik

Und muss halt nicht mehr das ganze Projekt immer starten und dann irgendwie den Webserver hochfahren und dann da die Module oder die Routen aufrufen, sondern ich sehe halt irgendwie direkt, ob diese kleinen Teile gehen oder nicht.

Dominik

Das ist erst so ein bisschen ein Debugger vielleicht an der Stelle oder so.

Dominik

Finde ich sehr handlich.

Dominik

Das verkürzt so ein bisschen den Entwicklungssyklus, habe ich das Gefühl.

Christian

Das ist spannend, weil ich glaube, das ist ein Phänomen von der Komplexität der Frameworks und der Libraries, mit denen man es zu tun hat.

Christian

Weil also im Kern ist ja die Handlichkeit, dass das Python eh schon hat.

Christian

Und ich habe jetzt eher eben in der letzten Zeit häufiger eher mit sehr kleinen Sachen immer wieder zu tun, weil halt viel Systemintegration, viel so Mini-Tooling, viel gerade halt auch fair verteilt durch die Gegend, wo ich experimentellen Code habe, wo ich merke, entweder meine ich so, dass ich da einen Pi-Test reinwerfe, relativ leichtgewichtig, um mir auch für Sachen, die ich gerade sketche, gleich auch die Testcases dann raus im Prinzip rauszulassen, indem ich sage, ich muss gerade mal was verstehen und die backen und dann habe ich gleich einen Test Case zu.

Christian

Oder weil ich eh bloß einen 30, 40 Zeiler habe, der irgendwo auf einer Maschine läuft, wo ich halt einen Haufen Bewegdaten brauche, weil es ist irgendein Storage-Server und ich irgendwie die Krypto von diesem komischen Ding da gerade auseinandernehme und die Formate irgendwie verstehen möchte, da merke ich, da bin ich halt häufig in so Systemintegrationen und Sachen drin.

Christian

Und ich fall irgendwie, wie du sagst, genau in diesen Mittelteil da irgendwie gerade rein.

Christian

Dass sozusagen, ja, für so einzelne Fälle haben mich die Notebooks immer wieder angelockt.

Christian

Ich sehe auch so andere Kollegen für bestimmte Fälle, die immer wieder rausholen.

Christian

Aber wenn ich es dann versuche, dann stolper ich in meinem Workflow zu schnell drüber, dass es mit irgendwie allen anderen Sachen nicht mehr so richtig andockt, die ich bei mir so parat liegen habe.

Dominik

Also ich würde es zum Beispiel sehr gerne auch wie das Code.

Dominik

Und da kann man die mittlerweile auch sogar integrativ einfach nutzen.

Dominik

Das heißt, du hast dir dann einfach nur irgendein Bei liegen wie den anderen Code, den du auch drin hast, neben dem Terminal oder sowas und kannst halt dann direkt fast wie in der Shell irgendwie so nativ so hin und her switchen.

Dominik

Das ist schon nett.

Christian

Ja, interessant.

Jochen

Ja.

Jochen

Ja, es ist schon, also ich finde, also das für mich eine total überzeugende Geschichte war dann halt, also gerade für so Data Science oder Machine Learning-Geschichten, wo man oft so Schritte hat, die lange dauern.

Jochen

Und das ist einfach, wenn man das anders macht, ist es halt, also kann man auch irgendwie, aber das lässt man dann manchmal weg, weil man da nicht dran denkt oder so.

Jochen

Man kann natürlich alles irgendwie cachen oder versuchen, das halt so hinzuschreiben, dass man es auch schnell wieder erzeugen kann oder so.

Jochen

Aber wenn man jetzt irgendwie ein Modell eine Stunde lang trainiert hat oder ein paar Stunden und dann macht man irgendeinen blöden Fehler und dann ist halt das Ergebnis von einem Stundenberechnung weg.

Jochen

Das ist halt, so das kann einem im Notebook im Grunde nicht so wirklich passieren, weil dann hat man halt die Zelle, die das irgendwie macht, ausgeführt.

Jochen

Und wenn man selbst wenn man irgendwo anders einen Fehler macht, dann macht es halt erstmal nichts kaputt, sondern dann ändert man das halt und dann führt man es nochmal aus und dann geht es halt weiter.

Jochen

Und das kann, das beschleunigt viele Dinge durchaus.

Jochen

Oder wenn man gerade mit ganz mit großen Datenmengen irgendwie viel macht und die nicht so einfach mal laden kann.

Jochen

Also gerade leidvolle Geschichten sind da sowas wie so fürchterliche Hadoop-Data Lakes oder so, aus denen man die Daten nur ganz schlecht wieder rauskriegt und dann hat man es irgendwie geschafft, die Daten rauszukriegen.

Jochen

Und dann sind sie gleich wieder weg, wenn man irgendwie einen Fehler gemacht hat oder so.

Jochen

Und ja, also das war auch in dem Talk von Jewel Grouse hat dann jemand am Schluss, als dann Fragen aus dem Publikum kamen, meinte jemand dann so, ja, also ich habe ja das Problem, genau, meine Datasets sind halt groß und das nervt, wenn ich das irgendwie verliere und quasi das gleiche Argument, was ich jetzt auch gerade gebracht habe.

Jochen

Und er meinte dann so, ja, Moment, du hast irgendwie, du machst explorative Datenanalysegeschichten mit Datasets, die so irgendwie so mehrere Gigabyte, 12 Gigabyte groß sind oder so.

Jochen

Und er so, ja, und ich dachte mir so, ja, ja, ich mache das auch sehr oft.

Jochen

Das ist irgendwie, okay, ja dann, dann, so, ja, das ist, also finde ich, ist auch, das ist halt völlig normal, also irgendwie, und er meinte, er macht das halt nie, und dann kann ich das auch verstehen, okay, wenn man diesen Fall nie hat, dann okay.

Jochen

Aber wenn man ihn hat, dann ist das sehr hilfreich.

Christian

Und interessanterweise triggert aber bei mir dieses Gefühl, und das ist so diese Frage, wer bringt da welchen Erfahrungshintergrund mit?

Christian

Bei mir triggert, wenn du beschreibst und sagst, du willst nicht aus Versehen irgendwas verlieren, dann ist mein Gefühl, die Notebooks halt gegenüber viel stärker ein, ja, das ist da irgendwo, ich habe keine Ahnung, wann der Punkt ist, wann ich es verliere.

Christian

Das ist so irgendwie noch unaufensichtlicher, während bei dem anderen ist es irgendwie offensichtlich und ich muss hier etwas machen, wo mir dann auch klar ist, wieso es jetzt persistent ist oder auch nicht.

Christian

Ich glaube, daran spaltet sich, glaube ich, so ein bisschen so die das Publikum.

Jochen

Naja, man muss es halt immer dann noch irgendwie irgendwann ordentlich machen, aber manchmal will man einfach nur irgendwas ausprobieren und so.

Dominik

Ich wollte gerade sagen, also ich habe also ein paar Müll-Nutbooks, da schmeiße ich einfach irgendwas rein.

Dominik

Manchmal auch richtig unformatierte Sachen, einfach um die Schnipsel irgendwo griffbereit zu haben und führe dann halt einfach mal so eine Zelle aus, um zu gucken, was da passiert.

Dominik

Und das ist halt vor der Struktur vielleicht manchmal sogar entfernen, aber das ist echt hilfreich.

Dominik

Weil also ich würde das halt nie irgendwie das Projekt dann reinstecken, sondern das ist halt dann nur dann da drin.

Dominik

Und irgendwann zieht man das dann halt vielleicht mal gerade und baut dann irgendwie so ein kleines Modul da und dann funktioniert es, weil das super getestet ist und jetzt kann man dann einfach copy-pasten eigentlich und es geht.

Dominik

Also das finde ich schon.

Christian

Also wo ich gespannt bin, das reißt jetzt so, jetzt kriegen wir so fast die Kurve zu Machine Learning rüber.

Christian

Da habe ich gesehen, dass das halt tatsächlich sehr häufig auch angeboten wird als Übungsplattform, dass du irgendwie vorgefertigte Notebooks eben hast, wo du eben halt so ein bisschen erzählerische Erklärungen hast und dann Code-Beispiele und dann halt auch das Zeug ausführen kannst, die Ergebnisse und dann halt drin herum editieren, um so ein bisschen mit dem Code zu spielen.

Christian

Ich bin mal gespannt, weil ich mich jetzt so ein paar von den Sachen durcharbeite, wie mir das didaktisch als jemand, der auf der Konsumentenseite davon ist, gefällt.

Christian

Weil ich gleichzeitig mich selber dann eher ertappe von, wenn ich das schon so vorgesetzt kriege, ist irgendwie die Hürde oder gibt es ein gewisses Risiko, dass ich schneller durchgehe, als ich es tatsächlich verstehen und konsumieren kann.

Christian

Weil es dir vorgaukelt mit, ja, du hast jetzt auf Play gedrückt und jetzt kam das Ergebnis raus, ah ja, aha, okay, weiter.

Christian

Da ist sozusagen, vom E-Learning-Faktor habe ich das Gefühl, ich muss mich ja eigentlich noch viel stärker mit dem Zeug auseinandersetzen und jetzt muss ich aber noch weniger machen.

Christian

Also ist da so ein Gap von, was hat mein Hirn noch an Chancen, es zu verstehen.

Christian

Bin ich gespannt drauf.

Dominik

Ja, es ist immer blöd, wenn er es nicht selber ausprobiert, dann ist es schnell wieder weg.

Jochen

Ja, eben, also wenn man die Zellen einfach nur nacheinander.

Jochen

Viele Tutorials oder Videos, die man so sieht, bestehen daraus, dass jemand dann halt so eine Zelle nach der anderen ausführt.

Jochen

Das hilft einem natürlich nicht so richtig wie.

Jochen

Also aber was toll ist und was man machen kann, ist halt selber dann halt irgendwann mal so da mit rumzuspielen und halt zu gucken, okay, was ist denn da jetzt wirklich drin und das kann man halt auch einfach.

Dominik

Ich hatte mal so am Anfang ja diese Tutorialreide erwähnt, äh, NumPy for Grandmas und Panas for Grandmas.

Dominik

Der benutzt auch Google Colab, was ja auch im Prinzip das Notebook ist.

Dominik

Und er hat jedes Mal nach jedem Kapitel Übungen eingestellt, die ziemlich cool sind, wo man, weiß ich nicht, die Anwendung direkt praktisch an so Aufgaben üben kann.

Dominik

Und wenn man die halt selber versucht, dann stellt man halt fest, ob man das kann.

Dominik

Also meistens kann man es da nicht, aber das ist ja nicht so schlimm, weil er hat ja die Lösung, dann hätte er ja gezeigt.

Dominik

Und aber durch das Ausprobieren bekommt man halt genau das Gefühl dafür, wann, wie, wo, was man vielleicht filtern, nutzen und so kann.

Dominik

Und auch halt mit dem Notebook.

Dominik

Und ich glaube, das ist so die einzige Methode, wie man tatsächlich dann versteht, was dann da passiert und was man da machen möchte.

Christian

Und mindestens ist es natürlich so, dass man auf jeden Fall erstmal eine laufähige Umgebung hat.

Christian

Also dass man dort erstmal was hat, wo man sagt, okay, ich kann anfangen mit, also hier gibt es Code, der sich selber beweist, dass er erstmal tut.

Christian

Das heißt, ich habe nicht das Problem, wenn ich dann irgendwie das Zeug aufbaue und dann noch nicht so ganz weiß, ob meine Umgebung jetzt tatsächlich irgendwie clean ist und warum kommt jetzt nicht das raus, was rauskommen soll, warum wirft so mir irgendwelche komischen Fehler, bin ich schuld oder die Umgebung schuld, da ist es natürlich schön, von einem definierten Zustand aus loszulaufen.

Jochen

Ja.

Christian

Zumal ich auch eigentlich, eigentlich würde ich halt sagen, mir liegt es total, Sachen halt erstmal Ende-End zu begreifen.

Christian

Also wirklich mit, wo fängt es hier an, was sind die kleinen Bauteile, aus denen sich das zusammensetzt und wie löse ich jetzt ein Problem, einmal von vorne bis hinten damit durch.

Christian

Das taugt mir total und aber trotzdem triggert es mich an so ein paar anderen Punkten.

Jochen

Ja, also genau, also ich würde sagen, kann man sich mal, kann man sich mal angucken, ist ganz nett.

Jochen

Ja, genau, und aber genau, eigentlich ein ganz guter Einstieg in dieses Machine Learning Ding.

Genau, Machine Learning.

Jochen

Ich würde sagen, dieses PyTorch-Buch, was Jeremy Howard geschrieben hat, das kann man sich auf jeden Fall auch.

Dominik

Wie heißt nochmal dieser Rapper on PyTorch, von dem du am Anfang sprachst?

Jochen

Fast.ai.

Dominik

Fast.ai.

Dominik

Okay.

Dominik

Könnte man jetzt eigentlich also direkt in Colab, also das kann man auch seinem Telefon ausprobieren, direkt Python ausführen im Browser und live und funktioniert einfach.

Dominik

Und dann kann man es importieren.

Dominik

Ich glaube, die Sachen sind alle dabei und los geht's, oder?

Ja.

Jochen

Ich weiß jetzt nicht, ob ich das auf dem Telefon machen wollte, aber gut.

Ja.

Christian

Wobei die Telefone, also ich war ja von dem Machine Learning Thema angetriggert, weil ich mich jetzt mal angefangen habe, ein bisschen umzugucken, was da so an Hardware auf dem Markt eigentlich rumfliegt.

Christian

Und in den Libraries habe ich zumindest auch gesehen, tatsächlich das Mobil ist ja definitiv halt interessant, weil du hast halt inzwischen da überall nochmal irgendwelche Chips drin, die Machine Learning Tasks halt unterstützen.

Christian

Also ich meine, guckt dir den bei Apple die ganze Reihe, da ist das ja irgendwie völlig klar.

Christian

Aber auch die Androids haben da ja schon Sachen drin.

Christian

Das ist halt, weil es ist ja für mich vom Verständnis jetzt mit dem, wie ich reingeputzelt bin über die letzten zwei Wochen, ist vor allem, dass es halt ein Trade-off ist, dass du mit weniger Strom mehr Punch kriegst.

Christian

Also die Verhältnisse, wenn du deine Algorithmen oder deine Pipelines halt richtig aufziehst, speziell nachher für die Inferenz ist, wir müssen nachher noch ein bisschen in die Themen, glaube ich, die Stichworte, glaube ich, sortieren und ich habe auch noch welche, wo ich Fragezeichen im Kopf habe.

Christian

Also wenn ich tatsächlich für den Benutzer etwas rechnen will, um für ihn ein Ergebnis zu erzeugen, dann ist da wohl typischerweise ein Powerfaktor von 40 drin, was ich an Geschwindigkeit rausholen kann im Vergleich zu, wenn ich es aus einer normalen CPU rechne.

Christian

Und gerade wenn ich halt ein stromlimitiertes Gerät habe wie ein Telefon, dann ist Faktor 40 halt schon ein massiver Unterschied.

Christian

Alle beschweren sich, dass sie gerade über den Tag kommen.

Christian

Wenn ich das halt dann mal 40 mache, ist der Tag halt schon früh um 8 vorbei.

Christian

Insofern, also das ist so erstmal so das erste Verständnis von, warum fangen wir eigentlich da an, an dieser Ebene drauf reinzuhauen.

Christian

Und das ist halt, auch wenn jetzt einige CPUs natürlich immer mehr Instructions kriegen, die bestimmte von den Operationen, die es da braucht, diese ganzen Vektoroperationen in Hardware abbilden.

Christian

Die fallen einem auch gerne mal auf den Fuß.

Christian

Also mir ist dann letztens auch aufgefallen, dass einige von den etwas älteren Libraries, die sich im KI-artigen Bereich bewegen, also Tesseract für OCR, also Schrifterkennung, Texterkennung, die haben halt zum Beispiel dann jetzt Unterstützung für diese Vektor Instructions von Intel.

Christian

Und das fällt einem auf die Füße, weil du auf einem Multicore-System mit diesen großen Instructions von den Vektoren halt gerne mal die Pipeline für drei, vier Kerne auf einen Schlag mal für 40, 50 Takte stilllegen kannst.

Christian

Und ja, das durch eine so eine Vektoroperation erledigen zu lassen, ist in Summe schneller als durch viele kleine, aber nichtsdestotrotz hat das so Auswirkungen auf die Responsivität des Systems, weil das plötzlich, also das Ding frisst Strom, dann geht dir der Turbo-Boost verloren und dann sind so Auswirkungen, die, wenn du das dann auf einer virtuellen Maschine machst, dann müssen halt gegebenenfalls noch drei virtuelle Maschinen nebenan auch noch die Luft anhalten, weil, boah, das ist aber eine dicke Instruction, die kann ich jetzt aber nicht so auf einmal rechnen.

Christian

Und da merke ich, okay, ja, das macht Sinn, da nochmal über spezialisierte Hardware nachzudenken und Algorithmen, die sich genau darauf abbilden lassen.

Jochen

Ja.

Jochen

Ja, ja, ja, dieses Hardware-Thema ist natürlich total interessant.

Jochen

Ich meine, im Grunde hat man da nur bei einer speziellen Art von jetzt Machine Learning-Modellen irgendwie diesen Bedarf, halt bei den neuronalen Netzen, bei vielen anderen Sachen.

Jochen

Also wenn man jetzt irgendwie, weiß ich nicht, lineare Modelle macht oder Support-Vektor-Maschinen oder so, da hilft einem das alles nicht so richtig.

Jochen

Aber eben bei neuronalen Netzen halt schon.

Jochen

Also alles, was irgendwie mit Matrizenmultiplikationen irgendwie darauf dann letztlich irgendwie basiert.

Jochen

Ich finde das sowieso auch interessant, wie sich jetzt so die Hardware im Grunde so über die Jahrzehnte so in der Mathematik hochhangelt.

Jochen

Also wenn man jetzt sozusagen vom sagt so irgendwie, keine Ahnung, ein Skalar ist irgendwie so Tensor, Nullterstufe oder sowas, und dann hat man halt irgendwie einen Vektor und dann irgendwie eine Matrix und dann irgendwie eben im allgemeinen Fall Tensoren oder Arrays mit N-Dimensionen.

Christian

Was ist der Unterschied eines Arrays mit N, also was ist der Unterschied eines Tensors in einer Matrix?

Jochen

Das ist genau eigentlich, Matrix ist zweidimensional, Tensor ist quasi n-dimensional, wobei das halt in unterschiedlichen Communities auch unterschiedlich genannt wird.

Jochen

Wenn ich dann sowas sage, dann sagen wir ja, die Leute, die aus der Mathematik kommen, das ist doch Quatsch.

Jochen

Dann die Leute, die aus der Physik kommen, sagen so, nee Moment, Tensor, das ist für uns was ganz anderes.

Dominik

Ja, du musst jetzt aber nochmal genau sagen, was denn Tensor für dich ist.

Jochen

Also das, was ich, also das Konzept sozusagen ist eigentlich quasi, du hast einen Skalar, das ist halt irgendwie sozusagen ein Ding, irgendwie eine Zahl.

Jochen

So, die nächste Stufe wäre für mich jetzt halt irgendwie ein Vektor.

Jochen

Also irgendwie.

Dominik

Eine Richtung in einem Raum.

Jochen

Ja, das ist dann schon eine Interpretation, was das halt nun ist, aber das einfach nur so als Struktur.

Jochen

Und das nächste wäre halt eine Matrix.

Christian

Genau, also ein Skalar ist ja tatsächlich erstmal bloß ein Wert, der für sich steht.

Christian

Der ist dimensionslos.

Christian

Und einen Vektor kann ja n-Dimensionen haben.

Christian

Und es ist ein Punkt in einem n-dimensionalen Raum.

Jochen

Genau, also, aber da sieht man schon, dass das mit den Dimensionen nicht so ganz hinkommt, weil klar, natürlich hat er n-Dimensionen, aber tatsächlich würde ich jetzt sagen, der hat halt irgendwie ist halt eine Liste von Zahlen und hatte halt als Struktur eine Achse.

Jochen

Vielleicht einfach mal ein anderes Wort.

Christian

Genau, ich kann, ja die Frage ist ja, von welchem Ende komme ich halt erstmal.

Christian

Aber ich bilde ja mit einem Vektor einen Punkt in einem n-dimensionalen Raum ab und dafür brauche ich eine Liste.

Christian

Weil ich nämlich halt n-Werte, n-Skalare bilden halt einen Vektor der Dimension n.

Genau, und

Christian

mit einer Matrix kann ich jetzt mehrere von solchen Vektoren nebeneinander setzen.

Christian

Da gibt es dann welche mit bestimmten Eigenschaften, die wenn ich, wenn die Matrix genauso, wenn ich halt n-Vektoren der Dimension n zusammenfasse, dann habe ich eine genau eine quadratische Matrix und solche Spielchen, wo man dann halt bestimmte Dinge rechnen kann.

Jochen

Ja, aber genau, das wäre halt für mich die nächste Stufe sozusagen, dass du dann halt zwei Achsen hast, so in zwei unterschiedliche Richtungen und das nächste wäre dann halt drei.

Jochen

Das hast du dann halt bei Bildern, da hast du dann halt nicht nur, also du kannst ja auch schon eine Matrix als Modell für ein Bild nehmen.

Jochen

Wenn du jetzt nur schwarz und weiß hättest oder nur irgendwie einen Wert für, weiß ich nicht, die Helligkeit oder so.

Jochen

Aber wenn du jetzt Farben hast, dann hast du schon Rot, Grün, Blau.

Jochen

Das kannst du jetzt in eine Matrixzelle ja schon nicht mehr so richtig reinpacken.

Jochen

Und was man dann macht, ist halt, dann geht man halt noch eine Achse in die nächste Richtung sozusagen.

Jochen

Und dann hast du halt sozusagen eine Matrix pro Farbkanal sozusagen.

Das kannst du

Christian

ja abbilden sozusagen über eine Matrix von Vektoren oder über eine Dreidimension, über einen, statt einen Quadrat, über einen Würfel.

Ja, genau.

Dominik

Ja, aber mit dem Würfel darstellen, glaube ich, das wird schwierig, weil was ist dann die vierte Dimension und so die fünfte und so?

Jochen

Ja, das geht immer weiter.

Christian

Das ist halt einen Hyperwürfel.

Jochen

Genau.

Jochen

Also das ist tatsächlich, Bilder sind halt im Rechner, also für Machine Learning-Geschichten sind halt einzelne Bilder sind halt sozusagen Arrays mit drei Achsen, ja.

Jochen

Also einer für halt Höhe, Breite.

Dominik

B sind aber, wenn die so nebeneinander macht, oder?

Dominik

Dann hast du da drei Matrizen nebeneinander und dann hast du hinterher Reihen von Matrizen nebeneinander.

Jochen

Aber die legt man übereinander und das spielt auch tatsächlich eine Rolle, dass es halt irgendwie nicht einfach getrennte Dinger sind, sondern dass es halt ein Array ist mit drei Achsen und nicht drei Matrizen.

Jochen

Und es ist so, tatsächlich ist es eher sogar so, dass man jetzt ein Trainingsset als ein Array mit vier Achsen begreift, nämlich du hast dann halt auch noch die Trainingsbeispiele.

Christian

Die Labels, oder?

Jochen

Die Labels sind getrennt davon, aber du hast halt sozusagen mehrere Trainingsbeispiele.

Jochen

Du hast immer Badges von so Uldern.

Jochen

Das heißt, du hast halt da auch nochmal eine Achse.

Jochen

Und dann bist du schon bei vier Achsen.

Jochen

Und dann, wenn du jetzt in Richtung Videos gehst, dann bist du auf jeden Fall schon mal bei fünf Achsen.

Jochen

Weil dann hast du nämlich auch noch Frames über die Zeit und so.

Jochen

Und genau, und dann wird es halt, irgendwann kann man es sich auch nicht mehr vorstellen, aber muss man ja vielleicht auch nicht.

Ja, aber wenn man das halt so nebeneinander schreibt und dann wieder rein und dann wieder spalten, dann wieder rein und spalten von Dingen, die sich so ein bisschen schachteln wie so eine Puppe, dann

wird man es

Dominik

vielleicht so ein bisschen visualisierbarer.

Jochen

Ja, ja, kann man auch.

Jochen

Auf jeden Fall.

Jochen

Aber genau, also jedenfalls, das wird dann halt immer von der Struktur her schwieriger.

Jochen

Und was ich eigentlich nur am Anfang sagen wollte, was ich interessant finde, ist, dass jetzt sozusagen die Hardware halt diesen Prozess mitmacht.

Jochen

Nämlich halt von irgendwie, keine Ahnung, Vektorrechnern, wo man halt eine Instruktion hat, die dann nicht nur auf einem, mit einem Skalar quasi rechnet, sondern.

Dominik

Das ist der Abakuss, der dann hin und her schiebt.

Jochen

Ja, sondern wo man die halt auf vielen Datendingern dann halt ausführt, sozusagen diese SIM-D-Geschichten oder Vektorrechner halt.

Jochen

Und jetzt haben wir halt Tensorcores in den Grafikkarten und den GPUs.

Jochen

Und da ist halt sozusagen, die rechnen dann halt nicht mit Vektoren, sondern die rechnen halt direkt mit Matrizen.

Jochen

Also kleinen, so vier Kreuz-4-Matrizen, aber immerhin.

Jochen

Die machen halt dann in einem Takt schon Multiplikation von zwei, vier Kreuz-4-Matrizen, wo du normalerweise viel, viel mehr Takte brauchst, wenn du das halt irgendwie dann halt in Vektoroperationen machst oder halt in der CPU als Skala.

Jochen

Und ja, das ist eigentlich ganz faszinierend zu sehen, dass das jetzt so gerade mit der Zeit passiert.

Dominik

Ja.

Dominik

Das ist auch der Hauptgrund dann, warum die Grafikhardware so gerne dafür benutzt wird, ja, weil halt die Dimensionalität bei Grafikoperationen eh schon so hoch gewesen sein muss.

Jochen

Ja, weil halt die Geschichten, auf die das optimiert ist, die mappen halt super auf die Operationen, die man halt für Machine Learning braucht.

Jochen

Also diese ganzen Matrix-Multiplikationen oder beziehungsweise halt diese Convolution-Operationen halt, die man für diese Convolutional Neural Nets halt braucht, die sind halt damit super umzusetzen.

Jochen

Die braucht man halt auch für Spiele und so.

Jochen

Die machen ja auch im Grunde solche Sachen.

Dominik

Ich muss da vielleicht nochmal für Eidehöre erklären, was ein Convolutional Neural Network ist.

Dominik

Vielleicht einmal genug ganz kurz.

Jochen

Da hatten wir doch schon mal eine Episode zu.

Jochen

Da war das nicht die Folge 8.

Jochen

Ehrlich gesagt, ich weiß nicht, ob ich das so, kann ich jetzt aus dem Stiggreife auch nicht.

Jochen

Also im Grunde, das ist halt eine spezielle Art von neuronalem Netz, wo halt.

Dominik

Zwischen den verschiedenen Layern, zwischen den Ebenen irgendwelche Dinge passieren.

Jochen

Ja, das eignet sich halt vor allen Dingen.

Jochen

Also es ist nicht nur Bildverarbeitung.

Jochen

Also man kann das auch eindimensional dann halt für Audio machen oder für halt Texte, aber es ist, es ist, es ist halt eine Operation.

Jochen

Man kann sich das, man kann, ja, muss man sich eigentlich auch mal ein Bild so angucken.

Jochen

Ich glaube, das kann man nicht so wirklich gut erklären.

Jochen

Kriege ich irgendwie nicht so richtig hin.

Jochen

Aber genau, also es gibt auch noch andere Arten von Netzen, also die jetzt gerade eine große Rolle spielen mit so Transformer, ist zum Beispiel total heiß gerade.

Jochen

Und ja, das funktioniert dann, es gibt so unterschiedliche Architekturen, TPUs und so, Tensorkurs.

Jochen

Und das einzig Blöde ist jetzt, dass außerhalb von das eigentlich, das eigentlich, was halt wirklich doof ist, dass halt Nvidia da so ein Monopol auf den ganzen Kram hat.

Jochen

Das ist so richtig, richtig ätzend.

Jochen

Das macht das mit der Hardware auch ziemlich schwierig, finde ich irgendwie.

Jochen

Und gut, ich meine, es gibt noch Google und so, die haben mit ihren TPUs dann auch mal eine eigene Geschichte machen, aber da kommt man ja auch nicht so richtig ran, so einen Laden kaufen kann man ja auch nicht.

Jochen

Und tja, das ist halt, das macht das Ganze etwas unschön.

Jochen

Alles andere ist super toll, aber das ist ja, diese ganzen Geschichten sind etwas, etwas fies.

Jochen

Und natürlich ist es dann auch schwierig, die Dinger zu betreiben, weil wenn man jetzt zu Nvidia geht und sagt, also ich habe da so ein Rechensentrum und da würde ich jetzt gerne irgendwie Machine Learning-Server irgendwie mir hinstellen oder so, dann sagen die ja, ja, klar, super hier.

Jochen

Nimm doch mal die, weiß ich nicht, was haben wir da?

Jochen

A 100 Karten oder so.

Jochen

Aber die kosten dann halt einen Arm und ein Bein.

Christian

Wobei das, das finde ich, also ob die einen Arm und ein Bein kosten, kommst du ein bisschen darauf an.

Christian

Du hast halt das Thema, du kannst nicht unter einer gewissen Mindestgröße einsteigen.

Christian

Und was mir bei Nvidia mit dem Monopol tatsächlich aufgefallen ist, ist, die segmentieren sich den Markt zu Recht.

Christian

Also die haben, die haben sehr stark angefangen, über Lizenzverträge zu knebeln.

Christian

Also speziell mit dem Thema, dass, weißt du, die meisten Puppelgrafikkarten können genau den Kram, den man da braucht.

Christian

Die haben inzwischen auch ausreichend RAM.

Christian

Es ist immer noch die Frage, nach welchen Modellgrößen kannst du rechnen.

Christian

Und Nvidia will ja nun mal die Gamer-Szene bedienen und verbietet dir aber halt für die für die normalen Gamer-Grafikkarten, sie verbieten es dir lizenztechnisch einfach, sie dafür einzusetzen.

Christian

Die sagen, auf diesen Karten darfst du kein Machine Learning machen.

Christian

So, und dann nimmst du bitte unsere, die A100 oder halt auch ein paar kleinere oder irgendwas.

Christian

Und es ist schon krass, was die auf dem Gebrauchtmarkt teilweise ziehen.

Christian

Also es gibt jetzt irgendwie bei Azure gibt es die K80 unter anderem.

Christian

Die ist jetzt schon ganz schön in die Jahre gekommen, glaube ich.

Christian

Aber die kostet halt das Stück immer noch 2.500 Euro auf dem freien Markt.

Christian

Und wenn du mit einer A100 einsteigen willst, bist du halt bei so 8.000, 9.000 Euro etwa dabei netto.

Christian

Und dann muss man aber im Hintergrund wissen, naja, das ist halt schon genau für das High-End-Data Center Zeug gedacht.

Christian

Das heißt, eine davon kannst du halt im Prinzip auch in sieben Teile zerteilen, in virtuelle Maschinen reinpacken.

Christian

Kannst die irgendwie in unterschiedliche Zuschnitte von irgendwie unterschiedlichen RAM-Größen und was du denen an Ressourcen zuweist.

Christian

Also da ist dann schon auch Musik drin im Handling.

Christian

Und wenn du dir das dann durchrechnest, dann merkst du, okay, das lohnt sich wirtschaftlich auch.

Christian

Aber es braucht halt diese Mindestgröße.

Christian

Und klar, Nvidia verkauft dir halt auch, es gibt so eine A100, irgendwie vier Höheneinheiten, glaube ich, Riesenchassis mit acht von den Stück drin oder so.

Christian

Mit den tollen, irgendwie auch noch speziellen Busssystemen, die die Karten untereinander verbinden.

Christian

Da kostet halt das Stück nur 250.000 Euro.

Christian

Und das ist natürlich für mal anfangen und irgendwie loslegen und gucken, wie experimentiere ich jetzt eigentlich damit.

Christian

Und du brauchst halt, ich habe noch nicht verstanden, welche dieser Hardware, welche Operationen zum Beispiel in vergleichbarem Umfang, vergleichbarem Takt, welche Modellgrößen für den RAM und haben die nochmal unterschrieben, da sind inzwischen auch acht Generationen, glaube ich, in Summe am Start, was die tatsächlich können, welche Befehlssätze, das ist alles relativ unübersichtlich, da ist extrem viel Marketing-Fluff momentan draußen und selbst die Data-Sheets sind nicht gut lesbar.

Christian

Was ich bei Nvidia zum Experimentieren gerade auf dem Schirm habe, sind diese Jetson-Teile.

Christian

Das ist irgendwie deren Richtung für eher kleine Embedded-Sachen, wo du so in Richtung Robotik und so gehst.

Christian

Und da kann man tatsächlich mit dem allerkleinsten für, glaube ich, 100 Dollar oder so, kannst du da reinwerfen.

Christian

Und das ist schon ein Mini-PC, wie so ein Raspberry im Prinzip.

Christian

Da hast du schon ein Netzwerk und CPU und alles irgendwie einmal als ein Bundle.

Christian

Und da findet man im Netz auch für die ganzen klassischen Frameworks, die man jetzt so hat, Ubi PiTorch etc.

Christian

Anleitungen, wie man die auf den Teilen dann betreibt.

Christian

Das heißt, das ist so für mich gerade der Vektor, mal zu gucken, okay, so ein Stück Hardware mal zu kriegen, wo man das Zeug tatsächlich sehen kann, von bringt mir das jetzt wirklich was in der Beschleunigung oder ist das alles bloß heiße Luft?

Christian

Ja, das ist so ein Ende.

Christian

Ansonsten würde ich ja gerne immer lieber noch ein bisschen AMD kaufen.

Christian

Und da macht sich aber auch wieder Nvidia als Plattfisch bemerkbar, dass viele von den Frameworks dann mit den AMD-Karten wir nichts anfangen können.

Christian

Das ist so ein bisschen, ja, hm.

Jochen

Ja, das ist ganz blöd.

Jochen

Also nicht, dass ich wüsste, dass mit AMD da irgendwas zu machen wäre zurzeit.

Jochen

Also das kann man.

Christian

Man ja auch nicht kaufen kann.

Jochen

Ja, okay.

Christian

Also zum einen muss die Playstation mal noch irgendwie gefertigt werden, die ziehen da ja Kapazität ab und zum anderen die ganzen Bitcoin-Miner, die haben, die scheinen das Zeug schon direkt an der Fabrik abzuzweigen.

Christian

Ich habe ein paar Lieferanten gesprochen, die eigentlich gerne AMD anbieten würden.

Christian

Sie meinen, sie haben noch nicht einmal irgendeine der Karten jemals in echt gesehen.

Jochen

Oh, okay, ja gut.

Jochen

Ja, ja, das ist natürlich auch so ein Problem, die Verfügbarkeit.

Jochen

Das ist auch teilweise bei den Nvidia-Karten auch immer so ein Problem, die es dann wirklich zu bekommen.

Jochen

Ist manchmal gar nicht so einfach.

Jochen

Ja, also genau diese Marktsegmentierungsgeschichte ist halt das, was man dann, das ist, das ist halt im Grunde die Art, wie man, wie man, wenn man jetzt ein Monopol hat, wie man das zu Geld macht.

Jochen

IBM hat das früher ja dann auch schon gemacht, so man macht dann halt Functional Pricing, ja, man guckt halt, macht den Preis halt so, dass es zu dem Marktsegment, das man budieren möchte, passt.

Jochen

Im Grunde können die ganzen Dinger mehr oder weniger das gleiche, ja.

Jochen

So die RTX-Karten, also zum Beispiel, die können im Grunde fast das, also die Gamer-Karten können halt im Grunde das gleiche, was halt die auch die großen Server-Karten können.

Jochen

Sie sind halt in bestimmten Operationen ein bisschen künstlich langsamer gemacht, damit man sie halt jetzt nicht so verwenden kann.

Jochen

Übrigens, ich weiß auch nicht, ob das irgendwie überhaupt geht.

Jochen

Also in den USA geht es vielleicht, aber ob man jetzt in Deutschland jemandem, der irgendwas einem was abgekauft hat, dann hinterher verbieten kann, damit irgendwas zu tun.

Jochen

Ich glaube, das geht überhaupt gar nicht.

Dominik

Also auch eine Lizenz oder sowas, schwierig wahrscheinlich.

Jochen

Insofern, ja, also vielleicht kann man das einfach trotzdem machen.

Jochen

Auf der anderen Seite ist es natürlich auch so, es ist nicht so einfach.

Christian

Ja, es ist halt für eine Geschäftsbeziehung keine Grundlage.

Christian

Also was machst du denn?

Christian

Damit machst du dich deinem Hersteller gegenüber nackig und der sagt, so jetzt hast du da dein Produkt aufgebaut und wir sollen dich beliefern.

Christian

Wäre aber schade, wenn du nicht mehr beliefert wirst.

Jochen

Ja, ja, gut, klar, natürlich.

Jochen

Halt die Frage, ob man sich das, ob man das machen kann.

Jochen

Ja, das ist schon, das ist natürlich so ein Punkt.

Jochen

Ja, und ein weiterer Punkt ist halt, es ist schwer, die Dinger zu betreiben nach wie vor.

Jochen

Also die Leistung steigt zwar auch immer noch, aber auch die Leistungsaufnahme steigt halt so irgendwie einfach an Strom.

Jochen

Und so bei den, bei den, glaube ich, bei den 3090 RTX, 3090-Karten, die aktuellsten, da ist es so, dass da musst du halt dann, also die Netzteile, die normalen normalerweise, also selbst die größten Netzteile, das funktioniert nicht mehr, du brauchst dann nochmal externen Strom da dran.

Jochen

Und wenn du dann mehrere in ein Gehäuse steckst, dann kriegst du sofort Hitzeprobleme.

Jochen

Und musst du halt immer dazu sehen, dass du da mal genug Platz lässt und dann irgendwie Leute, also da gibt es ganze Bastelzähne, die versuchen, das irgendwie richtig hinzukriegen und das ist alles irgendwie, es ist nicht so einfach.

Jochen

Ja, aber tatsächlich, das lohnt sich auch noch alles.

Jochen

Also, wenn man das selber macht, dann kann man mindestens so Faktor 10 irgendwie günstiger sein, als wenn man das jetzt irgendwie fertig gebaut kauft und hat halt die gleiche Performance.

Jochen

Und das ist schon noch signifikant.

Christian

Ja, der Unterschied im fertig gekauft, beziehungsweise wenn du sie halt aus irgendeinem Cloud-Ding rausziehst, der Unterschied dort ist halt, naja, du kannst halt hinklicken, dann kostet sich das zwar auch ein Arm und ein Bein, aber du kannst es halt auch jederzeit wieder abschießen und du musst nicht fünf Monate lang ein Projekt machen, dir zu überlegen, was kaufe ich jetzt und wie stecke ich es zusammen etc.

Christian

rein.

Insofern finde ich das schon legitim.

Christian

Aber ich merke halt, also der, man darf das immer nicht unterschätzen, was Flexibilität, und das ist ja eine betriebswirtschaftliche Grunderkenntnis, Flexibilität oder Optionen kosten Geld.

Christian

Die kosten immer irgendwas.

Christian

Und wenn man Investitionskosten und alle wollen immer alles auf möglichst OPEX umlegen heutzutage und wenig kapitalintensiv irgendwie vorfinanzieren.

Christian

Aber es kann halt manchmal passieren, dass wenn du dann eine Lebensdauer von 12, 36 oder 60 Monaten anguckst, dann ist das Ding in Summe drei bis vier, fünfmal so teuer, als wenn du es dann irgendwann mal selber in die Hand genommen hättest.

Christian

Da muss man sich dann fragen, ist das für eine Basislast das halt eigentlich dann irgendwann nicht mehr gerechtfertigt.

Christian

Also ich meine, die A100 fand ich sogar relativ zarm in der Hinsicht noch.

Christian

Also ich gucke gerade nochmal in das Specksheet rein und wenn du halt eine PCI-Karte von der A100 ziehst und die hat, was hat die an RAM drin, 40 Gig und die zieht halt 250 Watt.

Christian

Das ist halt schon noch überschaubar.

Christian

Das hast du, also da habe ich bei den Netzteilen, was wir so typischerweise Zeug verbauen, ich würde ja in so einer Hinsicht halt auch weniger gucken, irgendwie eine Karre möglichst voll zu machen, sondern mehr zu zu sehen, dass man halt irgendwie dann in seinem Pool vier, fünf, sechs Maschinen damit bestückt, weil man es ja auch irgendwie verteilen möchte, wenn mal was kaputt geht, etc.

Christian

Da bin ich halt auch noch gespannt, weil dann halt die Kundenseite für ich rechne Modelle, um dir irgendwie Vorschläge oder Klassifizierungen oder irgendwie so ein Kram zu rechnen, das ist ja immer sehr kurz von den Transaktionen her.

Christian

Da willst du ja innerhalb von einer halben Sekunde deine Antwort haben und dann ist vorbei.

Christian

Wenn du aber tatsächlich so ein Ding hast mit ich rechne hier mein Training, da habe ich noch nicht rausgefunden, was dann typische Trainingsdauern sind.

Christian

Aber wenn das halt mal Stunden dauert und die ganze Virtualisierung das noch nicht hergibt, so ein Zeug Transparent halt dann zwischen A und B zu verschieben, dann muss ich halt mittendrin operativ eingreifen können und zu sagen, du, äh, nee, jetzt die eine Grafik da drüben, die fliegt jetzt mal weg.

Jochen

Ja, also es kommt halt darauf an, was man damit macht.

Jochen

Also die Leute, die das halt, also zum Beispiel die ganze Kegel-Community, die da so kompetitives Machine Learning machen, die versuchen sich alle möglichst viele Karten in einen Rechner zu basteln, halt irgendwie.

Jochen

Und das ist halt natürlich irgendwie auch, oder ist nicht so einfach.

Jochen

Aber weil du damit halt die Trainingszeiten runterkriegst.

Jochen

Wenn du jetzt viele Karten, also wenn du mehrere Karten in unterschiedlichen Rechnern hast, das hilft dir nicht so viel.

Jochen

Also insofern, hm.

Jochen

Aber.

Christian

Aber das hängt da, also das Ende, an dem ich noch dran bin, ist ein Gefühl dafür zu kriegen, dann welche Modellgrößen sich dann in welcher Geschwindigkeit aufhäufen.

Christian

Weil da wir über Mehrdimensionalität reden, ist es natürlich immer so, irgendwann kommt der Punkt, wo jede neue Dimension das ganze Ding natürlich dir schnell weglaufen lässt.

Christian

Und wenn du also irgendwie, keine Ahnung, dein Modell zu trainieren, schon 20 Gig frisst und du kriegst noch eine Dimension rein, dann kann ich mir gut vorstellen, bist du plötzlich bei 40 und damit bist du schon beim oberen Ende, was eine so eine Karte halt kann.

Jochen

Ja, komm mal drauf an, was man macht.

Jochen

Also wenn man halt irgendwie so, ja, so klassische Bild so was Image-Net-Mäßiges macht, halt Klassifikation von Bildern oder so und da Modelle trainiert.

Jochen

Da braucht man nicht so viel Hauptspeicher, weil man jetzt Transformer-Geschichten macht, also Natural Language Processing auf irrsinnig großen Mengen Text oder so.

Jochen

Da braucht man eigentlich so viele Hauptspeicher, wie man kriegen kann und da sind halt auch 24 Gig oder so.

Jochen

Das ist halt so das, glaube ich, Maximale, was man im Computer-Bereich kriegt, halt schnell vorbei und dann.

Dominik

Also eine A auch in seinen Gaming-PC einbauen.

Dominik

Ich mag nur das Interesse.

Jochen

Ja, ja, kann man machen.

Jochen

Aber ja.

Christian

Die A hat, glaube ich, die hat keine Grafik-Outputs, glaube ich.

Christian

Ich weiß nicht, ob die tatsächlich was hilft.

Dominik

Also für die Enthusiasten dann halt in der Szene.

Jochen

Nee, nee, also das sind ja, viele von den Karten benutzt man ja auch so, benutzt man Spieler ja, auch weiß ich jetzt nicht genau welche davon, aber das sind, also die gerade im günstigen Dinger, das sind halt alles eigentlich Karten für den Gamer-Markt.

Christian

Aber kann der, wie ist denn das auch mit diesen externen Grafikkarten dann, schließe ich die Displays an die externen Grafikkarten an oder schleifen die das Rechenergebnis wieder zurück und ich schicke das irgendwie über einen anderen Output raus?

Jochen

Ich meine, man schließt die direkt an, ja.

Ja, das

Christian

ist ja auch, weil es gibt, also auch Nvidia hat an der Stelle halt von ihren, von den Sachen, die haben ja dann auch zum Beispiel noch Spezialkarten, siehe Marktsegmentierung, die so für AI-Unterstützung, Machine Learning-Unterstützung zum Beispiel für Architekten ist.

Christian

Und das sind dann Karten, die haben halt entsprechend auch wieder ein Output dran.

Christian

Und dann gibt es halt noch, da gibt es ja noch dann wieder die Karten, die für Desktop-Virtualisierung gemacht sind.

Christian

Da habe ich gerade einen Kollegen, der da an dem Ende bei sich rumarbeitet, also es ist nicht bei uns in der Firma, sondern woanders, die halt jetzt dank Corona und Homeoffice haben sich anscheinend viele Unternehmen entschieden, die Windows-Desktops ihre User, damit die nicht, die Daten nicht bei den Usern zu Hause liegen, alles über so Remote-Desktop zu machen.

Christian

Und die musst du aber tatsächlich auch durch eine Acceleration durchschicken.

Christian

Naja, weil auch das Windows auf der VM rechnet dir irgendwelche Transparenzen aus.

Christian

Und das willst du nicht mehr in das willst du nicht in CPU machen.

Christian

Und da haben sie dann auch wieder irgendwie Spezialkarten für, die halt genau dafür wiederum getrimmt sind.

Jochen

Ja.

Jochen

Naja, also gut, ich kenne es halt nur von den Leuten, die das halt ja, die das jetzt nicht, also bei den ganzen Enthusiasten sozusagen, die nehmen alle die Gamer-Karten und basteln halt selber.

Jochen

Dann gut, für wenn man jetzt ein Data Center machen will, dann nimmt man vielleicht halt dann einfach in Kauf, das Zeug halt zehnmal so teuer ist.

Jochen

Die sind dann auch in manchen Bereichen noch ein bisschen schneller.

Jochen

Aber da kommt es halt drauf an, was man damit machen möchte.

Jochen

Für Transformer braucht man halt viel Hauptspeicher, für viele andere kleinere Sachen reichen halt auch die mit weniger Hauptspeicher.

Jochen

Es ist sowieso so, dass man ja im Grunde braucht man diese ganze Repower eigentlich nur dann, wenn man tatsächlich größere Trainingsdatenmengen halt hat und irgendwie Modelle quasi von Grund auf trainiert.

Jochen

Also wenn man jetzt irgendwie, und das würde ich jetzt, ist halt die Frage, was das für ein Anwendungsfall ist, aber wenn jetzt den Anwendungsfall hat, wo ich denke, der kommt in der Praxis sehr, sehr häufig vor, man hat im Grunde, man nimmt irgendwie fertig trainierte Modelle von irgendwo her und feintunt die jetzt auf das Problem, das man hat.

Jochen

Also man hat halt irgendwie, keine Ahnung, möchte irgendein Produkt für, was irgendwie, das kriegt halt Bilder und soll dann irgendwas zu den Bildern sagen, die irgendwie klassifizieren oder da halt irgendwie, weiß ich nicht, irgendwas drauf erkennen oder so, was jetzt nicht in den Image-Net-Klassen schon drin ist, dann würde man einfach ein Image-Net-Modell nehmen und dann halt das noch feintunen auf das Problem.

Jochen

Dafür braucht man nicht viel Trainingsdaten und dafür reicht irgendwie so eine billige, diskrete GPU, weiß ich nicht, irgendwie so eine Nvidia 1070 oder sowas, was ganz Billiges, so ein paar hundert Euro, das reicht ja schon aus, um das irgendwie machen zu können.

Jochen

Wenn man jetzt tatsächlich das ImageNet-Dataset komplett neu trainieren möchte für irgendwas, also ein Dataset der Größe, also jenseits, also schon so ein paar hundert von 100 Gigabyte irgendwie Bilder und dann halt von Grund auf das Trainieren, dann braucht man eigentlich alles, was man an Power kriegen kann, weil dann kann es sein, dass ein Trainingslauf halt mal eine Woche läuft.

Jochen

Und ob der eine Woche läuft oder eine halbe Woche läuft, macht dann einen großen Unterschied, weil dann kann man halt unter Umständen doppelt so schnell inteieren.

Jochen

Und ja, also tja, ich denke mal, die allermeisten Leute brauchen das gar nicht so wirklich, die Power, ehrlich gesagt.

Dominik

Aber die sind gerne alle so ein Machine Learning-Ding dabei, wenn wir zum Beispiel irgendwelche Geräte bewegen oder sowas, die alles dann direkt selber wahrnehmen können.

Christian

Genau, aber das ist ja immer sozusagen das Ende von, die benutzen und die Modelle ja nur und schärfen sie vielleicht noch ein bisschen nach.

Christian

Aber die rechnen ja die Modelle nicht.

Jochen

Ne, nicht von Grund auf, genau.

Dominik

Wäre doch schön, wenn nicht das Modell parallel anpasst, aber naja, wir träumen hier

ein bisschen.

Jochen

Doch, die kann man ja tun, aber die unteren Ebenen, also sozusagen du trainierst halt bei so einem Feintuning, was du da machst, ist halt, du passt halt nur die oberen, also sozusagen nur einen Teil der Layer an.

Jochen

Also du frierst halt die Gewichte für den Großteil deines Modells ein und passt halt nur noch Details davon an.

Jochen

Wenn jetzt irgendwas über Image-Net gelaufen ist, was halt jetzt, also ein Modell, was jetzt super gelernt hat, wie man Haare erkennt oder Augen oder sowas.

Jochen

Das macht eigentlich keinen großen Sinn, wenn du jetzt eine spezielle Art von Tier irgendwie erkennen willst auf Bildern, das nochmal alles von Grund auf neu zu machen, so zu trainieren, wie man einen Fell erkennt oder so, weil das funktioniert schon super.

Jochen

Du willst halt nur, dass deine Klasse von Tier jetzt dann noch gut erkannt wird, aber dafür musst du eigentlich nur ein paar Layer.

Dominik

Bei Live-Videodaten oder sowas, das ist vielleicht noch anders.

Jochen

Natürlich, also es kommt halt aus, ich meine, Video ist sowieso ein Ding, wo es noch nicht so viel gibt.

Jochen

Das wäre, wenn, also klar, wenn du jetzt eine neue Geschichte machst, die sonst noch keiner gemacht hat, dann hast du natürlich genau.

Jochen

Oder wenn du auch neue Modelle ausprobieren willst, wenn du die Architektur änderst und sagst, mir ist jetzt eingefallen, wie man das jetzt, wie man eine ganz neue, tolle Art von Machine Learning-Modell hat, bauen kann, die alles viel besser macht.

Jochen

Und da musst du halt von Grund auf neu trainieren, weil ja, du wirst ja demonstrieren, dass es besser ist.

Jochen

Dann, ja, also wenn du Machine Learning-Forschung machst und so, klar, dann musst du, aber auch da brauchst du unter Umständen keine so wahnsinnig wahnsinnig große Rechenleistung für.

Jochen

Du brauchst sie, ja, wenn du Forschung im Bereich von Transformer machen willst, dann brauchst du halt richtig viel Hauptspeicher und richtig Leistung.

Jochen

Aber ich meine, wer macht denn sowas?

Jochen

Also so

Christian

die Leute, die Werbung, die Leute, die die Werbung auf die Webseiten drücken wollen.

Christian

Da fließt doch das ganze Geld rein.

Christian

Das Geld fließt da rein, dass die Leute mehr auf die Werbung klicken.

Jochen

Ja, ja, ich hab da, also die haben auch, da habe ich mal auch mal an so einer Machine Learning Competition teilgenommen.

Jochen

Da gibt es die französische Firma Kriteo, oder ich habe jetzt schon wieder den Namen vergessen, die machen irgendwie sowas wie zum Beispiel vorhersagen, wie wahrscheinlich ist es, dass irgendjemand auf den, dass ein User irgendwie auf Werbung klickt oder so.

Jochen

Und die Modelle, die da aber gewonnen haben, gut, das ist jetzt auch schon lange her, aber das war alles total einfach, das war alles linear, irgendwie, das war alles so Logistic Regression lässig.

Christian

Ich bin mal gespannt, ich habe mich ja jetzt mal, also ich habe, um da ein bisschen tiefer auch in das Thema für mich einzusteigen, weil ich halt eigentlich immer gerne verstehen will, wie ist das handwerklich gemacht, habe ich mich in so einen Coursera-Kurs eingeschrieben.

Christian

Und da kommen natürlich dann diese ganzen Standardteile, unter anderem dann halt auch irgendwelche Recommendation Systems.

Christian

Und ich wollte ja ganz kurz irgendwie den Schreibtisch abräumen und alles in die Ecke pfeffern, als dann die Aussage war, dass ja irgendwie so die tollen, positiven Beispiele, die sind, wie Netflix dir halt neue Sachen empfiehlt und Amazon.

Christian

Und ich denke mir so, ja, aber das sind doch die Beispiele für, das hilft gerade genau gar nicht.

Christian

Also ich meine, wofür brauche ich Machine Learning, damit mir meine Plattform sagt, du hast gerade einen Schraubenzieher gekauft.

Christian

Ich glaube, du willst einen Schraubenzieher kaufen.

Christian

Also ich habe ja noch nie irgendwie, also ich habe es noch nie in Funktionierend gesehen, dass da irgendwie sinnvolles Zeug rauskam.

Christian

Mich würde wirklich interessieren, wo die Teile, also wo jemand nachgewiesen hat, dass das was bringt.

Christian

Also vielleicht bin ich auch einfach als Nerd so ein bisschen komisch an der Stelle.

Christian

Also ganz wichtig.

Dominik

Das ist ganz wichtig, Recommendation-Systeme, das geht gerade besonders gut.

Dominik

Einfach die Sachen, die am häufigsten gekauft werden, die viralisieren sich dann einfach weiter.

Dominik

Scheint ja auch zu funktionieren.

Jochen

Naja, also was ich, das ist jetzt aber auch schon wieder ganz lange her, aber zum Beispiel Netflix hat da ja tatsächlich mal einen Preis für ausgelobt, für eben Leuten Videos empfehlen.

Jochen

Und das weiß gar nicht, wann das war.

Jochen

Das muss, das ist jetzt auch schon über zehn Jahre her, oh mein Gott.

Jochen

Und sie haben da eine Million Dollar drauf ausgesetzt.

Jochen

Und das, was die Leute daraus da gemacht haben, war auch sehr interessant.

Jochen

Und die Verbesserung in diesem Wettbewerb von wie war das am Anfang oder was hat Netflix quasi, also sie haben als Baseline auch angegeben, was sie momentan verwenden für ein Verfahren und wie gut das ist.

Jochen

Und das, was dann hinterher gewonnen hat, das war schon deutlich besser.

Jochen

Also das hat richtig was gebracht.

Jochen

Aber ehrlich gesagt, natürlich, es ist immer noch nicht wirklich gut.

Dominik

Ja, einfach so mit wäre

gut, ne?

Jochen

Ja.

Christian

Also, gerade Netflix muss sich halt dann an der Stelle auch gefallen lassen, ihr Katalog ist halt nicht so groß.

Christian

Also, wenn ich es halt vergleiche, auch die eingeschränkte Art, wie man es häufig browsen kann, dass du gar nicht mehr so richtig wirklich strukturiert durch die Kataloge durchkommst, sondern immer nur noch nach irgendwelchen vorgefertigten Kategorien, die so ein bisschen merkwürdig sind und dann irgendwie so Unterkategorien haben, die Netflix irgendwie gefallen, dann hilft es mir ja nichts, wenn er mir die 20 Filme, die er für mich gut findet, mal in der und mal in der und mal in der Reihenfolge anzeigt.

Christian

Das ist ja das, was momentan irgendwie gefühlt für mich dabei rauskommt, ist, nach so einer Pandemie nach dem Jahr, Netflix ist ja, was gerade was Filme angeht, immer ziemlich hintendran.

Christian

Dann hast du eh schon alles durchgeguckt.

Christian

Und jetzt empfehlen sie dir das, aber halt einmal in der und in der und der Reihenfolge.

Christian

Wie viel Machine Learning brauche ich dafür?

Jochen

Ja, es ist auch die Frage, ob das eben tatsächlich ein Machine Learning-Problem ist oder vielleicht doch eher ein User-Interface-Problem.

Jochen

Ich finde das auch total schrecklich.

Jochen

Ich finde, also ich habe auch immer das Gefühl, ich weiß nicht, ob was die da optimieren, aber manchmal habe ich das Gefühl, sie optimieren darauf, dass man da möglichst lange drin rumsucht.

Jochen

Also es ist irgendwo ein Incentive falsch gesetzt oder irgendein KPI.

Jochen

Es ist halt einfach in die falsche Richtung.

Christian

Ja, sie haben eine Variable oder irgendeine Dimension in ihrem Ding drin, wo Ausversehen drauf optimiert wird.

Christian

Und es entspricht, und das ist ja sozusagen, als ich angefangen habe, mir so ein bisschen nochmal die mathematischen Grundlagen, mich da zwar relativ schnell ausgestiegen, aber so die groben Ideen davon anzugucken, ist mir schon immer mal, so ein bisschen sind mir die nicht vorhandenen Haare zu Berge gestanden, weil damit gerade in Tutorials mit einer Nonchalance über relativ schwer wichtige Entscheidungen über was nehme ich hier, wie mache ich Feature Extraction, wie mache ich das jenes, mal so schnell drübergebügelt

Christian

wird mit einer Erklärung, wo ich dann denke von ja, nee, du verwechselst, also die machen ein Beispiel, warum ging es da?

Christian

Ich glaube, es ging um Feature Extraction und die Ähnlichkeit von Repräsentanten im System.

Christian

Und sie hatten als Beispiel irgendwie Stolz und Vorurteil und irgendwie mit welchen Dimensionen und wie man jetzt eigentlich rausfindet, welche Charaktere, wenn sie über diverse Dimensionen abgebildet werden, sind eigentlich näher aneinander dran, also sind sich ähnlicher zueinander und gehen darüber hinweg und ich sitze danach da und da, aber das war doch jetzt gerade gerade eben keine Erklärung für etwas, was man automatisieren kann.

Christian

Das ist ja, du hast ja a posteriori einen eigentlich ohne Menschen laufenden Prozess sinnbildlich auf eine Art erklärt, wo ich sage, das kann der ja gerade nicht.

Christian

Das heißt, was du mir gerade erklärt hast, ist, der macht dann nachher irgendwas draus und du kannst nicht mal mehr nachvollziehen, ob das jetzt wirklich Hand und Fuß hat oder nicht.

Christian

Und dann kommt man an so einen Punkt, wie wir es jetzt gerade hatten, von müssen wir jetzt darüber nachdenken, dass da ein Bias im System drin war, den keiner gesehen hat, weil das Ding sich selber irgendwo ein lokales Maximum gesucht hat in der Optimierung und eben auszusehen drauf optimiert hat, dass die User möglichst lange den Katalog browsen und möglichst wenig gucken, damit Netflix möglichst wenig Lizenzgebühren bezahlen muss.

Ja, ich wäre auch ein Sitzungspekt.

Jochen

Vielleicht ist es eine mögliche Erklärung.

Jochen

Ohne ist es ein Phänomen, das ist.

Dominik

Vielleicht haben sie tatsächlich auf die Nutzungsdauer pro Runde geoptimiert, ja.

Dominik

Also wie lange gucken die Leute und wenn du jedes Mal zehn Minuten extra guckst für eine Suche, gucken die Leute die länger.

Christian

Ich würde dem auch zustimmen, dass es ein UI-Problem ist im Sinne von, ich will manchmal einfach bloß den Button haben zu sagen, blende doch mal aus diesen ganzen Vorschlägen, den ganzen Quatsch raus, den ich schon mal geguckt habe.

Christian

Ja, es gibt bestimmte Filme, die gucke ich immer wieder, da muss halt zum 35.

Christian

Mal Big Lebowski laufen.

Christian

Aber das ist nicht der Standardfall, wenn ich durch den Katalog suche.

Christian

Dann will ich einfach mal alles weghaben.

Christian

Und dass es solche Sachen nicht mehr gibt und dass es nur noch über die Recommendation läuft.

Dominik

Also ich hätte gerne einen Film angezeigt und zwar genau den, den ich gerade in dem Moment gucken will.

Christian

Nein, das geht ja nicht.

Christian

Das verkürzt ja die Komplexität menschlichen Daseins so massiv.

Dominik

Naja, aber vielleicht kann der Algorithmus ja sich mit mir irgendwie koppeln und irgendwie einen Faktor reinnehmen, dass er versteht, was ich gerade möchte.

Dominik

Ich glaube auch nicht, dass er aus meinem historischen Guckverhalten sowas schon wüsste, ja.

Aber so durch vollständige Innovationen.

Christian

Das ist ja das andere Problem.

Christian

Du kannst ja nur, also wie es ist auch in den Tutorials immer, oder bei wem war es?

Christian

Ich glaube, das war bei meinem aktuellen Coursera-Kurs, da war der Vergleich von Machine Learning hat im Prinzip zum Ziel, ungefähr das menschliche Lernverhalten, was wir im Alter von vier Jahren haben, nachzubilden.

Christian

Und das würde ich sagen, das kriegen wir ziemlich gut hin.

Christian

Also viele Leute machen ja Witze drüber, dass Machine Learning sich so anstellt wie ein kleines Kind.

Christian

Ja, gibt es ja haufenweise Memes, die immer.

Christian

Ist das ein Brokkoli?

Christian

Nein, das ist kein doch, das ist ein Brokkoli.

Christian

Was ist das?

Christian

Es ist kein Brokkoli, doch, das ist Brokkoli.

Na gut, das ist ein Brokkoli.

Christian

Und gleichzeitig wird wird dem aber eine ominöse Fähigkeit zugeschrieben, die weit über das hinausgeht.

Christian

Also wenn man auf der einen Seite ehrlich sagt und sagt, okay, wir versuchen so ein biologisch inspiriertes Lernverhalten von einem Vierjährigen und der kann ja was.

Christian

Also das Hirn und dieses ganze Pattern-Matching, was wir haben und dieses, wie trainiere ich das halt an, das ist ja nicht so, dass das nichts kann.

Christian

Aber ich kann halt auch einen Vierjährigen nicht drauf trainieren, mich anzugucken und sich zu fragen, wie geht es mir eigentlich?

Christian

Oder was bräuchte ich, was würde mir jetzt als Erwachsener eigentlich guttun?

Christian

Dafür ist ein Vierjähriger halt nicht gemacht.

Jochen

Ja, ich glaube auch, es ist halt genau, es ist halt unklar.

Jochen

Deswegen sind halt die Erwartungen teilweise vielleicht völlig daneben was und zu optimistisch, teilweise aber auch vielleicht zu pessimistisch, dass man glaubt, da geht gar nichts und manche Sachen.

Jochen

Es gibt schon sehr beeindruckende Dinge, die man damit auch machen kann und Fortschritte, die da passiert sind.

Jochen

Insofern ist es halt einfach momentan nicht klar, was da überhaupt geht und was passiert.

Jochen

Das werden wir dann halt mit der Zeit irgendwann rausgefinden.

Christian

Naja, ich glaube, ein wichtiger Aspekt davon ist ja die Frage, benutze ich, also das kommt jetzt aus dem ganzen Thema Komplexität, nutze ich es, um menschliche Kognitionsprozesse zu ersetzen oder zu unterstützen?

Christian

Also es ist ja Augmentation oder Cognitive.

Dominik

Also es gibt ja jetzt auch so neue tolle Kontakte, mit denen man sowas augumentieren kann.

Dominik

Ja, sehr schön.

Dominik

Und durch diese Augumentierung, wenn die halt Machine Learning gestützt ist, ja, das ist natürlich schon super cool, weil du halt einfach Zusatzinformationen bekommst, die du vielleicht sonst nicht mehr bist.

Christian

Und das ist viel, genau, und das ist aber viel, das ist auf der einen Seite viel leichter, es ist ethisch auch viel einfacher zu kontrollieren, aber natürlich hängt jedes Startup und jeder immer erstmal hin, nein, nein, das machen wir hier, wir ersetzen das, wir lösen das Problem komplett.

Christian

Und ich glaube, das ist halt eine massive Sackgasse.

Christian

Also ich habe, so ein paar Beispiele, die man dann immer sieht, ist halt auch dieses Thema Krebszellen erkennen.

Christian

Das ist ja gedacht als Augmentierung.

Christian

Das ist ja nicht dafür gedacht, dass der Arzt das nicht mehr drauf guckt, aber das ist halt gedacht, dass wenn du halt eine gewisse Menge schon vorverarbeitete Zellbilder hast, auf denen bestimmte Parameter, wie irgendwie die Klumpigkeit und der Farbton und die Schärfe von der Umrandung und ich glaube, es sind so 15, 16 Dimensionen, nach denen das dann auch bewertet und gelabelt wird, und dann kannst du mit einer relativ hohen Konfidenz von irgendwie so 90 Prozent da halt die Sachen erkennen.

Christian

Und wenn ein Arzt natürlich die Unterstützung hat zu sagen, so guck mal, hier hat ein Algorithmus, jetzt dir Prozentwerte dran geschrieben und gerankt, guck dir mal bitte zuerst die hier an, mit besonderer Vorsicht.

Christian

Und bei dem bin ich mir unsicher und das da glaube ich ist es übrigens nicht.

Christian

Dann kann der natürlich nochmal anders rangehen, weil er, er hat einen Sparring-Partner, er guckt selber nochmal drauf, was sagt seine professionelle Intuition zu diesen Dingen, wo er sagt, das hätte ich irgendwie anders bewertet, nochmal genauer hingucken, ah ja, okay.

Christian

Und dann ist das tatsächlich, das ist Augmentation.

Christian

Das heißt, das Hirn von dem Arzt, der das bewertet, ist weiterhin dran zu arbeiten, wird aber entlastet, irgendwie die komplette Bewertung zu machen, sondern kriegt halt schon mal so ein bisschen Sparring dazu, ist aber er ist der, der am Steuer sitzt.

Christian

Und das ist aber was anderes, als wenn du halt sagst, naja, das Ding läuft auf Vollautomatismus.

Christian

Wenn es geht, dann muss halt jemand irgendwie ein Postmortem machen.

Im wahrsten Sinne des Wortes.

Ja.

Dominik

Ja, also es hat halt viele Wirklichkeiten.

Dominik

Das Problem ist halt, dass du halt diese Granularität nur durch vollständige Informationen auf dem höheren Treffergrad bekommst.

Dominik

Das heißt, wenn du jetzt wirklich irgendwie so eine Genschere machen wollen würdest, die die entsprechenden Teile genau an der richtigen Stelle raussiebt, dann müsstest du wahrscheinlich relativ hohe Datenmengen und relativ hohe Experimente machen.

Dominik

Und das Problem beim Machine Learning ist ja irgendwie, dass der irgendwie selbstständig irgendwelche Zufallsexperimente macht in irgendwelchen Datenpatterns, die wir gar nicht so genau sehen können, weil der irgendwie da, weiß ich nicht, binär reinguckt oder so.

Dominik

Und dann halt irgendwelche Zufallswerte generiert, aus denen der dann irgendwie eine wahrscheinlichste, die wahrscheinlichste Wiederholung irgendwie bemerkt.

Christian

Es sind ja keine Zufallswerte.

Ja, es sind keine Zufallswerte.

Jochen

Nicht alle Machine Learning-Modelle haben irgendwas mit Statistik zu tun, das ist auch nicht so.

Dominik

Ja, weil so ein bisschen macht er es doch schon, oder?

Jochen

Kommt auf das Modell an.

Jochen

Das gibt es sehr unterschiedliche Modelle, also.

Dominik

Okay, dann müssen wir das vielleicht nochmal in einer anderen Folge genauer angepasst.

Christian

Ja, also der Klassiker, wenn du über die neuronalen Netze halt nachdenkst, mit einer Backpropagation, dann ist es halt schon so, das sieht für uns aus.

Christian

Ja, der kriegt dann immer, der hat sein häufig haben sie ein random initialisiertes Modell.

Christian

Das gibt es schon.

Christian

Und dann ist es aber so, dass das an den Gewichten rumdrehen ist halt eine deterministische Funktion.

Christian

Das ist, du hast halt, du hast ja dein gelabeltes Datenset und sagst so, hier kommt mein Input, liebes neuronales Netz, rechne mal.

Christian

Und dann kommt nachher raus, ich glaube, der Output ist folgender und dann vergleichst du das mit dem gelabelten Output, der zu diesem Beispiel gehört hat, und daraus ergibt sich ein Fehler.

Christian

Und dann macht man da eine Bewertungsfunktion für den Fehler und er sagt, okay, damit dieses Bild oder dieser Input besser vom neuronalen Netz verarbeitet würde, hätten die Gewichte anders sein müssen.

Christian

Und er rechnet sozusagen von dem Fehler wieder zurück, was man an jedem Gewicht ein bisschen drehen müsste.

Christian

Das wird gedämpft, also nicht jedes, das ist sozusagen so wie man am Steuer sitzt, wenn du merkst, dein Auto fährt ein bisschen in die falsche Richtung, schlägst ja nicht volle Kanne 90 Grad in die andere Richtung ein, sondern der sagt dann, okay, ich habe hier einen Fehler und der Fehler darf jetzt um 1% nachsteuern.

Christian

Das heißt, wenn du 100 solche Bilder hast, dann haben die vielleicht um 30% nachgesteuert.

Christian

Aber es ist nicht so, dass halt, es ist ja nicht so, dass es random ist, sondern er rechnet immer aus, was wäre jetzt, wie hätte das aussehen müssen für die perfekte Lösung.

Christian

Da ich aber nicht nur dieses eine Bild bewerten können will, das wäre dann ja Overfitting.

Christian

Muss ich mich in der Anpassung ein bisschen dämpfen und jedes Bild, was einen kleinen Fehler hat, korrigiert das Netz immer wieder ein kleines bisschen nach.

Christian

Aber das ist nicht random an der Stelle.

Christian

Das müsste sogar eigentlich deterministisch sein.

Christian

Und ich glaube, dass man sie random initialisiert, macht, glaube ich, ist eine Idee, dass man halt versucht, irgendeinen Bias zu vermeiden, dass man irgendwie an einem Extremwert einsteigt, der das Modell halt völlig verzerrt.

Christian

Der Feier acht immer du, alles steht auf null und dann kommt er halt nie vom Fleck.

Christian

Das ist so ein bisschen, wenn du dir an die Newton, wenn du an Newton denkst, wenn du halt eine Newtonsche Approximation probierst, da ist es auch immer so, dass du schon mal so grob in irgendeine Richtung werfen musst.

Christian

Weil wenn du halt irgendwie völlig bei null oder an einem blöden Punkt anfängst, dann kommst du halt nie zum Ziel.

Christian

Naja, wo das dauert sehr lange.

Jochen

Ja, ich überlege gerade gerade immer, ja, also ich weiß nicht genau, ich würde es eher allgemeiner, also auch gerade was dieses, was das Lernen angeht, ich würde sagen, Machine Learning oder sowas, was versucht, ist halt Software hinzubekommen, die halt mit Erfahrung besser wird.

Jochen

Und ich würde das tatsächlich so allgemein lassen.

Jochen

Was das genau tut, kann man gar nicht so sagen.

Jochen

Es gibt alles Mögliche.

Jochen

Also es gibt auch, also das ist nicht immer in einer bestimmten Art, sondern das ist halt so, es gibt die unterschiedlichsten Geschichten.

Christian

Ja, was man halt, ich glaube an einer Stelle, ich hab da, der Trick ist ja, das ist ja ein technisches Werkzeug.

Christian

Das kann was, das kann bestimmte andere Sachen nicht.

Christian

Und da habe ich erstmal ja null Probleme mit.

Christian

Ich glaube, wo wir in der Öffentlichkeit so ein Problem haben, ist dieses eben dieses Zuschreiben, dieses, es ist so komplex, dass man ja nur über Vereinfachungen, über Bilder darüber reden kann.

Christian

Und wenn die Leute aber dann mit diesen vereinfachten Bildern weiterdenken wollen, dann führt das halt ganz schnell zu logischen Schlussfolgerungsfallen, weil man halt auf Basis dieser Analogien nicht mehr dem technischen Kern gerecht wird.

Christian

Und die, ich meine, was ich spannend finde, ist erstmal, wenn man diese Unterteilung nochmal anguckt zwischen Supervised und Unsupervised, dann sind gerade die Supervised-Sachen natürlich immer interessant, weil ich kann mir die Extremwerte nochmal angucken und kann schauen, also ich kann es halt evaluieren und ich kann halt prüfen, wenn ich feststelle, ich habe hier komische Fehler drin, die ich so nicht beabsichtigt habe, woran liegt denn das?

Christian

Muss ich noch eine Dimension dazu nehmen?

Christian

Fehlt mir bei einer Dimension irgendwas?

Christian

Ist in meinen Eingangsdaten irgendwas komisch, weshalb das Training in bestimmten Varianten halt in die falsche Richtung läuft?

Christian

Und kann das dann halt auch immer weiter treiben.

Christian

Weil das ist ja was, das kann Machine Learning an der Stelle nicht, Machine Learning kann ja nicht selber feststellen und sagen, du brauchst eigentlich ganz andere Eingangsdaten für dein Problem.

Christian

Das kann ich dir ja nicht liefern.

Christian

Doch.

Jochen

Doch, doch.

Jochen

Also, naja, man kann sich schon angucken.

Jochen

Zum Beispiel, man kann sich die Kurve angucken, mit zunehmenden, also man trägt dann halt den Trainingserror gegen den Testerror auf zum Beispiel.

Jochen

Dann kann man sich halt angucken, dann je nachdem, wie das dann aussieht, also wenn die beiden Kurven sehr weit auseinanderliegen, also sozusagen, wenn man der Fehler auf den Trainingsdaten gering wird, aber auf den Testdaten nicht, dann und die beiden Kurven sehr weit auseinander liegen, dann weiß man, okay, man hat zu wenig Trainingsdaten.

Jochen

Oder die falschen.

Jochen

Oder die sind halt nicht gut verteilt.

Jochen

Wenn das Ding sich über, wenn die Kurven anfangen, sich zu überschneiden, also weiß man halt, okay, ja, man overfittet gerade zum Beispiel.

Christian

Aber das sind ja Sachen, die werden zum Beispiel, da kommen wir in den Bereich, das ist augmented und das ist ein Prozess, den wir als Menschen halt begleiten.

Christian

Das ist halt was, also dann diese Entscheidung zu treffen, jetzt ist es soweit, dass ich das halt anders machen muss, das kann das Modell nicht für dich.

Christian

Und das Modell kann dir auch nicht sagen, was das andere ist, was es braucht.

Jochen

Ja.

Christian

Gehen wir nochmal auf die, also Siegrebszellen, die haben dann halt da irgendwie ihre Dimensionen, wonach sie das Zeug bewerten.

Christian

Und das sind sozusagen die Erkenntnisse von, okay, wir nehmen mal die Daten, die die Ärzte uns gesagt haben, danach bewerten sie, ob so ein Ding gut ist oder nicht.

Christian

Da ist ja der Vorteil, dass in der Medizin da ja auch die Prozesse so gut standardisiert werden, dass man halt eben das auch explizieren kann, dass man nicht irgendwie fünf Leute fragen muss, die kratzen sich am Kopf und ja, wie mache ich das eigentlich, sondern das ist ja gut standardisiert.

Christian

Und aber ob du das, wenn du es im mathematischen Modell dann tatsächlich hast, über so ein, dann kannst du, ich gehe mit, man kann halt über die Evaluation, über die Qualitätskriterien nachher rausfinden, Mist, hier stimmt was nicht.

Christian

Aber zu einer Entscheidung zu kommen, zu sagen, du übrigens, wir müssen uns noch angucken, ob das Ding Fransen hat oder keine Fransen, das kann das, das ist eine semantische Ebene, die kann das Ding dir nicht sagen.

Christian

Für das Modell sind das ja immer.

Jochen

Also ich weiß es nicht.

Christian

Was macht das da?

Christian

Du hast ja anscheinend irgendwas gerade in der Intention, was dir sagt, da versteckt sich was Interessantes.

Christian

Finde ich jetzt interessant.

Jochen

Ja, also ich weiß es nicht.

Jochen

Also auch, also dass da das Problem würde ich auch daran, also ich meine, gerade in der Medizin, naja gut, das ist auch wieder so ein weites Held dann direkt.

Jochen

Es ist ja so, dass wir momentan ja eigentlich sehr, sehr grobe Geschichten machen.

Jochen

Also wenn man ja so eine Diagnose und dann, was macht man jetzt irgendwie, wenn man die Diagnose hat, das ist halt sehr, sehr, auch was gibt man für Medikamente, ja, das ist ja alles super grob.

Jochen

Das ist ja überhaupt nicht angepasst auf jemanden individuell oder so.

Christian

Nee, nee, das ist also.

Jochen

Und wenn jetzt, äh, also man könnte jetzt das aber, so angenommen, man nimmt jetzt, weiß ich nicht, irgendwie Daten, was auch immer, alle möglichen Daten, die man jetzt über irgendwie einen Patienten hat und ein Modell sagt einem jetzt, okay, nimm jetzt nicht irgendwie zwei Tabletten von der Sorte jeden Tag oder so, morgens und abends, keine Ahnung, sondern irgendwie, wir mixen jetzt folgende Wirkstoffe in der Kombination zusammen und das muss zu den Zeiten.

Jochen

Das könnte ein einzelner Arzt ja niemals machen im Grunde in der Granularität.

Jochen

Granularität.

Christian

Ja, nee, aber ich bin ja gerade an einem, einem, ich bin, nochmal ganz kurz zu meinem, da würde ich gerne anknüpfen, aber wo ich halt davor stehe, ist, wenn wir Feature Extraction halt haben, wo ja durchaus teilweise eine Qualität von Features, die eine sehr hohe kognitive Leistung erstmal haben.

Christian

Deswegen geht mir dieses Krebszellenerkennungsding nicht aus dem Weg.

Christian

Da ist es ja nicht so, es geht ja nicht darum, dass dieses, dass das Foto, es ist ja kein Image Processing, was da stattfindet.

Christian

Sondern, also ich habe ein ganz konkretes Modell gerade, was da steht.

Christian

Und die machen halt kein Image Processing, sondern die haben feature extrahierte Sachen, wo Menschen halt auf so einen Fleck drauf gucken und sagen, der hat folgende Eigenschaften und das sind sehr, sehr kognitiv hochwertige Eigenschaften.

Christian

Also hat es eine regelmäßige Kante, ist es irgendwie besonders scharf abgegrenzt, hat es irgendwie kleine Ausstülpungen, hat es dies, hat es das, hat es jenes.

Christian

Und das sind die Features, die dann in das Modell reingehen, wo er sagt, okay, bei dem, mit diesen Eigenschaften würde ich sagen, das ist eine Krebszelle, bei dem anderen, das ist es nicht, bei dem nächsten, das ist es, und darauf kannst du halt ein Modell trainieren.

Christian

Wenn du sowas trainierst, so ein Modell, und du findest mit den Qualitätskriterien, die du zwischen deinen Tests und deinen Trainingsdaten heraus, dass das gerade nicht passt, dann kannst du das als Signal nehmen, dass du als Mensch hergehen musst und sagen musst, das Modell reicht so nicht, das kann ich so nicht in Betrieb nehmen.

Christian

Aber das Modell selber kann dir nicht sagen, ja, überleg dir mal nochmal, ob die Farbe eine Rolle spielt.

Christian

Das kann das Modell halt nicht.

Jochen

Da würde ich sagen, also das kommt halt darauf an, was man für ein Modell macht, aber äh, nimmt aber jetzt, wenn man jetzt die Bilder nimmt, ohne die ganzen menschlich extrahierten Features, dann würde ich sagen, also die Deep Learning-Modelle, die machen genau das.

Jochen

Die extrahieren die ganzen Features selber.

Christian

Ja, natürlich, aber was sie nicht können, sie können sich nicht ausmalen, welche anderen Daten ihnen helfen würden, noch akkurater zu werden, die nicht.

Christian

Also Beispiel, du gibst denen Bilder, das Ding kann dir ja nicht sagen, ey, und wenn du mir ein UV-Bild davon machst, kann ich es besser.

Jochen

Ja, nee, gut.

Christian

Das meine ich gerade.

Christian

Sie können nicht aus ihrem System raus.

Christian

Sie sind ja selbstreferenziell, sie sind in sich beschränkt.

Christian

Und das ist das, wo ich meine.

Christian

Das ist ja das, was ein Vierjähriger kann.

Christian

Du kannst den Vierjährigen trainieren und der kann das, aber der kann halt häufig nicht die nächste Leistung, also er kann noch nicht die nächste Leistung bringen und sagen, ja, da draußen in der Welt ist ja noch mehr, von dem ich noch nicht weiß, was hier vielleicht jetzt passen würde.

Christian

Deswegen, also ja, das kann mit den Daten arbeiten, es kann auf den Daten ganz coole Sachen machen und auch diese automatische Feature, die können alles, aber dann zu sagen, du hast mir jetzt Fotos gezeigt von den Zellen, ich bräuchte aber mal noch, was der die letzte Woche gegessen hat.

Dominik

Ja, die Auflösung beim Vieljährigen ist auch einfach viel höher, ne?

Dominik

Viel mehr Informationen drin.

Dominik

Viel, viel mehr.

Jochen

Keine Ahnung, was Menschen machen, weiß ich jetzt nicht.

Jochen

Aber dass man andere Informationen mit reinnimmt, das geht auch.

Das ist nicht so.

Christian

Ja, nein, was ich aber sage ist, das Modell kann dir nicht sagen, gib mir diese Art von anderen Informationen.

Jochen

Nö, aber man kann ihm alle gerne.

Dominik

Ich kann auch nicht.

Dominik

Also wenn er das nicht macht.

Christian

Genau, genau.

Christian

Und ich glaube aber, das ist etwas, ich versuche noch irgendwie zu dem Punkt zu kommen, wo ich da dastehe, ist, das ist was, wo Machine Learning einfach falsch wahrgenommen wird.

Christian

Von das löst irgendwie diese und jene und so Probleme und alles, aber Machine Learning kann nie die eigenen Grenzen erkennen und überschreiten.

Christian

Das geht halt nicht.

Christian

Und das ist für mich dieser Punkt, weswegen Argumentation so wichtig ist, dass du dort jemanden hast, dass du dort jemanden hast, der als körperliche biologische Entität in der Welt ist und in der Lage ist, seine eigenen Grenzen in Frage zu stellen und zu überschreiten.

Jochen

Ja, also.

Christian

Bei der Grenzerkennung gehe ich mit.

Christian

Also dass ein Modell Safety Bells haben kann und sagen kann, du, hier komme ich an meine Grenze, ja, aber es kann nicht selber sagen, ich mache jetzt ein Forschungsprojekt und finde raus.

Dominik

Man könnte ja vielleicht mehrere Netze miteinander kombinieren, ja, dass du ein Cluster von Netzen hast, wo ein Netz auf sowas achtet ist.

Das ist der Mensch.

Christian

Das ist der Mensch, das ist nicht das Machine Learning, was das macht.

Ja.

Jochen

Ja, keine Ahnung.

Jochen

Also wir sind halt noch nicht so weit.

Jochen

Wenn wir Kanzen von Hunden unterscheiden können, das sind wir total glücklich.

Jochen

Also insofern, ja, das mal schauen.

Jochen

Keine Ahnung.

Dominik

Ich finde, dass wir den Kanzen von Hunden unterscheiden wäre ein super Schlusswort für diese Machine Learning-Folge.

Ja.

Dominik

Hattet ihr noch einen wichtigen Punkt?

Dominik

Ich wollte euch nicht ganz so abwöhnen.

Jochen

Ja, tatsächlich.

Dominik

Sonst machen wir den einfach das nächste Mal.

Jochen

Stimmt, wir sind auch schon eine ganze Zeit lang dran, ne?

Dominik

Ja, und das ist spät.

Christian

Also was ich noch spannend fände, wenn vielleicht auch Hörer tatsächlich an der Stelle wollen, dass wir dem Thema treu bleiben.

Christian

Und damit nochmal, weil ich glaube, das können wir nochmal ein bisschen, wenn ich da tiefer angewiesen bin und nochmal ein bisschen praktischer und ein bisschen Python-orientierter machen.

Christian

Weil wonach ich tatsächlich momentan so ein bisschen Ausschau halte, ist so ein bisschen Spielprojekte, nach denen ich mir nämlich mal genau das ausprobieren will, so in welchen Anwendungsfällen von qualitativer Bewertung und für diese ganzen unterschiedlichen Teildisziplinen von Machine Learning, auf welche Arten von Daten kann man das eigentlich mal loslassen, weil da merke ich so, jetzt langsam muss ich da mal einfach irgendwas selber bauen mit den eigenen Daten, die hier so rumfliegen.

Christian

Vielleicht gibt es ja auch noch ein paar Leute, die gerade ein Haus gebaut haben und ein bisschen Hausautomatisierung machen.

Jochen

Oh ja, das ist auch noch ein großes Thema.

Dominik

Aber dann genau, schreibt das doch an hallo.peisenpodcast.de und sagt uns Bescheid, wie ihr das vernetzt.

Jochen

Jo.

Dominik

Ja, dann einen wunderschönen guten Abend.

Dominik

Bleibt uns gewogen.

Dominik

Schön, dass Christian wieder dabei war.

Dominik

Ja, dann hören wir uns nächstes Mal.

Jochen

Alles klar.

Tschüss.

Tschüss.

Ciao.