Logo - eonum

Data Science Praktikum bei der eonum AG

Im folgenden Blog-Artikel beschreibt Joël Bessire seinen Einstieg bei eonum, welchen er im Rahmen eines Data Science Praktikums im Jahr 2016 erlebte. Heute ist Joël Bessire als Data Scientist und Software Engineer ein festes Teammitglied der eonum AG.

Als ich im Jahr 2016 meinen Master in Mathematik an der Universität Zürich erfolgreich abgeschlossen habe, war ich mir meines weiteren beruflichen Werdegangs ziemlich unsicher. Viele meiner Kollegen und Kolleginnen entschieden sich für Versicherungen oder Banken, manche für den Bereich Informatik und einige stürzten sich direkt in ihre Doktorarbeiten. Ich beschloss, eine längere Auslandsreise anzutreten und mir danach weitere Gedanken zu machen. Doch auch nach meiner Rückkehr ergaben sich keine konkreten Pläne und so beschloss ich, erst einmal temporär zu arbeiten. Daneben behielt ich mehrere Jobportale im Auge. Ich hoffte auf entsprechende Inserate in Bereichen der Informatik, wie z.B. Data Science oder künstliche Intelligenz. Obwohl ich nur über wenig Vorkenntnisse verfügte, sprach mich dieser Bereich besonders an. 

Zu Beginn gestaltete sich die Suche eher schwierig. Trotz der guten Voraussetzungen eines Mathematikstudiums, waren praktisch alle Stelleninserate verbunden mit unzähligen Anforderungen und Vorkenntnissen. Obwohl ich mir zutraute, diese gewissermassen “on-the-job” zu lernen, waren erfahrene Bewerber natürlich klar im Vorteil. Anfang dieses Jahres wurde ich von der eonum AG zum Bewerbungsgespräch eingeladen. Das Gespräch war sehr angenehm und das Team auf Anhieb sympathisch. Wenige Tage später konnte ich einen Vertrag für einen viermonatigen Praktikumsplatz unterschreiben.

Am 1. April war es dann soweit, mein erster Arbeitstag in Bern konnte beginnen. Der Gründer und CEO der eonum AG, Tim Peter, begrüsste mich und umriss den groben Ablauf meines Praktikums. Erste Aufgabe sollte sein, meine Arbeitsstation einzurichten. Heisst konkret, Laptop mit aktuellem Ubuntu aufsetzen und aus dem Terminal heraus die benötigte Software installieren. Die Befehle, welche ich nachschlagen und versuchen sollte zu verstehen, standen im firmeninternen Wiki. Ein Wiki ist eine Dokumentationsplattform, in der man alle relevanten Informationen erfassen, sammeln und mit anderen teilen kann. Bekanntestes Beispiel eines Wikis ist Wikipedia. Für jemanden, der vor fünf Jahren im Studium das letzte mal mit dem Terminal gearbeitet hat, war die Flut an Befehlen, Optionen und Parametern gewaltig. Am Ende des Tages war ich erschöpft. Die kognitive Herausforderung erinnerte an meine Zeit im Studium, war fordernd, aber bereitete mir von Beginn an Freude. 

In einem nächsten Schritt ging es darum, mir einen Überblick über die Skills zu verschaffen, welche ich mir im Praktikum aneignen sollte. Die vier Hauptbereiche waren klassisches Machine sowie Deep Learning (ML bzw. DL), Natural Language Processing (NLP), Basics und Engineering sowie Programmieren. Darunter sammelten sich Begriffe wie Neural Networks, Keras, Word2vec, OSI, ssh, Linux Shell, Python, JSON usw. Das zu erlernende Know-how könnte ein ganzes Studium füllen und so war es wichtig, das ganze möglichst systematisch anzugehen.

Um mich in die Bereiche ML und DL hineinzuarbeiten schrieb ich mich für eine Online Spezialisierung auf der Weiterbildungsplattform Coursera ein. Die DL Spezialisierung von Andrew Ng, dem Mitbegründer von Coursera und bekannten AI Programmierer, verlangte Basiswissen in Python, welches ich dank einem Grundlagenkurs im Studium besass. Es wurden sowohl Shallow sowie Deep Neural Networks eingeführt und danach verschiedene Optimierungs- und Regularisierungsmöglichkeiten besprochen. Die Kursinhalte wurden in Videos von Andrew Ng persönlich erklärt. Am Ende jeder Woche gab es Quizze und Programmierungsaufgaben.

Mein Mathematikstudium erwies sich nun als überaus nützlich. Neural Nets sind, vereinfacht gesagt, nichtlineare Funktionen die von einem geometrischen Raum in einen anderen abbilden. Diese Funktionen haben Gewichte, welche im Verlauf des Trainings optimiert werden. Dazu wird eine Optimierungsfunktion definiert, welche durch Gradient Descent optimiert wird. Wer sich also durch AI bedroht fühlt und eine Terminator ähnliche Zukunft fürchtet, der sei beruhigt. Von AI, die wie Menschen fühlt, denkt und handelt, kann keinesfalls die Rede sein. 

