Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Kubernetes

Découvrez comment Kubernetes rationalise les charges de travail d'IA/ML grâce au déploiement de modèles évolutifs, à la formation distribuée et à la gestion efficace des ressources.

Kubernetes, souvent abrégé en K8s, est un système d'orchestration de conteneurs open-source qui automatise le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Conçu à l'origine par des ingénieurs de Google est aujourd'hui maintenu par la Cloud Native Computing Foundation ( Google ). maintenue par la Cloud Native Computing Foundation (CNCF), Kubernetes est devenue la norme en norme industrielle pour l'exploitation de systèmes logiciels distribués et résilients. Dans les domaines en plein essor de l'intelligence artificielle (IA) et Machine Learning (ML), il sert de couche d'infrastructure couche d'infrastructure fondamentale, permettant aux équipes d'ingénieurs de gérer efficacement le cycle de vie complet de modèles complexes, du développement expérimental à la production à grande échelle. complexes, du développement expérimental à la production à grande échelle.

Concepts fondamentaux et architecture

À la base, Kubernetes gère un cluster de machines informatiques, appelées nœuds, qui exécutent des charges de travail conteneurisées. Kubernetes s'appuie fortement sur la conteneurisation, unetechnologie qui conditionne le code avec ses dépendances, afin de garantir que les applications s'exécutent de manière cohérente dans divers environnements. environnements. Kubernetes introduit des abstractions telles que les "Pods", qui sont les plus petites unités déployables, et les "déploiements", qui maintiennent l'état souhaité d'une application. En découplant le logiciel du matériel matériel sous-jacent, il permet aux aux ingénieurs en vision artificielle de se concentrer sur sur la performance du modèle plutôt que sur la maintenance du serveur, en utilisant des services gérés tels que Amazon EKS ou Google Kubernetes Engine (GKE).

Kubernetes dans l'IA et l'apprentissage automatique

Pour les opérations d'apprentissage automatique (MLOps), Kubernetes est indispensable. Machine Learning Operations (MLOps), Kubernetes est indispensable car il résout le défi critique de l'évolutivité. l 'évolutivité. Les charges de travail d'IA modernes, en particulier celles l'apprentissage profond, requièrent d'importantes ressources informatiques. Kubernetes facilite l'apprentissage distribué en planifiant intelligemment intelligemment les tâches de formation sur plusieurs nœuds équipés de unités de traitement graphique (GPU). Pendant la phase de déploiement du modèle, K8s assure haute disponibilité des API d'inférence, en augmentant ou réduisant automatiquement le nombre de pods en cours d'exécution en fonction des demandes de trafic en temps réel, ce qui optimise à la fois les performances et les coûts. en temps réel, ce qui optimise à la fois les performances et les coûts.

Applications concrètes

  1. Surveillance du trafic dans une ville intelligente : L'administration d'une ville déploie un Ultralytics YOLO11 pour analyser le flux de trafic et détecter detect embouteillages en temps réel. L'application est conteneurisée et orchestrée sur un cluster Kubernetes. En utilisant l'outil Horizontal Pod Autoscaler, le système détecte les pics de données de flux vidéo pendant les heures de pointe et fournit automatiquement des pods d'inférence d'inférence supplémentaires. Cela permet d'assurer des services de détection d'objets ininterrompus de détection d'objets sans nécessiter l'approvisionnement manuel des serveurs.
  2. Recherche visuelle dans le commerce électronique : Un détaillant en ligne met en place un système de recommandation qui permet aux utilisateurs de de rechercher des produits à l'aide d'images. Le pipeline se compose de microservices distincts pour le prétraitement des images, l'extraction des caractéristiques et la recherche dans une base de données vectorielle. l'extraction des caractéristiques et la recherche dans la base de données vectorielle. Kubernetes orchestre ces composants, ce qui permet à l'équipe d'ingénierie des fonctionnalités de mettre à jour la base de données vectorielle. d'actualiser le modèle d'extraction indépendamment de modèle d'extraction indépendamment de l'index de recherche, ce qui garantit l'agilité et la stabilité du système dans leur environnement de production. dans leur environnement de production.

Distinguer les technologies connexes

Il est utile de comprendre en quoi Kubernetes diffère des autres outils d'infrastructure courants :

  • Kubernetes vs. Docker: Docker est un outil utilisé pour créer et exécuter des conteneurs individuels, tandis que Kubernetes est un orchestrateur qui gère ces conteneurs sur un parc de machines. sur un parc de machines. En règle générale, les développeurs utilisent Docker pour créer leurs images d'application de réseau neuronal, puis s'en remettent à Kubernetes. images d'application de réseau neuronal, puis s'appuient sur Kubernetes sur Kubernetes pour les exécuter à grande échelle.
  • Kubernetes vs. L'informatique sans serveur: Les plateformes sans serveur, comme AWS Lambda, font abstraction de toute gestion de l'infrastructure, ce qui les rend idéales pour les fonctions basées sur les événements. l'infrastructure, ce qui les rend idéales pour les fonctions basées sur les événements. En revanche, Kubernetes offre un contrôle granulaire sur le réseau, le stockage et l'allocation des ressources, ce qui est souvent nécessaire pour les fonctions à long terme. le réseau, le stockage et l'allocation des ressources, ce qui est souvent nécessaire pour les applications de longue durée avec état ou pour les architectures complexes de service de modèles. architectures complexes de service de modèle.

Outils et écosystème

L'écosystème Kubernetes est vaste et comprend des outils tels que Helm pour la gestion des paquets et Prometheus pour surveiller la santé des clusters. Pour les flux de travail ML spécialisés, des plateformes comme Kubeflow s'exécutent au-dessus de Kubernetes pour rationaliser les pipelines de bout en bout. Pour l'avenir, la prochaine plateformeUltralytics est conçue pour simplifier davantage ces processus, en offrant un environnement complet pour la gestion des données et l'entraînement des modèles qui qui fait abstraction des complexités de l'infrastructure sous-jacente.

Exemple : Script d'inférence pour la conteneurisation

Pour déployer un modèle sur Kubernetes, vous avez d'abord besoin d'un script qui effectue l'inférence. Ce snippet Python démontre le chargement d'un modèle YOLO11 , qui peut ensuite être placé dans un conteneur Docker et planifié par K8s.

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Run inference on an image source
# This script would typically run inside a Kubernetes Pod
results = model("https://ultralytics.com/images/bus.jpg")

# Print the detected class names
for result in results:
    for cls_id in result.boxes.cls:
        print(f"Detected: {result.names[int(cls_id)]}")

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant