Le projet Kubeflow Machine Learning Toolkit pour Kubernetes a pour but de faciliter le déploiement de charges de travail d'apprentissage machine (ML) à travers plusieurs nœuds, uniquement là où le fractionnement et la distribution d'une charge de travail peuvent entrainer des calculs supplémentaires et ajouter de la complexité. La raison d’être de Kubernetes lui-même est toujours de faciliter la gestion des charges de travail distribuées, Kubeflow étant centré sur la portabilité, l'évolutivité et la simplicité de l'exécution de ces charges de travail. Les scripts et les fichiers de configuration sont fournis avec le projet. Les utilisateurs peuvent personnaliser leur configuration et exécuter des scripts pour déployer des conteneurs dans l’environnement de leur choix.
Pour faciliter la gestion des déploiements, Kubeflow fonctionne avec la version 0.11.0 ou ultérieure du framework Ksonnet, pour l'écriture et le déploiement des configurations Kubernetes sur les clusters. La version 1.8 ou plus récente de Kubernetes est requise, dans une configuration en cluster.
Kubeflow fonctionne également avec les technologies suivantes :
-
- Les modèles d'apprentissage machine TensorFlow. Ils peuvent être entrainés pour un usage sur site ou dans le cloud.
-
- Les notebooks produits par Jupyter, pour gérer les tâches d’apprentissage de TensorFlow.
-
- Seldon Core, une plate-forme pour le déploiement de modèles d'apprentissage machine sur Kubernetes.
Kubeflow étend l'API Kubernetes en ajoutant des définitions de ressources personnalisées à un cluster, de sorte que Kubernetes peut traiter les charges de travail ML comme des citoyens de première classe.
Présenté comme un projet cloud-native, Kubeflow s'intègre également avec les projets Ambassador for Ingress et Pachyderm pour la gestion des pipelines de données. Kubeflow pourrait être étendu au-delà de TensorFlow. Le support pour les framework d'apprentissage en profondeur PyTorch et MXNet est notamment envisagé.