Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Conteneurisation

Découvrez comment la conteneurisation rationalise le déploiement de l'IA. Découvrez comment utiliser Docker et Kubernetes pour exécuter Ultralytics de manière cohérente dans n'importe quel environnement.

La conteneurisation est une stratégie de déploiement logiciel qui regroupe le code source d'une application avec ses bibliothèques, ses dépendances et ses fichiers de configuration dans une seule unité exécutable légère appelée conteneur. Cette approche abstrait le logiciel de l'infrastructure sous-jacente, garantissant ainsi que les applications s'exécutent de manière cohérente dans divers environnements informatiques, de l'ordinateur portable local d'un développeur aux immenses clusters de cloud computing. Dans le contexte de l' apprentissage automatique (ML), la conteneurisation résout le problème notoire « ça marche sur ma machine » en encapsulant l'environnement complexe nécessaire pour entraîner et exécuter des réseaux neuronaux.

Pourquoi la conteneurisation est importante pour l'IA

Pour les scientifiques des données et les ingénieurs en apprentissage automatique, la gestion des environnements représente un défi de taille. Différents projets peuvent nécessiter des versions incompatibles de Python, CUDA ou de bibliothèques telles que PyTorch. La conteneurisation élimine ces conflits en créant des environnements isolés et immuables.

  • Portabilité : une application de vision par ordinateur conteneurisée peut être déplacée de manière transparente entre le développement, les tests et la production. Cela garantit qu'un modèle formé sur un poste de travail fonctionne exactement de la même manière lorsqu'il est déployé sur un serveur.
  • Efficacité : contrairement aux méthodes traditionnelles, les conteneurs partagent le noyau du système d'exploitation (OS) de l'hôte, ce qui les rend extrêmement légers. Cette haute densité permet une meilleure utilisation des ressources, ce qui est essentiel pour réduire la latence d'inférence dans les applications en temps réel.
  • Évolutivité : les outils d'orchestration modernes peuvent rapidement démarrer ou arrêter des instances de conteneurs en fonction de la demande de trafic, garantissant ainsi l'évolutivité des services à forte demande.

Conteneurisation et machines virtuelles

Il est important de distinguer les conteneurs des machines virtuelles (VM). Une VM émule une pile matérielle complète, y compris un système d'exploitation invité complet, ce qui entraîne une surcharge importante en termes de ressources et ralentit les temps de démarrage. En revanche, la conteneurisation virtualise le système d'exploitation, permettant à plusieurs applications de s'exécuter en tant que processus isolés sur un seul noyau partagé. Cette empreinte réduite fait des conteneurs le choix privilégié pour les scénarios d'IA en périphérie où les ressources matérielles sont limitées, comme sur les appareils IoT ou les drones. Pour une comparaison technique plus approfondie, consultez le guide Red Hat sur les conteneurs par rapport aux VM.

Technologies de base

Plusieurs technologies clés constituent la colonne vertébrale de l'écosystème moderne des conteneurs :

  • Docker: la plateforme la plus utilisée pour la création, l'exécution et la gestion de conteneurs. Ultralytics un guide de démarrage rapide Docker pour aider les utilisateurs à déployer facilement des modèles de détection d'objets sans configuration manuelle de l'environnement.
  • Kubernetes: système open source permettant d' automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Il est essentiel pour gérer les grands clusters de conteneurs dans les pipelines MLOps d'entreprise .
  • Registres de conteneurs : des services tels que le catalogueNVIDIA stockent et distribuent des images de conteneurs souvent pré-optimisées pour des tâches spécifiques, telles que l'entraînement de modèles GPU .
  • Open Container Initiative (OCI) : norme industrielle qui garantit la compatibilité des formats de conteneurs et des environnements d'exécution entre différentes plateformes, promue par l' Open Container Initiative.

Applications concrètes

La conteneurisation est omniprésente dans les flux de travail modernes liés à l'IA, permettant une itération rapide et un déploiement fiable.

  1. Surveillance des villes intelligentes : les municipalités déploient des systèmes de gestion du trafic à l'aide de caméras connectées au réseau. Grâce aux conteneurs, les ingénieurs peuvent envoyer simultanément des mises à jour logicielles à des milliers d'appareils périphériques . Si un nouveau modèle de détection d'objets améliore la précision, le conteneur est mis à jour à distance, garantissant ainsi des performances constantes dans toute l'infrastructure de la ville.
  2. Recherche reproductible : dans la recherche universitaire et industrielle, la reproductibilité des résultats est essentielle. En publiant une image Docker contenant les scripts de traitement des données d'entraînement et l'architecture du modèle exacts, les chercheurs garantissent que leurs pairs peuvent reproduire l'expérience avec précision. Cela est essentiel pour valider les avancées en matière d'apprentissage profond (DL).

Exemple : inférence dans un conteneur

Lorsque vous créez un conteneur pour une application d'IA, vous incluez généralement un script pour gérer modèle de service. L'extrait Python suivant illustre un workflow d'inférence simple utilisant le ultralytics paquet. Ce script s'exécuterait à l'intérieur du conteneur, en utilisant les dépendances préinstallées de l'environnement.

from ultralytics import YOLO

# Load the YOLO26 model (weights are usually baked into the container image)
# YOLO26 is the latest state-of-the-art model for real-time tasks
model = YOLO("yolo26n.pt")

# Perform inference on an image URL
# In production, this might handle API requests or video streams
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Print the number of detected objects to the logs
print(f"Inference complete. Detected {len(results[0].boxes)} objects.")

En encapsulant cette logique dans un conteneur, les développeurs s'assurent que la Python et les versions des bibliothèques restent constantes, ce qui évite les défaillances imprévues en production. Pour simplifier la gestion, la formation et le déploiement des modèles, de nombreuses équipes utilisent la Ultralytics , qui prend en charge de manière native les workflows basés sur des conteneurs. Pour en savoir plus sur les stratégies de déploiement, consultez le guide AWS sur les cas d'utilisation des conteneurs.

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant