Kubernetes für Data Scientists

Auf Geschwindigkeit ausgelegt: ~ 10 ms Latenz, auch unter Last
Unglaublich schnelle Methode zum Erstellen, Verfolgen und Bereitstellen Ihrer Modelle!
- Verarbeitet mehr als 350 RPS auf nur 1 vCPU — kein Tuning erforderlich
- Produktionsbereit mit vollem Unternehmenssupport
Einführung
Da sich die Einsatzmöglichkeiten für Machine Learning in den letzten Jahren stark erweitert haben, ist auch die Notwendigkeit gewachsen, die Prozesse rund um das Training, die Bereitstellung und die Überwachung dieser Modelle zu skalieren. Viele dieser Herausforderungen ähneln denen, die für allgemeine Software-Anwendungsfälle bereits „gelöst“ wurden. Kubernetes ist eine solche Open-Source-Software, die das Cloud-Native-Ökosystem um sich herum konsolidiert hat, indem sie als zugrundeliegende Plattform dient.
Daher ist es unerlässlich zu untersuchen, ob es sinnvoll ist, Kubernetes für Machine-Learning-Anwendungsfälle zu nutzen. Beginnen wir zunächst mit Kubernetes selbst und der Frage, was daran so interessant ist.
Was ist Kubernetes?

Quelle: Kubernetes
💡 Kubernetes ist eine Open-Source-Container-Orchestrierungs-Engine zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen.
Einfacher ausgedrückt bietet Kubernetes eine einfache und standardisierte Möglichkeit, Workloads auszuführen und zu betreiben, die dynamisch über mehrere Maschinen hinweg skaliert werden müssen.
Gehen wir einige der beliebtesten Funktionen durch -
- Automatisierte Deployments - Kubernetes bietet eine einfache Möglichkeit, ein Docker-Image mit nur wenigen Zeilen YAML bereitzustellen. Dies ermöglicht uns eine deklarative Verwaltung dessen, was wir bereitstellen und wie wir es bereitstellen. Zudem macht es es extrem einfach, eine robuste CI-Pipeline auf dieser Abstraktion aufzubauen.
- Service Discovery - Services können sich nativ untereinander über statische Domainnamen aufrufen. Dadurch muss man sich keine Gedanken über den Standort des anderen Services machen, was eine automatische Skalierung ermöglicht.
- Load Balancing - Die Lastverteilung von Anfragen, die für einen bestimmten Service bestimmt sind, auf alle seine Instanzen über mehrere Nodes hinweg wird ebenfalls übernommen. Für öffentlich zugängliche Services können Sie auch einen externen Load Balancer des Cloud-Anbieters einbinden. Dies ermöglicht dynamisches Autoscaling, reibungsloses Failover und Ausfallzeit-freie Rollouts.
- Self-healing - Der integrierte Health-Check-Mechanismus überwacht einen laufenden Service und versucht, sich im Fehlerfall durch einen Neustart des Workloads zu erholen. Dies ist, kombiniert mit der nativen Load-Balancing-Unterstützung, ein riesiger Gewinn für die Zuverlässigkeit jedes Services.
- Autoscaling - Automatische Skalierung der Workload-Größe nach oben oder unten auf der Grundlage des tatsächlichen Ressourcenverbrauchs. Dies führt zu entscheidenden Kosteneinsparungen bei Workloads mit schwankender Auslastung.
- Entwicklerplattform - Kubernetes wurde mit der Absicht entwickelt, als Plattform für die Zusammenarbeit über mehrere Teams hinweg zu dienen. Dies wird durch die native Unterstützung von Benutzer- und Rollenverwaltung sowie Multi-Tenancy ermöglicht. Diese Funktionen werden ab einer gewissen Größenordnung absolut kritisch.
- Erweiterbar - Mit einem System aus Custom Resources und Custom Controllern dient Kubernetes als Plattform für andere Tools, die den Funktionsumfang massiv erweitern. Dies schaltet effektiv eine ganze Reihe von Anwendungsfällen frei, die von anderen Tools abgedeckt werden. Bsp.: ArgoCD für GitOps, Istio für Service Mesh, Kubeflow für ML-Pipeline-Orchestrierung etc.
- Open Source - Da Kubernetes Open Source ist, steht Ihnen eine breite Palette an Optionen zur Verfügung – vom Betrieb auf Bare-Metal-Servern bis hin zur Nutzung einer der verwalteten Optionen aller großen Cloud-Anbieter. Eine enge Ausrichtung an Kubernetes bietet Ihnen eine Schnittstelle mit ausreichender Portabilität, um den Workload je nach geschäftlichen Anforderungen tatsächlich zu verschieben.
Dies sind nur einige der Funktionen, die standardmäßig verfügbar sind. Eine große Anzahl von Anwendungsfällen wird tatsächlich durch Tools gelöst, die mit Kubernetes als zugrundeliegender Schicht gebaut wurden. Auf spezifische Tools werden wir in einer folgenden Ausgabe näher eingehen.
Überblick über den Workflow eines Data Scientists
Nachdem wir verstanden haben, was Kubernetes ist und welche Hauptfunktionen es in einem Softwareentwicklungsszenario bietet, wollen wir uns nun den spezifischen Problemen widmen, die es im Workflow eines Data Scientists lösen kann.

