Etwas für den Laptop
Die meisten Leute denken das man für die Erarbeitung von ML Algorithmen einen grossen Fuhrpark an starken Computer braucht. Das trifft zu, wenn man mit grossen und rechenintensiven Daten arbeitet. Was ist aber wenn man sich nur mal etwas mit den Tools vertraut machen will und nicht gleich tausende von Franken in einen schnellen Rechner mit GPU investieren will? Ich wollte mich auch nicht zuerst in 100 Tools einlesen müssen und dann versuchen sie miteinander zu verbinden. Ich suchte ein einfaches Toolkit, das ich lokal auf meinem Laptop laufen lassen kann.
One Size Fits All
Auf dieser Suche bin ich auf Kubeflow gestossen. Wie der Name schon sagt basiert Kubeflow auf Kubernetes und ist somit hoch portabel und skalierbar. Da die Tools alle Open Source sind gibt es auch keine Kosten für die Software. Die wichtigsten Werkzeuge sind integriert und man kann schnell loslegen mit den Projekten. Das Toolkit läuft sowohl auf dem eigenen Notebook in einer lokalen Kubernetes Installation als auch auf den grossen Cloudanbieter wie AWS, Azure, Google und IBM. Die gute Dokumentation hilft dabei schnell zu einer funktionierenden ML Umgebung zu kommen. Zum Erstellen der Programme werden Jupyter Notebooks verwendet, damit kann man auch gleich noch seine Python Kenntnisse etwas verbessern.
Wenn man noch kein Kubernetes auf seinem Computer installiert hat, gibt es auf der Kubeflow Webseite auch dazu eine Anleitung.
Das sieht doch aus wie eine Zwei, oder?
Jetzt hatte ich ein Toolkit, da ich aber kein Data Scientist bin fehlt mir natürlich noch ein Anwendungsfall. Auch da habe ich auf der Kubeflow Dokumentation sehr schnell etwas gefunden. Nämlich eine der Bekanntesten ML Testanwendungen, die MNIST Bildererkennung. Diese braucht nicht viel Power, um zu laufen und eignet sich gut, um mit den ML Tools in Kubeflow vertraut zu werden. MNIST ist eine grosse Datenbank von Bildern mit handschriftlich geschriebenen Zahlen. Dieser Datensatz wird weitverbreitet benutzt für das Training und das Testing von ML Algorithmen. Es geht darum dem Computer mit dem Trainingsdatensatz (60000 Bilder) die Erkennung der Zahl auf dem Bild zu trainieren. Danach wird mit dem Testdatensatz (10000 Bilder) der Algorithmus auf seine Genauigkeit geprüft. Auf Git Hub ist eine Anleitung zu finden mit welcher das MNIST Beispiel in KubeFlow erstellt werden kann.
Fazit
Somit habe ich mein Ziel in etwas mehr als einem Morgen „Arbeit“ erfüllen können. Mit dem Kubeflow Toolkit habe ich erstmals selbst gesehen wie Algorithmus trainiert werden kann und wie die Tools dazu aussehen. Das coole an Kubeflow ist, dass wenn ich nun doch etwas ernsthafter damit arbeiten möchte und z.B. GPU Unterstützung benötige oder mein Projekt bei einem Cloudanbieter laufen lassen möchte, kann ich dies mit demselben Toolkit tun und muss nicht noch einmal von vorne beginnen.