Arbeitsumgebungen für Machine Learning und Data Science

Data Science Projekte oder Machine Learningmodelle bestehen oft aus einer Vielzahl von Modellelementen oder Detailanalysen, die man zusammen betrachten muss.

In der Praxis ist es keine einfache Angelegenheit, den notwendigen Überblick zu behalten. Zwei interessante Bibliotheken füllen diese Lücke.

Cookiecutter Data Science

In Datascience Projekten entstehen neben den finalen Modellen viele Arbeitsergebnisse aus Zwischen- oder Teilschritten. Gleichzeitig werden üblicherweise Codingvarianten erstellt, die dazu dienen festzustellen, wie sich ein Modell oder eine Analyse verbessern läßt, indem einzelne Modellparameter angepaßt werden.

Typischerweise kommt es neben der funktionellen Korrektheit des Codes dabei darauf an, daß sich bei Neuausführung des Programms dieselben Ergebnisse einstellen (Reproduzierbarkeit). Daher muss man Daten zusammen mit den Programmen abspeichern, und auch noch nach längerer Zeit wissen, was wie zusammenhängt.

Die Github Bibliothek „Cookiecutter Data Science – A logical, reasonably standardized, but flexible project structure for doing and sharing data science work“ (Links am Artikelende) liefert hierfür eine hilfreiche Struktur und das entsprechende Template.

Neben der Struktur liefert dieses Bibliothek auch Vorgehensweisen, die sich in der Praxis bewährt haben. Beispielsweise wird gezeigt, daß Originaldaten nie geändert werden sollten, wie dies geschieht, und wo man was, wie speichert, um keine Daten zu verlieren.

Daneben wird gezeigt, wie man Notebooks so aufbaut, daß experimentelle Teile neben Berechnungen existieren können, die bereits produktionsnäher ausgearbeitet sind, ohne, daß man durcheinander gerät.

Bereits diese Beispiel zeigen, daß sich die Autoren sehr viele Gedanken gemacht haben, und entsprechend viele Erfahrungen haben.

Databricks – MLflow

Databricks hat auf seinem Summit, der kürzlich stattfand MLflow vorgestellt. Dieses Tool besteht aus den Teilen Tracking, Projects und Models, und dient dazu einzelne Modellteile zu dokumentieren, und alle Facetten an einem Ort vorzuhalten.

Dabei löst es das Problem, daß jeder kennt, der schon einmal Machine Learning Modelle erstellt hat:

  • Es gibt viele Tools.
  • Es ist nicht immer einfach den Überblick über Experimente zu behalten.
  • Reproduzierbarkeit ist nicht immer gegeben.
  • Das Modelldeployment ist nicht trivial.

Das Tracking-Modul wird hierbei genutzt, um Experimente so aufzuzeichnen, daß man hinterher sehen kann, was wo berechnet wurde.

„MLflow Tracking is an API and UI for logging parameters, code versions, metrics and output files when running your machine learning code to later visualize them.“

Projects stellt sicher, dass die einzelnen Programmausführungen reproduzierbar bleiben, d.h man kann hinterher prüfen, welche Modellschritte durchgeführt wurden und welche Abhängigkeiten es gibt.

„MLflow Projects provide a standard format for packaging reusable data science code. Each project is simply a directory with code or a Git repository, and uses a descriptor file to specify its dependencies and how to run the code. A MLflow Project is defined by a simple YAML file called MLproject.“

Models erlaubt es, die einzelnen Modelle zu den unterschiedlichen Deploy-Tools zu senden, d.h MLflow is nicht auf Tensorflow oder Spark beschränkt.

„MLflow Models is a convention for packaging machine learning models in multiple formats called “flavors”. MLflow offers a variety of tools to help you deploy different flavors of models.“

Weiterführende Informationen

Das Original dieses Artikels ist auf Der Produktmanager erschienen (©Andreas Rudolph). Folgeartikel zum Thema gibt es über die (→Mailingliste), oder indem Sie →mir auf Twitter folgen.

In der Online Version des Artikels finden Sie hier die versprochenen weiterführenden Links:

Leave a Reply