Überblick
Kubeflow ist ein Kubernetes-natives Open Source Framework für das Entwickeln, Verwalten und Ausführen von ML-Workloads (Machine Learning). Kubeflow ist eine KI/ML-Plattform, die mehrere Tools für die wichtigsten Use Cases für KI/ML vereint: Datenexploration, Daten-Pipelines, Modelltraining und Modellbereitstellung.
Mit Kubeflow können Data Scientists auf diese Funktionen über ein Portal zugreifen, das allgemeine Abstraktionen für die Interaktion mit diesen Tools bereitstellt. Das heißt, dass sich Data Scientists nicht mit der Integration von Kubernetes in jedes dieser Tools beschäftigen müssen. Kubeflow selbst ist speziell für die Ausführung auf Kubernetes konzipiert und umfasst viele der Schlüsselkonzepte, einschließlich des Operator-Modells.
Wofür wird Kubeflow verwendet?
Kubeflow löst viele der Herausforderungen bei der Orchestrierung von ML-Pipelines und bietet Tools sowie APIs, die den Trainings- und Deployment-Prozess von ML-Modellen in großem Umfang vereinfachen. Eine „Pipeline“ bezeichnet einen ML-Workflow, einschließlich der Komponenten des Workflows und der Art und Weise, wie diese Komponenten interagieren. Mit Kubeflow können die Anforderungen mehrerer Teams in einem Projekt zusammengefasst werden, und diese Teams können von einer beliebigen Infrastruktur aus arbeiten. Das heißt, dass Data Scientists ML-Modelle in der Cloud ihrer Wahl trainieren und bereitstellen können, darunter IBM Cloud, Google Cloud, Amazon AWS oder Azure.
Insgesamt werden MLOps (Machine Learning Operations) mit Kubeflow standardisiert, indem es Projekte organisiert und gleichzeitig die Leistungsfähigkeit von Cloud Computing nutzt. Zu den wichtigsten Use Cases für Kubeflow gehören Datenvorbereitung, Modelltraining, Bewertung, Optimierung und Deployment.
Gründe für das Ausführen von ML-Workloads auf Kubernetes
Kubernetes ist entscheidend, wenn es um die Beschleunigung des ML-Lifecycles geht. Diese Technologie bietet Data Scientists die beim Trainieren, Testen und Bereitstellen von ML-Modellen dringend erforderliche Agilität, Flexibilität, Portierbarkeit und Skalierbarkeit.
Skalierbarkeit: Mit Kubernetes können Nutzende ML-Workloads je nach Bedarf vertikal oder horizontal skalieren. So können sie dafür sorgen, dass ML-Pipelines umfangreiche Verarbeitungs- und Trainingsaufgaben übernehmen können, ohne andere Elemente des Projekts zu beeinträchtigen.
Effizienz: Kubernetes optimiert die Ressourcenzuweisung, indem Workloads auf der Basis ihrer Verfügbarkeit und Kapazität auf Nodes verteilt werden. Durch eine gezielte Nutzung der Computerressourcen können Nutzende niedrigere Kosten und eine höhere Performance erwarten.
Portierbarkeit: Kubernetes bietet eine standardisierte, plattformunabhängige Umgebung, mit der Data Scientists eine ML-Pipeline entwickeln und in verschiedenen Umgebungen und Cloud-Plattformen bereitstellen können. Sie müssen sich also keine Gedanken über Kompatibilitätsprobleme und Vendor Lock-in machen.
Fehlertoleranz: Dank der integrierten Fehlertoleranz und Selbstreparaturfunktionen können sich Nutzende darauf verlassen, dass Kubernetes auch im Falle eines Hardware- oder Softwarefehlers ML-Pipelines weiter ausführt.
Aus welchen Komponenten besteht Kubeflow?
- Das Kubeflow Central Dashboard bietet eine authentifizierte Weboberfläche für den Zugriff auf Kubeflow und seine IT-Ökosystemkomponenten. Als zentraler Hub bündelt es die Benutzeroberflächen verschiedener Tools und Services innerhalb des Clusters und bietet so einen einheitlichen Zugangspunkt für die Verwaltung Ihrer ML-Plattform.
- Kubeflow lässt sich in Jupyter Notebooks integrieren und bietet eine interaktive Umgebung für Datenexploration, Experimente und Modellentwicklung. Notebooks unterstützen verschiedene Programmiersprachen, darunter Python, R und Scala, und ermöglichen es Nutzenden, ML-Workflows auf kollaborative und reproduzierbare Weise zu erstellen und auszuführen.
- Mit Kubeflow Pipelines können Nutzende komplexe ML-Workflows als DAGs (Directed Acyclic Graphs) definieren und ausführen. Kubeflow Pipelines bieten eine Möglichkeit, den End-to-End-Prozess von Datenvorverarbeitung, Modelltraining, Auswertung und Deployment zu orchestrieren und zu automatisieren, was die Reproduzierbarkeit, Skalierbarkeit und Zusammenarbeit in ML-Projekten fördert. Das Kubeflow Pipelines-SDK ist eine Sammlung von Python-Paketen, mit denen Nutzende ihre ML-Workflows präzise und effizient definieren und ausführen können.
- Der Kubeflow Training Operator bietet Tools zum Trainieren von ML-Modellen in großem Umfang. Dazu gehört die Unterstützung für verteiltes Training mit Frameworks wie TensorFlow, PyTorch und XGBoost. Nutzende können die Vorteile der Skalierbarkeit und der Ressourcenmanagementfunktionen von Kubernetes nutzen, um Modelle effizient in verschiedenen Clustern von Maschinen zu trainieren.
- Mit Kubeflow Serving können Nutzende trainierte ML-Modelle als skalierbare, produktionsbereite Services bereitstellen. Es bietet eine konsistente Schnittstelle zum Bereitstellen von Modellen mithilfe gängiger Frameworks wie TensorFlow Serving, Seldon Core oder benutzerdefinierter Inferenzserver. Modelle können in Echtzeit- oder Batch-Verarbeitungsszenarien bereitgestellt werden und Vorhersagen über HTTP-Endpunkte bereitstellen.
- Kubeflow Metadata ist ein zentralisiertes Repository zur Verfolgung und Verwaltung von Metadaten im Zusammenhang mit ML-Experimenten, -Durchläufen und -Artefakten. Es bietet eine konsistente Ansicht der ML-Metadaten im gesamten Workflow und ermöglicht so Reproduzierbarkeit, Zusammenarbeit und Governance in ML-Projekten.
Darüber hinaus bietet Kubeflow webbasierte Benutzeroberflächen (UIs) zur Überwachung und Verwaltung von ML-Experimenten, Modelltrainingsjobs und Inferenzservices. Diese Benutzeroberflächen bieten Visualisierungen, Metriken und Protokolle, mit denen Nutzende den Fortschritt ihrer ML-Workflows verfolgen, Probleme beheben und fundierte Entscheidungen treffen können.
Da Kubeflow das Kubernetes Operators-Modell nutzt, ist es erweiterbar und unterstützt die Anpassung an bestimmte Use Cases und Umgebungen. Nutzende können zusätzliche Komponenten wie Datenvorverarbeitungstools, Feature Stores, Überwachungslösungen und externe Datenquellen integrieren, um die Fähigkeiten ihrer ML-Workflows zu verbessern.
Wie Red Hat helfen kann
Red Hat® OpenShift® ist eine vertrauenswürdige, umfassende und konsistente Plattform für die Anwendungsentwicklung, Bereitstellung und Verwaltung in vielen verschiedenen Umgebungen. Mit DevOps-Funktionen (zum Beispiel OpenShift Pipelines, OpenShift GitOps und Red Hat Quay) und der Integration von Hardwarebeschleunigern ermöglicht Red Hat OpenShift eine verbesserte Zusammenarbeit und beschleunigt die Bereitstellung von KI-gestützten Anwendungen.
Red Hat OpenShift AI bietet einen visuellen Editor zum Erstellen und Automatisieren von Data Science-Pipelines und Experimenten auf der Basis von Kubeflow-Pipelines. OpenShift AI ist eine integrierte MLOps-Plattform zum Entwickeln, Trainieren, Bereitstellen und Überwachen von KI-gestützten Anwendungen sowie Vorhersage- und Basismodellen in großem Umfang in Hybrid Cloud-Umgebungen. Automatisieren und Vereinfachen Sie den iterativen Prozess der Integration von ML-Modellen in Softwareentwicklungsprozesse, Produktions-Rollout, Überwachung, erneutes Training und erneute Bereitstellung für kontinuierliche Vorhersagegenauigkeit.
Red Hat OpenShift ist nativ in IBM Cloud, Google Cloud, AWS und Azure verfügbar und ermöglicht Nutzenden die Automatisierung der Verwaltung von Kubernetes-Clustern, um Anwendungen schnell mit einer produktionsbereiten Anwendungsplattform zu entwickeln, bereitzustellen und zu skalieren.