Blog

Ausführen von Pipelines für maschinelles Lernen mit Kedro, Kubeflow und Airflow

Mariusz Strzelecki

Aktualisiert Oktober 20, 2025
4 Minuten

Eine der größten Herausforderungen in der heutigen Welt des maschinellen Lernens ist der Mangel an Standardisierung, wenn es um das Training von Modellen geht.

Wir alle wissen, dass die Daten bereinigt, in Trainings- und Testsätze aufgeteilt, in das Modell eingepasst und anhand der Beobachtungen aus dem Testteilsatz validiert werden müssen. Vielleicht sollte auch eine Kreuzvalidierung durchgeführt werden, und die Abstimmung der Hyperparameter ist auch keine schlechte Idee. Alle Data Scientists wissen, wie sie mit den Modellen effizient arbeiten können, aber das Fehlen gemeinsamer Standards macht ihre Arbeit für andere Ingenieure, die eine andere Methodik verwenden, schwer verständlich.

Um dieses Problem zu überwinden, hat QuantumBlack das Kedro-Framework veröffentlicht, ein Open-Source-Python-Framework zur Erstellung von reproduzierbarem, wartbarem und modularem Data-Science-Code. Die mit Kedro erstellten Projekte sind universell genug, um die meisten Aufgaben von Data Scientists abzudecken. Darüber hinaus lassen die Abstraktionen von Data Catalog und Pipeline den Prozess der Modellerstellung wie ein Softwareprojekt aussehen, das leicht konfiguriert und eingesetzt werden kann, insbesondere von den Ingenieuren, die nicht an der Implementierung beteiligt waren. Es bietet eine Vielzahl von Plugins, um Modelle und Metriken in Mlflow zu protokollieren, das Projekt als Docker-Image zu versenden und vieles mehr. Auf der Grundlage des Feedbacks unserer Kunden haben wir Kedro zu einem Kernbestandteil der GetInData Machine Learning Operations Platform gemacht. Wir haben unser MLOps-Plattformkonzept während der Einführung der Google Cloud Region in Warschau vorgestellt. Sie können es sich hier ansehen (derzeit nur auf Polnisch)

Wenn ein Kedro-Projekt fertig ist und gut mit einer Datenprobe getestet wurde, bedeutet das jedoch nicht, dass es bereit ist, "in Produktion" zu gehen und schnell eingesetzt zu werden. Kontinuierliches Training, Hyperparameter-Abstimmung, kontinuierliche Qualitätsvalidierung - all diese Aufgaben erfordern eine gewisse Planungsfähigkeit, verteiltes Computing und leistungsstarke Hardware, um die Dinge effizient zu erledigen. Kedro beschreibt einige Ideen, wie Sie die Modelle einsetzen können, aber Sie wissen ja, was man sagt: "Arbeite intelligenter, nicht härter - automatisiere alles" ;-)

Verwenden Sie Kubeflow? Treffen Sie kedro-kubeflow

Kubernetes ist das Herzstück unserer Machine Learning Operations-Plattform und Kubeflow ist ein System, das wir häufig für unsere Kunden einsetzen. Daher haben wir beschlossen, die Generierung der Kubeflow-Pipeline aus der bestehenden Kedro-Pipeline zu automatisieren, damit sie von Kubeflow Pipelines (auch bekannt als KFP) geplant und auf dem Kubernetes-Cluster gestartet werden kann. Dankenswerterweise haben uns die Entwickler von Kedro ein wenig geholfen, indem sie einen Proof-of-Concept für diese Integration durchgeführt und interessante Einblicke gewährt haben.

Das Ergebnis unserer Arbeit ist auf GitHub als kedro-kubeflow Plugin verfügbar. Sie installieren es in Ihr bestehendes Kedro-Projekt und schon können Sie es nutzen:

  • Kedro-Knoten als KFP-Schritte kompilieren und Abhängigkeiten berücksichtigen,
  • laden Sie die kompilierte KFP-Pipeline auf den Server hoch,
  • Lösen Sie die Ausführung über CLI aus oder aktivieren Sie einen Zeitplan, wenn Sie endlich mit der Funktionsweise der Pipeline zufrieden sind,
  • nahtlos mit MLflow verbinden und alle Schritte unter einem Mlflow-Lauf protokollieren (auch wenn es sich eigentlich um separate Prozesse handelt),
  • Zugriff auf Google AI Platform Pipelines API mit IAM Proxy,
  • und mehr!

Wir sahen uns mit einigen Herausforderungen konfrontiert - zum Beispiel erwartet Kedro, dass das Verzeichnis `data/` ein Ort ist, an dem die Knoten die Daten austauschen. In einer verteilten Umgebung gibt es jedoch nur begrenzte Möglichkeiten, einen gemeinsamen Speicher zwischen verschiedenen Prozessen zu pflegen. Zum Glück haben wir es mit ein wenig Hacking geschafft!


Verwenden Sie Airflow? Treffen Sie kedro-airflow-k8s

Einige unserer Kunden neigen dazu, Kubeflow zu meiden, da das System recht kompliziert zu installieren und zu warten ist. Glücklicherweise kann Airflow die gleichen Anforderungen mit der Kedro-Pipeline-Bereitstellung erfüllen. Es gibt ein offizielles kedro-airflow-Plugin, aber es unterstützt nicht die Ausführung in Docker-Containern innerhalb eines Kubernetes-Clusters, was unsere bevorzugte, universellste Methode ist.

Daher haben wir auf der Grundlage der Erfahrungen mit der Entwicklung von kedro-kubeflow ein weiteres Plugin erstellt, das wir kedro-airflow-k8s genannt haben. Es verfügt über dieselben Funktionen und sogar dieselbe CLI-Syntax wie sein älterer Bruder, kompiliert aber die Kedro-Pipelines in Airflow DAG und stellt sie bereit, indem es die Datei in den gemeinsamen Bucket kopiert, den Airflow zur Synchronisierung von Dag Bag verwendet.


Testen Sie die Plugins und teilen Sie uns Ihre Meinung mit!

Wenn Sie Kubeflow verwenden, sehen Sie sich Quickstart und den Rest der Dokumentation an. Wenn Sie Airflow verwenden, haben wir auch Quickstart. Wenn Sie sich entscheiden, die Plugins auszuprobieren - wir warten auf Ihr Feedback! Die Plugins befinden sich noch in der Beta-Phase, aber die Haupt-API (die Art und Weise, wie Sie sie von Kedro CLI aus aufrufen) ist jetzt stabil. Scheuen Sie sich also nicht, sie in Ihre CI/CD-Pipelines zu integrieren, wie wir es kürzlich getan haben.

Wenn Sie mehr wissen möchten, sehen Sie sich bitte unsere Plattform für maschinelles Lernen an und zögern Sie nicht, uns zu kontaktieren.

Verfasst von

Mariusz Strzelecki

Contact

Let’s discuss how we can support your journey.