Glossaire

Docker

Simplifiez les flux de travail en IA/ML avec Docker ! Apprenez à déployer des modèles, à garantir la reproductibilité et à mettre à l'échelle efficacement les environnements.

Docker est une plateforme open-source qui automatise le déploiement, la mise à l'échelle et la gestion des applications en utilisant la virtualisation au niveau du système d'exploitation pour fournir des logiciels dans des paquets appelés conteneurs. Pour les ingénieurs en Machine Learning (ML) et les data scientists, Docker est un outil crucial qui résout le problème courant des incohérences environnementales, le fameux "ça marche sur ma machine". En regroupant le code d'une application avec toutes les bibliothèques, les frameworks tels que PyTorch et les autres dépendances dont elle a besoin pour fonctionner, Docker garantit qu'un modèle fonctionne de manière identique quel que soit l'endroit où il est déployé. Cette cohérence est fondamentale pour un déploiement fiable des modèles et constitue la pierre angulaire des pratiques MLOps modernes. Ultralytics fournit un guide de démarrage rapide de Docker pour aider les utilisateurs à commencer à conteneuriser leurs applications.

Comment fonctionne Docker

Le flux de travail de Docker s'articule autour de quelques composants de base qui fonctionnent ensemble pour emballer et exécuter des applications :

  • Dockerfile: Il s'agit d'un simple fichier texte qui contient une liste de commandes ou d'instructions séquentielles. Ces instructions indiquent à Docker comment construire une image Docker spécifique. Pour un projet ML, un Dockerfile spécifierait un système d'exploitation de base, des commandes pour installer des dépendances comme Python et OpenCV, copier les fichiers de modèle et le code d'inférence, et définir la commande à exécuter lorsque le conteneur démarre. Vous trouverez plus d'informations sur les Dockerfiles dans la documentation officielle de Docker.
  • Image Docker: Une image est un paquet léger, autonome et exécutable qui comprend tout ce qui est nécessaire pour exécuter un logiciel, y compris le code, un runtime, des bibliothèques, des variables d'environnement et des fichiers de configuration. Il s'agit d'un modèle en lecture seule créé à partir d'un fichier Docker. Les images spécifiques à la ML sont souvent disponibles sur des registres tels que NVIDIA NGC, qui sont préconfigurés avec des pilotes de GPU et des frameworks ML.
  • Conteneur Docker: Un conteneur est une instance exécutable d'une image Docker. Lorsque vous exécutez une image, elle devient un conteneur, qui est un processus isolé s'exécutant sur le noyau de la machine hôte. Plusieurs conteneurs peuvent fonctionner sur la même machine et partager le noyau du système d'exploitation avec d'autres conteneurs, chacun s'exécutant en tant que processus isolé dans l'espace utilisateur. Cela les rend extrêmement efficaces par rapport à la virtualisation traditionnelle. La technologie est normalisée par des organisations telles que l'Open Container Initiative (OCI).

Applications IA/ML dans le monde réel

Docker simplifie l'ensemble du cycle de vie d'un modèle d'IA, de l'expérimentation à la production.

  1. Déploiement de modèles de vision par ordinateur à la périphérie : un modèle Ultralytics YOLO11 entraîné pour la détection d'objets peut être intégré dans un conteneur Docker. Ce conteneur comprend les poids du modèle, le script d'inférence et toutes les dépendances nécessaires, comme les versions spécifiques de la bibliothèque CUDA. Ce conteneur unique peut ensuite être déployé de manière cohérente sur différentes plateformes, qu'il s'agisse d'un puissant GPU en nuage ou d'un appareil Edge AI aux ressources limitées, tel qu'un NVIDIA Jetson. Cela permet de s'assurer que le modèle fonctionne comme prévu, ce qui est essentiel pour l'inférence en temps réel dans des applications telles que la surveillance intelligente.
  2. Création d'environnements de recherche reproductibles : Un scientifique des données qui développe un nouvel algorithme de segmentation d'images peut créer un conteneur Docker qui verrouille des versions spécifiques de Python, TensorFlow et d'autres bibliothèques. Cet environnement conteneurisé peut être partagé avec des collaborateurs ou publié avec un article de recherche, ce qui permet à d'autres de reproduire parfaitement l'environnement de formation et de vérifier les résultats. Des plateformes comme Ultralytics HUB s'intègrent aux technologies de conteneurs pour rationaliser davantage ce processus.

Comparaison avec des termes similaires

Bien que Docker soit au cœur de la conteneurisation, il est souvent utilisé avec d'autres technologies :

  • Conteneurisation: Il s'agit du concept général d'empaquetage des logiciels dans des conteneurs. Docker est la plateforme la plus populaire pour la conteneurisation, fournissant les outils pour construire, expédier et exécuter des conteneurs.
  • Kubernetes: Alors que Docker gère des conteneurs individuels sur un seul hôte, Kubernetes est une plateforme d'orchestration de conteneurs. Elle automatise le déploiement, la mise à l'échelle et la gestion des applications conteneurisées sur des grappes de machines. Pour Docker, il s'agit de créer des conteneurs d'expédition et pour Kubernetes, de gérer les navires et les ports. Pour en savoir plus, consultez le site officiel de Kubernetes.
  • Machines virtuelles (VM): Les VM assurent l'isolation en émulant des systèmes matériels entiers, y compris un système d'exploitation invité. Les conteneurs, gérés par Docker, virtualisent le système d'exploitation en partageant le noyau hôte. Les conteneurs sont donc beaucoup plus légers, plus rapides et plus économes en ressources que les machines virtuelles, même si ces dernières offrent une meilleure isolation. Le site officiel de Docker fournit une excellente comparaison.

En tirant parti de Docker, les praticiens de l'IA et de la vision par ordinateur (VA) peuvent améliorer considérablement l'efficacité du flux de travail, la collaboration et la fiabilité des modèles déployés. Pour un aperçu général de l'objectif de Docker, des ressources telles que l'explication de Docker d'OpenSource.com offrent des introductions accessibles. Cette technologie est un outil clé pour une large gamme d'options de déploiement de modèles.

Rejoindre la communauté Ultralytics

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

S'inscrire
Lien copié dans le presse-papiers