Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Docker

Découvrez comment Docker permet un déploiement reproductible de l'IA. Apprenez à intégrer les modèles Ultralytics dans des conteneurs pour une évolutivité transparente du cloud aux appareils périphériques.

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 à l'aide de la conteneurisation. Dans le contexte de l'intelligence artificielle et de l'apprentissage automatique, Docker agit comme une unité logicielle standardisée qui regroupe le code et toutes ses dépendances (telles que les bibliothèques, les outils système et les paramètres) afin que l'application fonctionne rapidement et de manière fiable d'un environnement informatique à un autre. Cela élimine le problème courant du « ça marche sur ma machine », garantissant qu'un réseau neuronal 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 périphérique de pointe.

Pourquoi Docker est important pour l'IA et l'apprentissage automatique

Les opérationsmodernes d'apprentissage automatique (MLOps) reposent largement sur la reproductibilité et la portabilité. Un projet d'IA implique souvent une pile logicielle complexe, comprenant des versions spécifiques de Python, CUDA pour GPU et des frameworks d'apprentissage profond tels que PyTorch ou TensorFlow. La gestion manuelle de ces éléments entre différentes équipes et infrastructures est source d'erreurs.

Docker simplifie ce processus 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 du système d'exploitation de la machine hôte, mais s'exécutent dans des espaces utilisateur isolés . Ils sont ainsi beaucoup plus efficaces en termes de ressources et plus rapides à démarrer, ce qui est essentiel lors de la mise à l'échelle de l' infrastructure de service des modèles ou de l'exécution de tâches de formation distribuées .

Applications concrètes

Docker est omniprésent dans le cycle de vie de l'IA, depuis les premières expérimentations jusqu'au déploiement final.

  1. Environnements de formation 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 extraire une image pré-construite contenant tous les pilotes et bibliothèques nécessaires. Cela garantit que lorsqu'ils forment un modèle YOLO26, les résultats sont reproductibles par leurs collègues, quelles que soient les différences matérielles sous-jacentes.
  2. Déploiement de l'IA en périphérie : dans le cadre de la surveillance des villes intelligentes, les modèles mis à jour doivent être transmis à 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 de regrouper une nouvelle version du modèle et de la déployer à distance. Le conteneur incluant le runtime d'inférence, le processus de mise à jour est transparent et n'interfère pas avec le système d'exploitation principal de l'appareil.

Docker, Kubernetes et machines virtuelles : comparaison

Il est utile de distinguer Docker des technologies connexes afin de 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 système d'exploitation complet (comme Windows ou Linux) au-dessus d'un hyperviseur. Cela consomme beaucoup de mémoire et CPU. Docker virtualise le système d'exploitation, ce qui rend les conteneurs beaucoup plus petits et plus rapides que les VM.
  • Docker vs Kubernetes: il s'agit de technologies complémentaires et non 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, en prenant en charge des tâches telles que l' auto-scaling, l'équilibrage de charge et l'auto-réparation dans des environnements de cloud computing à grande échelle .

Exemple : exécution d'une inférence dans un conteneur

L'exemple suivant montre à quoi pourrait ressembler un Python dans un conteneur Docker conçu pour la vision par ordinateur . Ce script utilise le ultralytics paquet pour charger un modèle et effectuer une inférence. L'environnement du conteneur garantit que les dépendances correctes (telles que opencv-python et torch) sont déjà présents.

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.")

Intégrer Docker à votre flux de travail

Pour se lancer dans la conteneurisation, les développeurs définissent généralement un Dockerfile, qui est un document texte contenant toutes les commandes nécessaires à l'assemblage d'une image. Une fois créées, ces images peuvent être stockées dans des registres tels que Docker Hub ou le Catalogue NVIDIA, qui propose des conteneurs GPU.

Pour ceux qui cherchent à rationaliser le processus de formation et de déploiement sans gérer manuellement les fichiers Dockerfiles, 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 des modèles plutôt que sur la configuration de l'infrastructure. De plus, vous pouvez consulter notre guide de démarrage rapide Docker pour apprendre à exécuter immédiatement Ultralytics dans des conteneurs.

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant