Kubeflow ist eine Open-Source-Plattform, die für maschinelles Lernen und MLOps auf Kubernetes entwickelt wurde und ursprünglich von Google eingeführt wurde. Sie bietet eine Sammlung von Softwarekomponenten, die verschiedenen Phasen eines typischen Lebenszyklus des maschinellen Lernens entsprechen, einschließlich Modellentwicklung, Training, Bereitstellung und automatisiertem maschinellem Lernen. Jede Komponente kann separat bereitgestellt werden, sodass Benutzer nur die Teile übernehmen können, die sie benötigen, anstatt die gesamte Plattform.
Die Plattform zielt darauf ab, die Bereitstellung und Verwaltung von Systemen des maschinellen Lernens zu vereinfachen, indem Kubernetes für Orchestrierung, Skalierung und Infrastrukturverwaltung genutzt wird. Sie unterstützt eine Reihe beliebter Frameworks und Tools, was sie zu einer flexiblen Option sowohl für Forschungs- als auch für Produktionsumgebungen macht.
Geschichte
Das Kubeflow-Projekt wurde erstmals auf der KubeCon + CloudNativeCon North America 2017 von den Google-Ingenieuren David Aronchick, Jeremy Lewi und Vishnu Kannan angekündigt. Die Initiative ging auf einen wahrgenommenen Mangel an flexiblen Optionen für den Aufbau produktionsreifer Systeme des maschinellen Lernens ein. Das Projekt begann auch als eine Möglichkeit für Google, die interne Nutzung von TensorFlow als Open Source bereitzustellen.
Das erste Release, Kubeflow 0.1, wurde auf der KubeCon + CloudNativeCon Europe 2018 angekündigt. Kubeflow 1.0 folgte im März 2020, mit einem öffentlichen Blogbeitrag, der ankündigte, dass viele Komponenten einen „stabilen Status“ erreicht hatten, was ihre Produktionsreife anzeigt. Im Oktober 2022 gab Google bekannt, dass Kubeflow einen Antrag auf Beitritt zur Cloud Native Computing Foundation (CNCF) gestellt hatte. Die Stiftung stimmte im Juli 2023 dafür, Kubeflow als Inkubationsprojekt aufzunehmen.
Komponenten
Kubeflow Notebooks für die Modellentwicklung
Modelle des maschinellen Lernens werden in der Komponente Kubeflow Notebooks entwickelt. Diese Komponente führt webbasierte Entwicklungsumgebungen innerhalb eines Kubernetes-Clusters aus, mit nativer Unterstützung für Jupyter Notebook, Visual Studio Code und RStudio. Dies ermöglicht es Datenwissenschaftlern, in vertrauten Oberflächen zu arbeiten, während sie von Clusterressourcen profitieren.
Kubeflow Pipelines für das Modelltraining
Nach der Entwicklung werden die Modelle mit der Komponente Kubeflow Pipelines trainiert. Diese Plattform erstellt und stellt portable, skalierbare Workflows für maschinelles Lernen basierend auf Docker-Containern bereit. Google Cloud Platform hat den Kubeflow Pipelines DSL in seinem Produkt Vertex AI Pipelines übernommen, was seinen Nutzen in Cloud-Umgebungen demonstriert.
Kubeflow Training Operator für das Modelltraining
Für bestimmte Modelle und Bibliotheken des maschinellen Lernens bietet der Kubeflow Training Operator Kubernetes-Definitionen für Instanzen, die verteilte oder nicht verteilte Trainingsjobs für TensorFlow, PyTorch, Apache MXNet, XGBoost und MPI auf Kubernetes ausführen. Diese Komponente vereinfacht die Orchestrierung komplexer Trainingsaufgaben.
KServe für die Modellbereitstellung
KServe, früher bekannt als KFServing, stellt Kubernetes-Definitionen für Instanzen für die Bereitstellung von Modellen des maschinellen Lernens auf Frameworks wie TensorFlow, XGBoost, scikit-learn, PyTorch und ONNX bereit. Es wurde gemeinsam von Google, IBM, Bloomberg, NVIDIA und Seldon entwickelt. Öffentlich genannte, die dies übernehmen, umfassen Bloomberg, Gojek und die Wikimedia Foundation.
Katib für automatisiertes maschinelles Lernen
Katib ist ein Kubernetes-natives Projekt für das automatisierte Training und die Entwicklung von Modellen des maschinellen Lernens. Es bietet Hyperparameter-Tuning, die Methode des frühen Stoppens und die Suche nach neuronalen Architekturen, was eine automatische Optimierung der Modellleistung ermöglicht.
Release-Zeitplan
Kubeflow hat sich seit seiner Einführung durch mehrere Releases weiterentwickelt. Das anfängliche 0.1-Release im Jahr 2018 legte die Grundlage, und das 1.0-Release im Jahr 2020 markierte einen Meilenstein für die Produktionsreife. Nachfolgende Versionen haben die Komponenten kontinuierlich verfeinert und Funktionen hinzugefügt, wobei das Projekt im Jahr 2023 den CNCF-Inkubationsstatus erhielt.
Übernahme und Ökosystem
Kubeflow wird in verschiedenen Branchen für Workflows des maschinellen Lernens eingesetzt. Seine Integration mit Kubernetes macht es für Organisationen attraktiv, diese Organisationen bereits Container-Orchestrierung nutzen. Das modulare Design der Plattform ermöglicht es Teams, sie mit anderen dieser Tools in machine-learning zu kombinieren, wie z. B. Frameworks für tiefes Lernen und Services für künstliche Intelligenz.
Siehe auch
- maschinelles Lernen
- tiefes Lernen
- kubernetes
- MLOps