PyCon DE / PyData 2019: News zu Machine Learning und Data Analytics

Lars Schymonski

Geschrieben von: Lars Schymonski - 15 Oktober, 2019

Die Konferenzen PyCon DE und PyData Berlin sind zwei Veranstaltungen, die jährlich von der Python Community organisiert und abgehalten werden. Während die Agenda der PyCon DE das gesamte Python-Ökosystem umfasst, zielt die PyData Berlin insbesondere auf Themen aus dem Bereich Data Analytics ab. In diesem Jahr wurden die beiden Konferenz erstmalig gemeinsam organisiert und fanden vom 09. bis 11. Oktober 2019 in der Eventlocation Kosmos in Berlin statt. Neben Fachvorträgen, Keynotes und Workshops gab es auch interaktive Programmpunkte wie Communitysprints.

PyCon und PyData in Berlin

Mein Kollege Alexander Rabe und ich nahmen an der Konferenz teil und nutzten diese Gelegenheit zum Austausch, Weiterbildung und Networking. Neben allgemeinen Python-Themen ließ sich insgesamt eine starke Tendenz zu den Data Analytics-Themen der PyData Berlin feststellen. In diesem Blogbeitrag berichte ich von unseren Impressionen von der Konferenz und stelle die aus unserer Sicht interessantesten Themen, Beiträge und Highlights vor:

Neben Beiträgen zu spezialisierten Machine Learning-Bereichen, wie Zeitreihenmodellen, automatisiertes Feature Engineering und Bayessche Methoden, gab es auch Beiträge zu Data Visualization, die wir sehr spannend fanden. In diesem Kontext lassen sich insbesondere zwei Vorträge zu den Python-Modulen Dash und Panel nennen.

Datenvisualisierung mit Dash und Panel

Das Modul Dash ist seit kurzem in einem ersten offiziellen nicht-Beta Release verfügbar. Mit Dash ist es möglich, interaktive WebApps in Python zu erzeugen, ohne auf JavaScript zurückgreifen zu müssen. Der große Vorteil: Machine Learning- bzw. Data Science-Anwender, die häufig in Python entwickeln, müssen keine zusätzliche Programmiersprache oder komplexe Frameworks lernen. Gleichzeitig ist ein leichterer Zugriff auf die verwendeten Modelle und Daten innerhalb von Python möglich, sodass insgesamt schneller ansprechende, dynamische Visualisierungen und Dashboards entwickelt werden können. 

dash

Das wohl bedeutendste Manko von Dash ist eine geringere Performance im Vergleich zu JavaScript-basierten WebApps. Weiterhin ist die Enterprise-Version von Dash lizenziert und damit im Gegensatz zu anderen Python Visualisierungstools proprietär und kostenpflichtig. Nichtsdestotrotz eignet sich Dash insbesondere als Rapid-Prototyping Tool für Visualisierungen und Interfaces, das zu einer erhöhten Entwicklungsproduktivität beitragen kann. 

Ähnlich wie Dash dient auch das Modul Panel zur Datenvisualisierung. Im Vergleich zu Dash ist Panel stärker “Pythonic”, also stärker an die übliche Syntax und Workflows von Python angelehnt. Gleichzeitig ist Panel auch mit einer größeren Anzahl anderer Module aus dem Python-Ökosystem verknüpft und zeichnet sich besonders durch eine intuitive Bedienbarkeit aus. 

Insgesamt halten wir Panel für einen sehr interessanten Ansatz, um mit geringem Mehraufwand interaktive und dynamische Visualisierungen für Machine Learning und Data Analytics-Anwendungen zu erzeugen. Leider ist Panel noch in einer pre-Release Phase, sodass derzeit von einer Anwendung im Produktivkontext (noch) eher abzuraten ist.

MLOps - DevOps für Machine Learning

Das wohl heißeste Thema dieses Jahres war das Thema MLOps und das Deployment von Machine Learning-Modellen in Produktivumgebungen. MLOps ist ein Kofferwort aus “Machine Learning” (ML) und “DevOps”. Unter DevOps versteht man einen Ansatz, der auf eine Verbesserung der Bereiche Entwicklung und IT-Betrieb mithilfe von Prozessoptimierungen, Tools und agilen Ansätzen abzielt. Während DevOps ursprünglich aus der “klassischen” Softwareentwicklung kommt und dort zu einer Fehler-, Zeit- und Kosteneinsparung führen soll, bezieht sich MLOps auf eine Optimierung der Entwicklung und den Betrieb von Machine Learning- und Data Analytics-Anwendungen. In diesem Sinne kann MLOps also als ein Teilbereich von DevOps verstanden werden, der besonders auf Machine Learning spezifische Probleme und Besonderheiten eingeht.

Der gesamte Produktlebenszyklus einer Data Analytics oder Machine Learning umfasst eine Vielzahl von Schritten und wird in der Betrachtung zu häufig auf einzelne Teilaspekte des gesamten Prozesses reduziert. Während viele Machine Learning-Modelle und -Anwendungen innerhalb von einigen Wochen oder wenigen Monaten als Proof-of-Concept realisiert werden, schafft der Großteil dieser Applikationen wohl niemals den Sprung in eine Produktivumgebung. Die folgende Aufzählung enthält eine Auswahl von Gründen für dieses erstaunlich weit verbreitete Problem:

  • Mangelnde Skalierbarkeit aufgrund fehlender und ungeeigneter IT-Ressourcen
  • Hoher zeitlicher und personeller Aufwand bei der Datenbereitstellung und -bereinigung, Orchestrierung der Workflows sowie Monitoring und Aufbereitung der Ergebnisse aufgrund fehlender Schnittstellen und Automatisierung 
  • Data Scientists sind keine ausgebildeten Softwareentwickler und haben mangelnde Kenntnisse in den Bereichen Testmanagement und allgemeiner DevOps-Praxis
  • Schwierige Kooperation innerhalb von Data Science Teams: kein Sourcecode-Management, inkompatible Softwareversionen und keine gemeinsame Entwicklungsumgebung

