Docker
Découvre comment Docker permet un déploiement IA reproductible. Apprends à empaqueter les modèles Ultralytics YOLO26 dans des conteneurs pour une mise à l'échelle fluide du cloud aux appareils en périphérie.
Docker est une plateforme open-source qui permet aux développeurs d'automatiser le déploiement, la mise à l'échelle et la gestion des applications grâce à la conteneurisation. Dans le contexte de l'intelligence artificielle et de l'apprentissage automatique, Docker agit comme une unité logicielle standardisée qui encapsule le code et toutes ses dépendances — telles que les bibliothèques, les outils système et les paramètres — afin que l'application s'exécute rapidement et de manière fiable d'un environnement informatique à un autre. Cela élimine le problème courant du "ça fonctionne sur ma machine", garantissant qu'un réseau de neurones entraîné sur l'ordinateur portable d'un chercheur se comporte exactement de la même manière lorsqu'il est déployé sur un serveur cloud massif ou un appareil périphérique.
Link to this sectionPourquoi Docker est important pour l'IA et l'apprentissage automatique#
Les opérations d'apprentissage automatique (MLOps) modernes reposent fortement sur la reproductibilité et la portabilité. Un projet d'IA implique souvent une pile logicielle complexe, incluant des versions spécifiques de Python, des pilotes CUDA pour l'accélération GPU et des frameworks d'apprentissage profond comme PyTorch ou TensorFlow. Gérer cela manuellement au sein de différentes équipes et infrastructures est source d'erreurs.
Docker simplifie cela en créant des conteneurs légers et autonomes. Contrairement aux machines virtuelles (VM) traditionnelles qui nécessitent un système d'exploitation complet pour chaque instance, les conteneurs partagent le noyau OS de la machine hôte mais s'exécutent dans des espaces utilisateur isolés. Cela les rend nettement plus efficaces en ressources et plus rapides à démarrer, ce qui est crucial pour la mise à l'échelle de l'infrastructure de service de modèles ou l'exécution de tâches d'entraînement distribuées.
Link to this sectionApplications concrètes#
Docker est omniprésent dans le cycle de vie de l'IA, de l'expérimentation initiale au déploiement final.
-
Environnements d'entraînement cohérents : Une équipe de science des données peut utiliser des images Docker pour partager un environnement de développement unifié. Par exemple, un chercheur travaillant sur la détection d'objets peut récupérer une image pré-construite contenant tous les pilotes et bibliothèques nécessaires. Cela garantit que lorsqu'il entraîne un modèle YOLO26, les résultats sont reproductibles par ses collègues, quelles que soient les différences de matériel sous-jacent.
-
Déploiement d'IA en périphérie (Edge AI) : Dans la surveillance de ville intelligente, les modèles mis à jour doivent être poussés vers des milliers d'appareils en périphérie, tels que des caméras de circulation ou des drones. Les conteneurs Docker permettent aux ingénieurs d'empaqueter une nouvelle version de modèle et de la déployer par les airs. Comme le conteneur inclut le runtime d'inférence, le processus de mise à jour est fluide et n'interfère pas avec le système d'exploitation de base de l'appareil.
Link to this sectionDocker vs Kubernetes vs Machines Virtuelles#
Il est utile de distinguer Docker des technologies connexes pour comprendre son rôle spécifique :
- Docker vs Machines Virtuelles (VM) : Les VM virtualisent le matériel, ce qui signifie que chaque VM exécute un OS complet (comme Windows ou Linux) au-dessus d'un hyperviseur. Cela consomme une mémoire et un CPU importants. Docker virtualise le système d'exploitation, rendant les conteneurs beaucoup plus petits et rapides que les VM.
- Docker vs Kubernetes : Ce sont des technologies complémentaires, pas concurrentes. Docker est l'outil utilisé pour créer et exécuter des conteneurs individuels. Kubernetes est une plateforme d'orchestration de conteneurs qui gère des clusters de conteneurs Docker, traitant des tâches comme la mise à l'échelle automatique, l'équilibrage de charge et l'auto-guérison dans des environnements de cloud computing à grande échelle.
Link to this sectionExemple : Exécuter l'inférence dans un conteneur#
L'exemple suivant montre à quoi pourrait ressembler un script Python à l'intérieur d'un conteneur Docker conçu pour la vision par ordinateur. Ce script utilise le package ultralytics pour charger un modèle et effectuer une inférence. L'environnement du conteneur garantit que les bonnes dépendances (comme opencv-python et torch) sont déjà présentes.
from ultralytics import YOLO
# Load the YOLO26 model (weights are typically included in the Docker image)
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a containerized microservice, this might process incoming API requests
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Log the detection results
print(f"Detected {len(results[0].boxes)} objects in the image.")Link to this sectionIntégrer Docker dans ton workflow#
Pour commencer avec la conteneurisation, les développeurs définissent généralement un Dockerfile, qui est un document texte contenant toutes les commandes pour assembler une image. Une fois construites, ces images peuvent être stockées dans des registres comme Docker Hub ou le NVIDIA NGC Catalog, qui propose des conteneurs optimisés pour les GPU.
Pour ceux qui cherchent à rationaliser le processus d'entraînement et de déploiement sans gérer manuellement les Dockerfiles, la Plateforme Ultralytics propose des outils intégrés qui gèrent la complexité des environnements cloud. Cela permet aux utilisateurs de se concentrer sur l'amélioration de la précision du modèle plutôt que sur la configuration de l'infrastructure. De plus, tu peux explorer notre Guide de démarrage rapide Docker pour apprendre comment exécuter immédiatement des modèles Ultralytics dans des conteneurs.






