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.
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.
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.
Plusieurs technologies clés constituent la colonne vertébrale de l'écosystème moderne des conteneurs :
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.
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.