Um diesen Problemen zu begegnen kommen auch Tools aus dem klassischen DevOps Bereich zur Anwendung. Besonders beliebt sind in diesem Zusammenhang Docker-Container, die ein einfaches, plattformunabhängiges Deployment von ML & Data Analytics-Applikationen ermöglichen. Das Deployment per Docker-Containern ist mithilfe von Plattformlösungen wie Kubernetes oder hierauf basierenden Plattformen wie RedHat OpenShift auch sehr gut skalierbar und robust. Die hierbei nötige Orchestrierung und Automatisierung von komplexen Workflows kann durch Tools wie Jenkins oder Apache Airflow erheblich vereinfacht werden. 

Mittlerweile gibt es auch die ersten spezifischen MLOps Tools wie MLflow und Kubeflow, die versuchen, den gesamten Produktlebenszyklus von ML Applikationen zu unterstützen. Wird fanden im Hinblick hierauf besonders den Vortrag zum neu erschienenen Modul Kedro interessant.

Unterstützung des Produktlebenszyklus von ML-Applikationen & Datenpipelines mit Kedro

Kedro wurde zunächst als proprietäres Python-Modul für Kunden der McKinsey Tochterfirma QuantumBlack entwickelt, aber aufgrund positiver Kundenresonanz als Open Source-Modul für die gesamte Community freigestellt. Ziel von Kedro ist es, die Entwicklung und den Produktivbetrieb von Machine Learning-Anwendungen und Datenpipelines zu vereinfachen, zu beschleunigen und somit effizienter zu gestalten. Um dies zu erreichen, hilft Kedro dabei, den Prozess der ML-Applikationsentwicklung zu standardisieren sowie häufige Entwicklungsschritte komplett zu übernehmen. Gleichzeitig stellt Kedro Erweiterungen zum einfachen Deployment einer ML-Applikation in einem Docker-Container (Kedro-Docker) oder zur Workflow-Orchestrierung durch Apache Airflow (Kedro-Airflow) bereit. Weiterhin ist ein starkes Visualisierungs-Tool (Kedro-Viz) enthalten, mit dem komplexe Abläufe automatisch und verständlich abgebildet werden können.

kedro

Insgesamt lehnt sich Kedro an die bereits beschriebene Problematik an, dass es beim Übergang einer Applikation vom Entwicklungs- zum Produktivbetrieb zu Schwierigkeiten kommt und viel Zeit in Anspruch nimmt. Wir finden, dass Kedro einen sehr vielversprechenden Eindruck macht und als mögliches Tool innerhalb eines MLOps-Ansatzes in Frage kommt.

Algorithmische Entscheidungssysteme und Ethik - Algo.Rules

Neben Themen, die rein technisch motiviert sind, gab es auf der PyConDE / PyData Berlin 2019 auch Vorträge, die verschiedene gesellschaftliche Aspekte fokussierten. Als Beispiel lässt sich hier der Vortrag “Algo.Rules - How do we get the ethics into the code?” nennen, der auf die Ethik und Regulierung von Algorithmen abzielt. 

Algo.Rules ist ein von der Bertelsmann Stiftung erdachtes Regelwerk zur akzeptablen Gestaltung von algorithmischen Entscheidungssystemen, das aus neun Leitsätzen besteht. Im Kern sind diese Regeln aus der Tatsache motiviert, dass maschinengestützte Entscheidungssysteme nicht nur Chancen, sondern auch Risiken und Probleme mit sich bringen können. Als Negativbeispiel lässt sich unter anderem das Fallbeispiel eines Amazon AI Recruiting-Algorithmus nennen, der zunächst unbemerkt einen unerwünschten (und unbegründeten) Bias zu Lasten weiblicher Bewerberinnen entwickelte.

Neben ethischen Aspekten sind die Algo.Rules auch durch rechtliche Fragen motiviert. Treffen Algorithmen wichtige Entscheidungen, beispielsweise eine Entscheidung über die Kreditwürdigkeit einer Person, wer ist dann für eventuell auftretende Fehler und Schäden rechtlich verantwortlich? Und: Inwieweit müssen solche algorithmischen Entscheidungen auch für Menschen nachvollziehbar und verständlich sein? Ein spannendes Thema, wie wir finden.

PyCon DE / PyData Berlin 2019 - Unser Fazit

Insgesamt waren unsere Eindrücke zur PyCon DE / PyData Berlin durchweg positiv. Als einzigen negativen Punkt lässt sich aus unserer Sicht lediglich nennen, dass der Veranstaltungsort gemessen an der Besucherzahl insgesamt relativ klein gewählt war. Dies hatte zur Folge, dass manche Räume bei einzelnen Vorträgen so überfüllt waren, dass nicht alle interessierten Hörer in den Raum gelassen werden konnten. Trotz dieses kleinen Mankos können wir die Konferenz insbesondere für alle Python-Anwender im Data Analytics-Umfeld wärmstens weiterempfehlen und freuen uns bereits auf die PyCon DE / PyData Berlin im nächsten Jahr.

Hinweis: Viele der Vorträge werden nach einiger Zeit durch die Veranstalter online gestellt. Sobald dies geschehen ist, werden wir unter diesem Beitrag eine Auflistung der Links einiger aus unserer Sicht sehenswerter Vorträge anfügen.

 

Themen: machine learning

Beitrag teilen