Mehr Infos

Ein Tauchgang in die Welt des Machine Learnings mit Felix Dittrich

Felix Dittrich, ein Machine-Learning-Engineer beim deutschen Start-up memoresa, findet alles, was mit Machine Learning (ML) zu tun hat, total spannend. Da ML gerade stark im Trend ist, hat er sich dazu entschieden, seine Einblicke und Erfahrungen mit uns zu teilen. Auf den Leser warten hilfreiche Tipps und Eindrücke in einem der am schnellsten voranschreitenden Gebieten der modernen Welt.

Felix Dittrich arbeitet zurzeit als Machine-Learning-Engineer beim Start-up memoresa. Das deutsche Unternehmen befasst sich mit dem Management deines digitalen Lebens und ist dabei vor allem in Deutschland und Österreich tätig. Es geht um die digitale Ablage von Post, Versicherungen und auch Sachen wie digitalen Gesundheitspässe. Eben das Wichtigste, was man für seine digitale Identität braucht. Und da es sich hierbei um wichtige persönliche Daten handelt, wird das Wort „SICHERHEIT“ komplett großgeschrieben.


Derzeit ist Felix allein für den Machine-Learning-Bereich zuständig. Diese Situation beschreibt Felix als seinen persönlichen „Pain-Point“, da er niemanden hat, mit dem er sich über seine Projekte auf der Arbeit austauschen kann. Allerdings ergänzt er, dass dies auch ein Pluspunkt ist. Er darf nämlich alles von Null an selbst aufbauen. Das beinhaltet Tätigkeiten wie: Datenbeschaffung, Data-Cleansing, Entscheidungen über ML oder sogar Deep Learning, Pipelines bauen, Modelle auswählen, Validieren, und am Ende auch noch das ganze Deployment.

Es dreht sich bei Felix hierbei also um verschiedene Dinge:

  • Bei externen Projekten steht die Auslieferung per Docker Container / Repo im Fokus
  • Bei internem Backend handelt es sich um das Bereitstellen als RESTful API (FastAPI) Deployment über AWS
  • Bei internen, „mobilen“ Projekten geht es um native Integration: Modelle nach ONNX convertieren und nativ einbinden. Für iOS wird da Objective-C verwendet und für Android Java.

„Die Lernkurve ist also relativ steil“, denke ich, und Felix betätigt mir das. Die krasse Lernkurve sei jedoch auch ein motivierender Faktor, erklärt mir der ML-Engineer, da man mit viel Kreativität arbeite.

Zurück zu Felix’ Anfängen in ML

Durch ein automatisiertes Videoschnittsoftware-Projekt an der Hochschule für Technik, Wirtschaft und Kultur Leipzig, hatte Felix seinen ersten Berührungspunkt mit Computer Vision, Machine Learning, Deep Learning und auch mit der Programmiersprache Python. Er erinnert sich: „Hier wurde das Ganze ein wenig getriggert und seitdem bin ich da auch dran geblieben.“ Das hat mich wirklich fasziniert.

„Im Informatikstudium hatten wir kein einziges Modul, das irgendwie in die Richtung von Machine Learning ging“, erinnert er sich. Felix hat sich alle ML-Skills neben dem Studium selbst beigebracht. „Durch Bücher, Kurse, Fehler machen, ausprobieren und 50 Mal auf die Gusche fliegen und dann wieder aufstehen und weitermachen”. Durch seine „Einfach-immer-weitermachen“-Mentalität hat Felix gelernt, wie man motiviert dranbleibt.

Hinsichtlich seines Studiums berichtet Felix das Wichtigste, das er während seiner Studienzeit gelernt hat: das Lernen selbst. „Du lernst im Studium zu lernen“.

Felix hat auch verstanden, dass Durchhaltevermögen, zusammen mit viel Ausprobieren und Scheitern, bei einem so komplexen und schnell voranschreitenden Thema wie ML einfach dazugehört. Dazu fällt mir ein interessantes, englisches Zitat von Napoleon Hill ein:

A quitter never wins, and a winner never quits.

Projekte in Maschinellem Lernen

Named Entity Recognition:

Felix hatte mit einem Projekt zu tun, das aus Versicherungsdokumenten Entitäten wie Nutzer-ID, Datum und Ort extrahiert und diese digitalisiert. Es ging darum, die Kernmerkmale der Versicherungen in ein vorhandenes System einzuklinken. Hierzu hat Felix ein neuronales Netz benutzt.

Was ist ein neuronales Netz? Bei einem neuronalen Netz handelt es sich sehr einfach ausgedrückt um vereinfachte Modelle des Gehirns. Informatiker speisen diesen Modellen Informationen ein und trainieren diese so, um zum Beispiel Birnen von Äpfeln zu unterscheiden, Sprachen zu erkennen, oder sogar Krankheitsanalysen durchzuführen. Natürlich gibt es da viel mehr Anwendungsgebiete. Mehr zu neuronalen Netzen erfährst du zum Beispiel in unserem Onlinekurs „Deep Learning Grundlagen mit Tensor Flow 2 und Keras“.

