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.
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 .
Docker est omniprésent dans le cycle de vie de l'IA, depuis les premières expérimentations jusqu'au déploiement final.
Il est utile de distinguer Docker des technologies connexes afin de comprendre son rôle spécifique :
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.")
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.