Die obige Abbildung gibt einen groben Überblick darüber, wie eine typische Data-Science-Pipeline abläuft. Viele Unternehmen haben sich dafür entschieden, eine Vielzahl maßgeschneiderter Lösungen mit überschneidenden Funktionen zu nutzen, um alles miteinander zu verknüpfen.
Wir werden jeden dieser Schritte durchgehen, um zu verstehen, wo Kubernetes ins Bild passt -
Feature Store
Bevor Rohdaten nutzbringend verwendet werden können, müssen sie zunächst in bereinigte Eingaben für die Modelltraining-Pipeline umgewandelt werden. Hier kommen Feature Stores ins Spiel, indem sie die Transformation, Speicherung und Bereitstellung der Feature-Daten übernehmen.
Kubernetes unterstützt das Deployment von zustandsbehafteten Workloads (Stateful Workloads) und lässt sich sehr gut mit Cloud-Anbietern integrieren, um nahtlos Persistenz zu bieten.
Modellentwicklung
Die meiste Modellentwicklung beginnt damit, dass ein ML-Engineer Code in einem Jupyter Notebook schreibt – und für viele ist das fast schon alles, was benötigt wird. Es bietet eine REPL-Schnittstelle zur Ausführung von Python-Code. Dies beginnt meist lokal auf persönlichen Laptops, es ist jedoch besser, einen zentralen Pool von gehosteten Jupyter Notebooks zu betreiben, der von mehreren Personen genutzt werden kann.
Das deklarative Modell von Kubernetes zusammen mit der Unterstützung für persistente Speichersysteme macht es trivial, einen Pool von Notebooks zu hosten und Zugriffssteuerungen für einzelne Notebooks einzurichten, um eine effektive Zusammenarbeit zu gewährleisten.
Modelltraining
Jeder in einem Notebook geschriebene Algorithmus muss mit Trainingsdaten gefüttert werden, um ein Modell-Artefakt als Ergebnis zu erhalten. Dies kann bei kleineren Anwendungsfällen im Notebook selbst erfolgen, erfordert jedoch bei größeren Datensätzen eine wesentlich leistungsfähigere Pipeline. In der Regel wird hier auch die Validierung gegen Testdatensätze durchgeführt, bevor das Artefakt für Inferenzen in der Produktion verwendet wird.
Es gibt mehrere Lösungen zur Orchestrierung einer DAG-Pipeline auf Kubernetes. Airflow bietet native Unterstützung für Kubernetes, während Kubeflow vollständig auf Kubernetes aufgebaut wurde. Alle großen Überwachungslösungen bieten eine erstklassige Integration mit Kubernetes, was für den Betrieb von produktionsreifen Pipelines essenziell ist.
Modellverwaltung
Phase kümmert sich um die Speicherung und Versionierung des Datensatzes sowie des Modells. Dies stellt sicher, dass jedes Modell-Artefakt so lange wie nötig reproduzierbar bleibt. Hier lässt sich eine Parallele zur Code-Verwaltung mit Git ziehen.
Obwohl der zugrundeliegende Datenspeicher für solche Verwaltungssysteme auf Kubernetes selbst gehostet werden kann, ist es in vielen Fällen besser, eine verwaltete Lösung eines Cloud-Anbieters zu nutzen. In solchen Fällen integrieren die meisten Cloud-Anbieter ihre eigenen IAM-Systeme nahtlos mit denen von Kubernetes, was den sicheren Zugriff auf Daten von außerhalb des Clusters ermöglicht, ohne Zugangsdaten speichern zu müssen.
Modell-Serving
Schließlich wird das Modell-Artefakt so vorbereitet, dass ein Produktionssystem darauf basierend Inferenzen durchführen kann. Dies beinhaltet in der Regel das Verpacken eines Modells in ein API-Framework und das Ermöglichen für andere Services, das Modell aufzurufen, um Inferenzen zu generieren. Hier kommen Bedenken ähnlich wie im Software Engineering wie Authn/Authz, Skalierbarkeit, Zuverlässigkeit etc. ins Spiel.
Hier glänzt Kubernetes. Die meisten Funktionen, über die wir im vorherigen Abschnitt gesprochen haben, werden in dieser Phase kritisch.
Modellüberwachung
Wie bei jedem Produktionssystem ist die kontinuierliche Überwachung des aktuell bereitgestellten Modells unerlässlich, um sicherzustellen, dass sich Ihr System wie erwartet verhält. Die zu überwachenden Metriken können von der tatsächlichen Genauigkeit der Vorhersagen bis hin zur Latenz und dem Durchsatz reichen, den das System unterstützen kann.
Viele Überwachungslösungen sind eng mit Kubernetes integriert. Das Erkennen eines Ziels zum tatsächlichen Erfassen von Metriken, das Durchführen von Berechnungen darauf und das Speichern für die spätere Verwendung können ohne externe Abhängigkeiten durchgeführt werden.
Fazit
Die gesamte Landschaft rund um Kubernetes ist explodiert und es gibt bereits eine Vielzahl von Tools. Es gibt jedoch einige Fallstricke, die jedes Unternehmen berücksichtigen sollte, bevor es Kubernetes auf breiter Front einführt. Darauf und wie diese gemildert werden können, werden wir in der nächsten Ausgabe eingehen.
TrueFoundry AI Gateway bietet eine Latenz von ~3—4 ms, verarbeitet mehr als 350 RPS auf einer vCPU, skaliert problemlos horizontal und ist produktionsbereit, während LiteLM unter einer hohen Latenz leidet, mit moderaten RPS zu kämpfen hat, keine integrierte Skalierung hat und sich am besten für leichte Workloads oder Prototyp-Workloads eignet.


















%20(28).webp)



.webp)
.webp)
.png)

.png)
.png)
.png)
.png)
.png)
.webp)
.webp)