Dokumentenscanner:

Zur Zeit unseres Gesprächs war Felix am Kreieren eines Dokumentenscanners für die memoresa-App. Dazu verwendet er auch ein neuronales Netz – genauer gesagt handelt es sich um eine semantische Segmentierung.

Was ist eine semantische Segmentierung? Hierbei geht es um den Prozess, die Pixel eines Bildes Kategorien zuzuordnen. Dabei kann es sich zum Beispiel um Blumen, Menschen oder Autos handeln. Bei autonomem Fahren, z.B., wird semantisch segmentiert.

Felix hatte viel mit neuronalen Netzen zu tun, wobei er eher praktisch unterwegs ist, meint er. Der ML-Engineer erklärt, dass er immer versucht, Problemen mit der einfachsten Lösung zu begegnen. D.h. er haut „nicht immer überall mit einem neuronalen Netz drauf“, sondern schaut nach, ob er Dinge mit ein paar Zeilen Python-Code lösen kann und wenn nicht, dann vielleicht mit einem statistischen Modell aus dem Bereich Machine Learning.

docTR-Projekt in der Freizeit:

Wenn er gerade nicht arbeitet, bastelt Felix an einem Projekt namens docTR. Er erklärt mir, dass docTR eine optische Zeichenerkennung ist, welche sich nicht nur auf Texte und Dokumente, sondern auch auf Bilder bezieht. Das Projekt ist wirklich interessant und wer sich alles etwas genauer anschauen oder vielleicht sogar dabei mitarbeiten will, kann sich das Projekt hier auf GitHub ansehen (https://github.com/mindee/doctr).

Über die Kernherausforderungen in ML

Das ML-Gebiet entwickelt sich extrem schnell. Das heißt, so Felix, „du kannst was bauen und dann kommt jemand um die Ecke und sagt: ‘Hey! Meins funktioniert fünfmal besser als deins. ’“ Eine Kernherausforderung in ML ist es also, up-to-date zu bleiben.

Für Anfänger empfiehlt Felix, das Lernen mehr auf ein breiteres Spektrum zu streuen. Gerade für Start-ups und mittelständische Unternehmen sei eine größere Bandbreite an ML-Wissen ein wichtiger Pluspunkt. Das sei aber eher eine Faustregel als ein Muss. Je nach persönlichen Zielen kann man sich natürlich auf ein ML-Gebiet spezifizieren.

Eine tägliche Dosis an ML-Inspiration

Der Machine-Learning-Engineer holt sich vor allem auf GitHub und den vielen Projekten, die dort zu finden sind, Inspiration für seine Arbeit.

Des Weiteren empfiehlt Felix die Webseite Papers With Code (https://paperswithcode.com/). Hier findet er viele neue Ideen, gerade wenn er auf Modellsuche ist. Nachdem er sich einmal für ein ML-Modell entschieden hat, heißt es „Paper lesen, Paper lesen, Paper lesen“ und up-to-date bleiben um ein tieferes Verständnis für ein Modell zu entwickeln. Dies macht er vor allem auf arXiv (https://arxiv.org/).

Falls es sich um Anfänger oder auch Fortgeschrittene handelt, (und das hauptsächlich in Deep Learning) können diese sich erstmal mit einfacheren wissenschaftlichen Publikationen befassen, um somit langsam aber stetig in die Materie einzugreifen, so Felix.

Mit Bezug auf wissenschaftliche Publikationen animiert Felix: „Lest euch, für grobes Vorgehen, erstmal den Abstract durch und wenn dieser sich interessant anhört, dann die Publikation überfliegen und wenn es dann immer noch interessant ist, komplett im Detail lesen und sich damit auseinandersetzen“.

Hinzu kommt, dass Code nicht einfach nur kopiert und wieder eingefügt werden soll. „Dabei lernt man nichts“, warnt Felix. Stattdessen sollte man sich selbst erstmal an einem Problem versuchen und wenn man es nach vielen Versuchen nicht lösen kann, dann kann man immer noch online nachschauen.

Felix erklärt, dass er selbst genau so lernt: als erstes versuchen, ein Paper von Null an selbst durch zu implementieren und wenn man auf Schwierigkeiten stößt: googlen.

Weitere Tipps zu Machine-Learning

Der ML-Engineer empfiehlt Hugging Face (https://huggingface.co/). Auf dieser Open-Source-Bibliothek kann sowohl der Einsteiger als auch der Profi hilfreiche Dinge wie zum Beispiel vorimplementierte neuronale Netze finden. Felix nutzte hier die Bibliothek ‘Transformers’.

Um sich fortzubilden, ist es hilfreich, Dinge von Grund auf neu aufzubauen, um schnell Aufgaben und Probleme zu lösen. Open-Source-Bibliotheken wie Hugging Face sind da gut.

Kompletten Anfängern rät Felix, zunächst einmal Programmier-Skills zu erlernen und dann Projekte zu schreiben. Bei den Projekten tendiert Felix’ Empfehlung mehr zu Qualität als zu Quantität, oder in seinen Worten: „Die Masse macht es meiner Meinung nach nicht“. Wenn man sich mit seinen Projekten bei einem Unternehmen bewirbt, dann sollten diese Projekte in ‘clean code’ geschrieben sein, um am besten zu vermitteln, auf welchem Wissensstand man ist. Der Interviewer wird sicherlich nicht alle Projekte durchlesen, sondern eher nur ein, zwei vorgelegte Projekte aussuchen und sich anhand dieser ein Bild des Bewerbers machen. Deshalb also ‘quality over quantity’.

Wie bildet sich ein ML-Engineer weiter?

Für Felix geht seine Weiterbildung mit ungefähr einem 70/30-Split an. Das heißt, 70 Prozent der Zeit erledigt er Aufgaben mit seinem bereits vorhandenen Wissen und 30 Prozent der Zeit lernt er neue Skills dazu.

Er fügt hinzu, dass er seine neu erlernten Skills immer gleich in einem Projekt zu verwirklichen versucht. Wo er kann, hübscht Felix auch alte Projekte mit seinem neuen Wissen auf.

In seiner Freizeit beschäftigt sich Felix ebenfalls mit maschinellem Lernen. Wo andere Netflix schauen, liest er sich ab und an ein paar Medium-Posts zu ML durch. (Die Betonung liegt hier auf ‘ab und an’, teilte er mir lachend mit.)

Die ML Mindset-Auffassung:

„Man sollte der Mathematik nicht abgeneigt sein“, schmunzelt Felix zum Thema ‘ML-Mindset’. Man braucht natürlich nicht Professor oder Doktor der Mathematik zu sein, um im ML-Bereich zu arbeiten. „Man sollte sich aber für die Mathematik begeistern können, damit man das ‘Dahinter’ versteht“, erklärt Felix. Denn selbst wenn man programmieren kann, stößt man früher oder später im Programmierbereich an sein Limit. Das gilt vor allem für ML, da man hier, um up-to-date zu bleiben, durch viele akademische Quellen gehen muss und darin dementsprechend viele Formeln sieht. Die Mathematik gehört einfach dazu.

Mathematik aus einem Bachelor-Abschluss sei ratsam, sagt Felix. Hat man so ein Mathe-Level nicht, dann ist es ratsam, seine mathematischen Kenntnisse während des Programmierens zu verbessern. (Dazu findet man online jede Menge gratis Lernmaterial.)

Ein tieferer Einblick in Felix’ Vergangenheit

Felix hat nach seinem Realschulabschluss im Handwerk als Fahrzeuglackierer bei BMW angefangen. Nach einiger Zeit habe er sich zu seiner Berufswahl gedacht: „Soll das alles sein?“. „Dann kam der Anreiz“, meint er. Felix holte sein Abitur nach, studierte Informatik, traf auf ML und ist seither absolut davon begeistert.

Zu seinem beruflichen Werdegang meint Felix, dass er niemals einen falschen Weg eingeschlagen habe. Er habe viel mitgenommen und sei „älter geworden, um ‘vielleicht’ die eine oder andere weisere Entscheidung zu treffen.“

Die Moral der Geschichte ist es, aus Erfahrungen zu lernen und sich weiterbilden.

Als Alleinkämpfer unterwegs

Felix identifiziert sich als Alleinkämpfer. Das heißt, er geht seine Weiterbildung gerne allein an. Nichtsdestotrotz hätte er gerne jemanden zum Austauschen. Das gilt vor allem für seine ML-Arbeit bei memoresa.

Der ML-Engineer spricht über seine Arbeit mit seiner Lebensgefährtin. Allerdings seien solche Unterhaltungen eher oberflächlich, gesteht er mir. Er würde sich folglich über einen Arbeitskollegen freuen, mit dem er tiefer in Thematiken eingreifen kann.

Felix versucht seinen Mangel an ML-Unterhaltungen online auszugleichen. Gerade bei seinem Open-Source-docTR-Projekt, das (wie bereits erwähnt aber hier nochmals verlinkt: https://github.com/mindee/doctr) auf GitHub zu finden ist, unterhält er sich viel mit anderen. Dass man niemanden zum Reden hat, sollte also bitte nicht zur Ausrede werden.

In Zukunft würde Felix gerne in die Forschung gehen. Daran arbeitet er nebenbei und durch das Lesen der vielen Paper hat er seine Fingerspitzen am Puls der Technik. Auch wenn sich das vielleicht noch einige Jahre ziehen wird, meint er ernst, werde er auf jeden Fall dran bleiben.

Hier noch ein letzter Tipp!

„Fangt nicht mit Keras an! Nehmt PyTorch“, lacht Felix. Da Keras ziemlich ‘high-level’ sei, verstehe man nicht wirklich, was vor sich geht. Bei PyTorch sei das anders. Hier brauche man mehr Zeit, um sich hineinzuarbeiten, “aber es bringt wesentlich mehr und man versteht die Prozesse, die im Hintergrund passieren“.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert