Der Steuermann wird schlauer

Kubeflow: Maschinelles Lernen für Kubernetes
Keine Kommentare

Das Kubeflow-Projekt von Google hat das Ziel, Machine Learning auf Kubernetes einfach, portabel und skalierbar zu machen. Dabei will das Tool die Welt nicht neu erfinden, sondern setzt auf die Integration bestehender Tools und Bibliotheken.

Data Scientists nutzen verschieden Hardware für ihre Projekte, um das Beste für die Machine-Learning-Berechnungen herauszuholen. Aber jede Kombination von CPUs, GPUs oder ASICs bringen Probleme mit sich. Von den jeweils nötigen Treiber und Bibliotheken ganz zu schweigen. Selbst innerhalb von ML Frameworks kann es zur berüchtigten Dependency Hell kommen. Wenn man die Infrastruktur dann auch noch skalieren möchte, kommt eine ganze Horde neuer Probleme hinzu. Denn einfach einen neuen Rechner ins ML-Cluster zu schieben, bringt meistens nicht so viel. Eine Möglichkeit mit diesen Problemen umzugehen, ist der Einsatz von Containern und Kubernetes.

Kubernetes bringt bereits einige Freatures mit, um ML-Nutzern die Arbeit zu erleichtern. So gibt es bereits Controller für ML und Kubernetes Jobs für das Training von ML-Modellen und Deployments für das Serving. Kubernetes ist für Skalierung geschaffen, deswegen ist es kein Problem bis zu 1.000 Nodes hochzuziehen. Auch das Container-Packing ist kein Hindernis, da es Standard-Images für ML gibt. Leider ist der Einsatz von Kubernetes vor allem in Kombination mit Machine Learning nicht trivial.

Hier kommt das Projekt Kubeflow von Google ins Spiel. Das Ziel des Projekts ist es, das Erstellen, Deployen und Managen von verteilten ML-Systemen auf Kubernetes zu vereinfachen. Dabei geht es den Entwicklern nicht darum, bereits bestehende Tools und Services zu ersetzen, sondern diese zu integrieren, damit man sich das jeweils am besten passende Tool für seinen Use Case aussuchen kann. Für die Portabilität zwischen verschiedenen Plattformen oder Hardware sorgen Kubernetes APIs. Kubernetes selbst kümmert sich um das Deployment. KubeFlow besteht aus einem Jupyter Hub für kollaborative und interaktive Trainings, einen TensorFlow Training Controller, ein TensorFlow Serving Deployment und die Verbindungen zu Kubernetes unabhängig davon wo Kubernetes läuft. Auch wenn Kubeflow stark auf TensorFlow setzt, ist auch der Einsatz anderer ML-Lösungen möglich.

Das Projekt selbst befindet sich noch in einem recht frühen Stadium. Für die nächsten Schritte ist eine Verbesserung der Accelarator-Integration geplant. Außerdem soll auch die Unterstützung für Tools weiter ausgebaut werden, zum Beispiel Spark ML oder XGBoost. Auch eine Autoskalierung für TensorFlow Serving soll kommen.

Das Projekt ist auf GitHub zu finden. Es steht unter einer Apache-Lizenz Version 2.0.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -