Bevor ein Machine Learning-Modell einen kontinuierlichen geschäftlichen Mehrwert bietet, muss es zunächst die Hürde der praktischen Implementierung überwinden. Dabei sollen neben der Prognose auch andere Teile des Machine Learning-Workflows von der Datenvorbereitung bis zur Bereitstellung des trainierten Modells automatisiert ablaufen, um das Modell stets aktuell zu halten. Für das Workflowmanagement, also die Verwaltung, Planung und Ausführung der Aufgaben im Workflow, sind aus technischer Sicht viele Optionen verfügbar. Neben den verbreiteten Cronjobs steht auch die Workflowmanagement-Plattform Apache Airflow hoch im Kurs. In diesem Artikel erklären wir Ihnen, wie Airflow den Herausforderungen von Machine Learning-Workflows optimal begegnet und präsentieren Ihnen eine Architekturvariante für kleine Machine Learning (ML) -Teams.
In Airflow werden die Workflows als Python-Skripte definiert, geplant und ausgeführt. Abhängigkeiten zwischen den Aufgaben und somit komplexe Workflows sind schnell und effizient abbildbar. Die funktionsreiche Weboberfläche verschafft eine gute Übersicht über den Status der Workflowläufe und beschleunigt die Fehlerbehebung ungemein. Das Framework ist zudem open-source und kostenlos nutzbar.
Weboberfläche Apache Airflow. Der Status der Workflowläufe ist links sichtbar ( Runs). Die Stati der Aufgaben des letzten Workflows ist rechts zu sehen (Recent Tasks).
Airflow übernimmt für Machine Learning-Workflows folgende Aufgaben:
Falls Sie die zugrundeliegenden Konzepte und die Komponenten von Apache Airflow gerne näher kennenlernen wollen, empfehlen wir Ihnen die Lektüre unseres Whitepapers "Effektives Workflowmanagement mit Apache Airflow 2.0". Dort werden die Grundideen ausführlich erklärt und Sie erhalten praktische Anwendungsideen bezüglich der neuen Funktionen im Major Release.
Machine Learning Workflows sind in der Regel durch die Abhängigkeiten zwischen den einzelnen Schritten und durch die Vielzahl an beteiligten Datenquellen komplexer als ETL Workflows. Zusätzlich haben die verschiedene Modelle nicht selten unterschiedliche Anforderungen an die Hardware (CPU vs. GPU). Das einfache Starten der Workflows mit Cronjobs stößt deshalb oft an seine Grenzen und ist durch die fehlende Abhängigkeit zwischen den einzelnen Aufgaben fehleranfällig. Wegen der einfachen Bedienbarkeit und Implementierung setzt sich schließlich Apache Airflow für das Workflowmanagement von Machine Learning-Anwendungen durch.
Ein Machine Learning-Workflow beinhaltet verschiedene Aufgabenpakete, die sich in die Datenvorbereitung, das Modelltraining und -evaluation und die Bereitstellung des Modells gliedern. Airflow übernimmt dabei die Ausführung der einzelnen Workflow-Läufe. Je nach Belieben kann ein Workflow mit integrierten Schritten erstellt werden (siehe Abbildung) oder es können separate Workflows für die Unterpunkte definiert werden, falls einzelne Komponenten (z. B. die Datenvorbereitung) einem eigenen zeitlichen Intervall folgen sollen.
Simpler Machine Learning-Workflow mit integrierten Schritten
Die Airflow Installation ist flexibel konfigurierbar und ermöglicht eine Skalierung entsprechend der Bedürfnisse. Diese wird vorrangig durch die Auswahl des passenden Executer umgesetzt. Im Folgenden ist eine Einsteiger-Architektur erläutert. Diese erfüllt die Anforderungen kleiner Teams, die Workflows auf einem einzigen Server ausführen möchten. Neben Airflow spielen Git für die Versionskontrolle und Anaconda für die Isolation eine Rolle. Für eine schnelle, sichere Verbindung zur SAP HANA kann beispielsweise das NextLytics-Software-Development-Kit (NLY-SDK) verwendet werden, welches wir Ihnen gerne auf Anfrage näher vorstellen.
ML-Architektur mit Airflow (Scheduling), Git (Versionskontrolle), Anaconda (Isolation) und einem Airflow DAG für das Deployment und Anbindung zu Datenbanken und Filesystemen
In der Single Node Architektur werden die Aufgaben per Worker, der Webserver und der Scheduler auf dem Server ausgeführt
Selbstverständlich eignet sich die vorgestellte Architektur nicht für alle Anwendungsszenarien. Steigt die Anzahl der Workflows rapide an, ist die Architektur den Anforderungen nicht mehr gewachsen. Glücklicherweise lässt sich Airflow mit Kubernetes, Mesos oder Dask effizient skalieren. Der Betrieb auf verteilten Systemen sollte sorgfältig geplant werden.
Wir stehen Ihnen für Ihre End-to-End Machine Learning-Projekte und/oder zur Bewertung Ihres Status Quo gerne als kompetenter Projektpartner zur Seite. Wir helfen Ihnen dabei, robuste und skalierbare Machine Learning-Workflows auf Apache Airflow zu realisieren. Sprechen Sie uns jederzeit an!