Metadaten-Management für Data Science Workflows auf Kubernetes

Von Kevin Exel, Januar 2019

Technologien wie ModelDB [23] sowie die Arbeiten [31] und [32] zeigen, dass es im Bereich der Metadaten und Verwaltung von Modellen im Bereich der Data Science aktuellen Bedarf gibt. Diese Arbeit entwickelt ein Datenmodell sowie eine Systemarchitektur mit der Metadaten, teils automatisiert, im Einsatzgebiet von Data Science Workflows auf der Kubernetes-Plattform geschrieben und gelesen werden können. Hierbei wurde darauf geachtet, dass die Nutzung aus jedem Teilschritt heraus möglich ist und eine potenziell hohe Anzahl Programmiersprachen unterstützt werden können. Weiterhin wurde darauf geachtet, das System so zu konzipieren, dass es nicht abhängig von speziellen Technologien, wie zum Beispiel Machine Learning Frameworks ist, sondern lediglich eine Abhängigkeit bezüglich der zur Umsetzung des Systems nötigen Technologien entstand. Das konzipierte System wurde prototypisch umgesetzt und anhand einiger Szenarien auf der Kubernetes-Plattform evaluiert. Hierbei konnte gezeigt werden, dass dieses System funktional ist. Aufgrund des angedeuteten Wunsches keiner spezifischen Abhängigkeiten zu speziellen Machine Learning Frameworks wurden in dieser Arbeit keine Extraktoren entwickelt. Hieraus resultiert ein gewisser Mehraufwand bei der Verwendung des Systems, welcher jedoch durch ein potenziell breites Einsatzfeld aufgewogen wird.

1. Einführung

Diese Arbeit entstand bei der inovex GmbH in Karlsruhe. Es wird untersucht, wie Metadaten im Bereich von Data Science Workflows, hier im Sinne einer technischen Umsetzung eines (Teil-)Arbeitsprozesses auf Kubernetes verwaltet werden können. Nachfolgend soll das Thema motiviert, sowie die Ziele dieser Arbeit definiert werden. Dieses Kapitel endet mit einem Überblick über den Aufbau dieser Arbeit.

1.1. Motivation und Ziele der Arbeit

Im Bereich der Data Science ist eine valide Aussage, welche Daten wie häufig für das Training oder die Evaluation eines Modells verwendet wurden, meist nicht trivial durchführbar. Weiterhin verliert man in großen verteilten Systemen den Überblick, wo Ausgangsdaten, Zwischen- oder Endergebnisse zu finden sind. Cloud-Infrastrukturen erlauben es Nutzern auf einfache Weise, einen Rechnerverbund, auch als Computercluster und im nachfolgenden als Cluster bezeichnet, zu betreiben. Infrastructure-as-Code-(IaC)-Lösungen wie Terraform erlauben es Entwicklern, eigenständig auf der Infrastruktur verschiedenster Cloud-Anbieter, virtualisiert oder ohne Virtualisierungsschicht „direkt“ auf der Hardware, auch als Bare Metal bezeichnet, Cluster zu starten, zu betreuen und zu entfernen. Virtualisierungslösungen wie Docker erhöhen die Reproduzierbarkeit im Sinne einer Wiederholbarkeit und Ausführbarkeit von Data-Science-Arbeitsschritten; denn ein entsprechender Container wird bei gleichbleibenden Umgebungsbedingungen dasselbe Ergebnis liefern und vereinfacht das Deployment der Tools immens. Kubernetes, eine ursprünglich von Google entwickelte, mittlerweile an die Cloud Native Computing Foundation (CNCF) übergebene Technologie, welche zur Orchestration, unter anderem von Docker Containern eingesetzt werden kann. Diese hat sich im Bereich des horizontalen Skalierens von Deep Learning Frameworks als mögliche Wahl gezeigt und erfreut sich im Kontext der Data Science immer größerer Beliebtheit. Technologien wie zum Beispiel Argo, eine Kubernetes native Workflow Engine, in welcher jeder Teilschritt einem Container entspricht, ermöglichen das effiziente Ausführen der heterogenen Teilaspekte.

[…]

Haben Sie Fragen?

Christian Meder

Chief Technology Officer