Gleichzeitig mit dem Onlinekurs begann ich, das Buch “Deep Learning with Python” von François Chollet zu lesen. Chollet ist ein bekannter AI Wissenschaftler und Autor von Keras, einer benutzerfreundlichen DL Bibliothek geschrieben in Python. Viele Themen aus dem Buch ergänzten sich hervorragend mit dem Onlinekurs. Um auch in grundlegenden ML-Themen fit zu werden, absolvierte ich auf der Onlineplattform Kaggle einige Microcourses. Auf Kaggle werden von Forschungseinrichtungen oder Unternehmen Daten hochgeladen und zugehörige Probleme beschrieben. Die User von Kaggle, meist Data Scientists und ML Spezialisten, versuchen anschliessend die gestellten Challenges zu lösen. Registrieren kann sich jeder und damit einem der Einstieg gelingt, stellt Kaggle eine Seite mit Lerninhalten und Übungen, oben erwähnte Microcourses, zur Verfügung.

Im Bereich Basics und Engineering las ich mehrere Kapitel des Buches “Linux-Server mit Debian GNU/Linux”. Im Laufe der Zeit verstand ich immer besser, was ich am ersten Tag beim Aufsetzen meiner Workstation überhaupt getan hatte. Mein Umgang mit dem Terminal wurde immer flüssiger und ich lernte vieles über die Arbeitsweise von Computern. Im Gegensatz zur Arbeit mit einer graphischen Benutzeroberfläche (GUI) bietet die Arbeit aus einem Terminal heraus viel mehr Optionen. Die formale Sprache, die man benutzt, um mit dem Rechner zu kommunizieren, gehorcht einer Syntax. Diese muss man studieren und verstehen, damit der Rechner auch genau das macht, was man beabsichtigt. Dadurch hat man viel mehr Möglichkeiten als dies bei der Benützung einer GUI der Fall wäre. Es kann aber auch vorkommen, dass dadurch die ganze eigentliche Arbeit verzögert wird und man mit zeitraubenden Installationen beschäftigt ist. In guter Erinnerung ist mir mein Versuch, ein Python Programm via TensorFlow Framework auf dem Grafikprozessor (GPU) eines externen Rechners zu starten. In der Theorie nicht sonderlich kompliziert, erwies sich diese Aufgabe in der Praxis als komplexer als angenommen. Die Fehlersuche war eine mühsame, zeitraubende Arbeit, führte jedoch zu einem tieferen Verständnis und vielen neuen Erkenntnissen.

Um mir ein gewisses Basiswissen über NLP anzueignen, schaute ich mir Videos der Vorlesung “NLP with Deep Learning” von Chris Manning, Professor für ML an der Universität Stanford, an. Dazu löste ich die, mit der Vorlesung einhergehenden Aufgaben. Am 18. Juni begleitete ich Tim an die SwissText, eine jährlich stattfindende Konferenz zum Thema Textanalyse und NLP. Am Morgen gab es verschiedene Sessions, in denen unter anderem Tamedia und die Migros Bank den Einsatz von NLP in ihren Unternehmen vorstellten. Am Nachmittag besuchten wir einen Workshop in dem es darum ging, die Forschung im Bereich NLP für Schweizerdeutsch voranzutreiben.

Nach etwa zwei Monaten entschied Tim, dass ich mir ausreichend Basiswissen angeeignet hatte, um mit verschiedenen kleinen praktischen Arbeiten zu beginnen. Nach und nach begann ich mich durch einzelne firmeninterne Python Skripte zu lesen, um mir einen Überblick zu verschaffen. Beeindruckend fand ich die schiere Menge an Codezeilen, mehrheitlich von Tim in Einzelarbeit geschrieben. Meine theoretische Einarbeitung zeigte sich nun als sehr nützlich. Tim teilte mir passende Projekte zu, besprach sie mit mir und stand bei Fragen stets geduldig zur Seite. 

Eines der Projekte war die Einbindung der SHAP Values in die Verweildauerprognose unserer Software Casematch. Casematch ist in der Lage implizites Wissen aus Daten zu nutzen, um Prognosen über die Verweildauer einzelner Patienten abzugeben. Um diese Prognosen zu erklären, können SHAP Values eingesetzt werden. Diese geben in Form einer Liste und verschiedenen Grafiken an, welche Ursachen zu der prognostizierten Verweildauer geführt haben. Somit kann den Nutzerinnen und Nutzer detaillierte Einsicht in die oft als Black Box bezeichneten ML Modelle gewährt werden. Die Outputs werden verständlicher und auch für Nicht-Experten nachvollziehbar.

Nach intensiven vier Monaten stehe nun ich am Ende meines Praktikums. Es war eine herausfordernde Zeit, in der ich enorm viel gelernt habe. Durch das kleine Team profitierte ich von einer engen Betreuung. Die Arbeit ist spannend und vielseitig, da man von der Idee, über die Entwicklung bis hin zum fertigen Endprodukt an allen Schritten beteiligt ist. Der Umgang im Team ist warmherzig und fortschrittlich. Man darf seine Ideen vorbringen, hat die besten Möglichkeiten zur beruflichen Selbstverwirklichung und ist in diesem ohnehin dynamischen Berufsfeld stets dabei sich weiterzuentwickeln. Auch die Bürosituation bietet Abwechslung. Gemeinsam mit vier weiteren Parteien bildet die eonum AG eine Bürogemeinschaft. Die Pausen- und Mittagsgespräche garantieren Abwechslung, auch hier ist der Umgang offen und ehrlich.

Nun freue ich mich darauf, ab dem 1. August eine Festanstellung bei der eonum AG anzutreten und gemeinsam die Zukunft zu gestalten.

Teilen: