Conteneurisation à l'aide de Docker pour rationaliser le déploiement des modèles

Abirami Vina

5 minutes de lecture

5 février 2025

Découvrez comment l'utilisation de Docker pour la conteneurisation rend le déploiement de modèles de vision artificielle comme Ultralytics YOLO11 plus efficace et plus simple.

Le processus d'élaboration d'une solution de vision par ordinateur comporte plus d'étapes que la simple formation et le test d'un modèle. En fait, l'un des aspects les plus passionnants de la création de modèles de pointe est de les voir avoir un impact dans des environnements réels. L'utilisation de l'IA pour résoudre des problèmes conduit naturellement au déploiement en production des modèles de vision par ordinateur que vous développez.

Le déploiement d'un modèle comporte plusieurs étapes, notamment l'optimisation des modèles en termes de fiabilité, d'évolutivité et de performance dans diverses conditions. Un processus de déploiement bien structuré permet de combler le fossé entre le développement d'un modèle et le moment où le modèle a un impact significatif qui fait la différence. 

Souvent, lors du déploiement de modèles de vision artificielle comme Ultralytics YOLO11, il existe plusieurs techniques et options de déploiement que vous pouvez choisir, et cela dépend de l'application spécifique que vous construisez. Par exemple, des techniques telles que la conteneurisation peuvent simplifier le processus de déploiement. 

La conteneurisation permet de regrouper un modèle et ses dépendances, comme les bibliothèques, les frameworks et les configurations, dans une unité unique et autonome appelée conteneur. L'un des moyens les plus efficaces et les plus populaires d'y parvenir est d'utiliser Docker, une plateforme open-source qui facilite la création, l'expédition et l'exécution d'applications conteneurisées.

Dans cet article, nous allons explorer comment la conteneurisation et Docker rationalisent le déploiement de modèles, garantissant une évolutivité et une efficacité transparentes dans les applications Vision AI du monde réel.

Qu'est-ce que le déploiement de modèles ?

Le déploiement du modèle est l'étape finale du cycle de vie de l'apprentissage automatique, au cours de laquelle le modèle formé est introduit dans un environnement de production afin d'effectuer des prédictions dans le monde réel. Un déploiement réussi est un élément clé pour que le modèle fonctionne de manière fiable dans des conditions pratiques. 

Prenons l'exemple d'un modèle de vision par ordinateur conçu pour identifier les plaques d'immatriculation dans le cadre d'un système de péage automatisé. Alors qu'il peut atteindre une grande précision dans un environnement contrôlé avec des ensembles de données bien étiquetés, son déploiement sur des caméras en bord de route peut entraîner des problèmes de latence dus à des facteurs tels que le traitement d'images à haute résolution, les retards de réseau, les limitations matérielles et les contraintes d'inférence en temps réel. 

La lenteur des prévisions peut entraîner des retards dans le traitement des péages, des encombrements, voire des détections manquées. Des stratégies appropriées de déploiement de modèles peuvent contribuer à réduire les temps de latence, à améliorer l'efficacité et à assurer des performances fiables dans les applications du monde réel.

__wf_reserved_inherit
Fig. 1. Détection des plaques d'immatriculation à l'aide de YOLO11.

En outre, plusieurs considérations doivent être prises en compte lors du déploiement des modèles. L'un d'entre eux est l'évolutivité : les modèles donnent de bons résultats pendant la formation, mais peuvent avoir du mal à traiter des données à grande échelle.

Une autre raison est l'inadéquation de l'environnement, comme les différences matérielles, lorsqu'un modèle est entraîné sur des GPU (unités de traitement graphique) très performants mais déployé sur des appareils dont la puissance de traitement est limitée. Ces incohérences dans le déploiement peuvent entraîner un comportement imprévu du modèle. Des solutions avancées telles que la conteneurisation peuvent être utilisées pour relever ces défis.

Conteneurisation

La conteneurisation peut être comparée à l'emballage de votre boîte à lunch, qui contient tout ce dont vous avez besoin pour un repas, comme la nourriture, les couverts et les condiments. Vous pouvez manger n'importe où sans vous soucier de trouver une cuisine ou des ustensiles spécifiques. 

De même, la conteneurisation regroupe un modèle avec toutes ses dépendances, telles que les bibliothèques, les cadres et les configurations, dans une unité unique appelée conteneur. Ces conteneurs garantissent l'exécution cohérente du modèle en fournissant les mêmes dépendances sur tous les systèmes, quel que soit l'environnement sous-jacent. Contrairement aux machines virtuelles, qui transportent des systèmes d'exploitation entiers, les conteneurs sont légers et portables, ce qui en fait une alternative efficace.

__wf_reserved_inherit
Fig. 2. Vue d'ensemble de la conteneurisation.

Voici quelques-uns des principaux avantages de la conteneurisation :

  • Contrôle des versions : Avec la conteneurisation, différentes versions d'un modèle ou d'une pile logicielle peuvent coexister, ce qui permet d'effectuer facilement des retours en arrière et des mises à jour sans perturber les systèmes de production.
  • Sécurité : Les conteneurs isolent les applications du système sous-jacent, réduisant ainsi le risque de conflits, de vulnérabilités et d'accès non autorisés.
  • Déploiement rapide : Les images de conteneurs préconfigurées permettent des déploiements rapides et reproductibles, ce qui réduit le temps de configuration et minimise les erreurs de déploiement.

Docker : simplifier la conteneurisation

‍Sila conteneurisation est un excellent moyen d'exécuter des applications dans des environnements isolés, sa mise en place peut s'avérer compliquée. C'est là que Docker entre en jeu. Docker est une plateforme open-source qui simplifie la construction, le déploiement et la gestion des applications conteneurisées.

Il fournit un environnement cohérent et isolé ainsi que les outils et les cadres nécessaires pour tester le modèle. En particulier, Docker est connu pour son solide écosystème et sa facilité d'utilisation. Il facilite le déploiement des modèles d'IA en simplifiant le processus, en fonctionnant sans problème avec les plateformes cloud et en permettant aux modèles d'IA de s'exécuter efficacement sur les appareils périphériques pour des résultats plus rapides.

De nombreux secteurs l'utilisent activement pour déployer et gérer efficacement des applications conteneurisées.Le déploiement de modèles basés sur Docker implique généralement trois composants principaux :

  • Dockerfile : Un fichier de configuration textuel qui sert de plan directeur pour la création d'une image Docker. Il contient toutes les instructions nécessaires, y compris l'image de base, les dépendances requises, les paramètres d'environnement et les commandes pour exécuter le modèle.
  • Images Docker : Fichiers de paquets préconfigurés qui incluent tout ce qui est nécessaire à l'exécution du modèle - comme le code, les bibliothèques, les environnements d'exécution et les dépendances. Ces images garantissent que le modèle s'exécute avec la même configuration sur n'importe quel système.
  • Conteneurs Docker : Instances d'exécution d'images Docker qui fournissent un environnement isolé et sécurisé pour l'exécution du modèle. Dans cet environnement, le modèle peut être entraîné, testé et affiné sans interférer avec d'autres applications ou le système hôte.
__wf_reserved_inherit
Fig. 3. Comprendre les composants clés de Docker.

Exploration d'une application de vision par ordinateur à l'aide de Docker

Supposons qu'une ville souhaite déployer un système de surveillance du trafic utilisant la vision par ordinateur pour détecter et classer les véhicules en temps réel. Le déploiement de ce système sur plusieurs sites, chacun avec un matériel et des conditions de réseau différents, peut s'avérer difficile. Les problèmes de compatibilité, les conflits de dépendance et les environnements incohérents peuvent entraîner un manque de fiabilité des performances.

En utilisant Docker, les développeurs peuvent regrouper l'ensemble du modèle de vision par ordinateur, ainsi que ses dépendances (telles que les cadres d'IA comme TensorFlow et les scripts personnalisés), dans un conteneur. Cela permet de s'assurer que le modèle fonctionne de manière cohérente dans différents environnements, qu'il s'agisse de développement local, de serveurs basés sur le cloud ou même d'appareils périphériques installés sur des caméras de circulation.

__wf_reserved_inherit
Fig. 4. Comment fonctionne Docker.

Par exemple, en déployant des modèles de vision artificielle Dockerisés à plusieurs carrefours, la ville peut analyser le flux de circulation, détecter les infractions et optimiser les feux de circulation. Comme Docker facilite un environnement standardisé sur tous les sites, la maintenance est plus facile, les mises à jour sont transparentes et les performances restent constantes.

Déployer YOLO11 avec Docker

YOLO11, avec sa capacité à effectuer des tâches complexes de vision par ordinateur, peut être utilisé dans diverses industries, telles que la fabrication, les soins de santé, la conduite autonome et l'agriculture. 

Par exemple, YOLO11 peut traiter les flux vidéo dans les applications de fitness pour suivre des exercices comme les pompes en utilisant l'estimation de la pose. En détectant les mouvements du corps et en comptant les répétitions en temps réel, il contribue à améliorer le suivi de l'entraînement et l'analyse des performances.

__wf_reserved_inherit
Fig. 5. Suivi d'une séance d'entraînement à l'aide de YOLO11.

Si nous voulons déployer un tel modèle dans des applications réelles, nous devons gérer les dépendances, optimiser le matériel et garantir des performances cohérentes dans différents environnements. L'utilisation de Docker simplifie ce processus en empaquetant YOLO11 avec toutes les bibliothèques et configurations nécessaires, ce qui rend le déploiement plus efficace, évolutif et fiable.

Voici un aperçu des avantages du déploiement de YOLO11 à l'aide de Docker:

  • Maintenance simplifiée: Docker simplifie le processus de mise à jour et de maintenance de YOLO11 et de ses dépendances. Les mises à jour peuvent être appliquées à l'image du conteneur sans affecter le système hôte, ce qui garantit une gestion fluide et efficace du modèle.
  • Collaboration simplifiée: Les développeurs et les chercheurs peuvent facilement partager des conteneurs Docker préconfigurés, ce qui permet aux équipes de travailler avec le même environnement et d'éviter les problèmes de compatibilité.
  • Efficacité des ressources: Contrairement aux machines virtuelles traditionnelles, les conteneurs Docker partagent le système d'exploitation hôte, ce qui réduit les frais généraux et améliore l'utilisation des ressources, ce qui est crucial pour les tâches d'inférence en temps réel.

Applications YOLO11 pouvant être déployées à l'aide de Docker

Voyons quelques exemples d'applications de vision par ordinateur qui peuvent être créées à l'aide de YOLO11 et de Docker. 

Surveillance du trafic à l'aide de YOLO11

Précédemment, nous avons parlé de la surveillance du trafic à l'aide de la vision par ordinateur. Il est intéressant de noter que la prise en charge du suivi d'objets par YOLO11 peut contribuer à la mise en place d'un système complet de gestion du trafic. Comment cela fonctionne-t-il ?

YOLO11 peut analyser les flux vidéo en direct des caméras de circulation pour détecter et suivre les véhicules en temps réel. En identifiant en permanence la position, la vitesse et les mouvements des véhicules, le système peut surveiller les niveaux d'encombrement, détecter les infractions au code de la route (comme le franchissement de feux rouges ou les virages illégaux) et optimiser les feux de signalisation sur la base de données en temps réel.

En outre, le déploiement de YOLO11 sur des appareils périphériques ou des plateformes basées sur le cloud à l'aide de Docker garantit un traitement et une évolutivité efficaces, ce qui en fait un outil précieux pour la gestion du trafic dans les villes intelligentes.

__wf_reserved_inherit
Fig. 6. Suivi et comptage de véhicules à l'aide de YOLO11.

Amélioration de la physiothérapie avec YOLO11

En matière de soins de santé, la physiothérapie est essentielle à la rééducation, et une posture et des mouvements corrects sont indispensables à une guérison réussie. Le retour d'information en temps réel d'un système de surveillance des patients basé sur la vision peut aider les thérapeutes à repérer des problèmes tels que des angles d'articulation incorrects ou des déséquilibres musculaires. 

Par exemple, si un patient effectue une élévation des épaules mais ne lève pas son bras à la bonne hauteur ou compense par une mauvaise posture, le système peut détecter ces erreurs et fournir des corrections instantanées. Les thérapeutes peuvent ainsi ajuster les traitements en temps réel.

Les capacités d'estimation de la pose de YOLO11 peuvent être utilisées pour détecter les points clés du corps et analyser les mouvements des articulations. Il peut traiter des flux vidéo en direct pour fournir un retour d'information instantané, aidant ainsi les thérapeutes à corriger la posture, à améliorer la précision des mouvements et à prévenir les blessures. Il est ainsi plus facile de créer des plans de traitement personnalisés en fonction des progrès de chaque patient.

__wf_reserved_inherit
Fig. 7. Exemple de suivi de la physiothérapie avec YOLO11.

En ce qui concerne le déploiement de ce type de solution, l'utilisation de Docker peut garantir un fonctionnement sans heurts dans différents environnements, que ce soit dans les cliniques ou pour le suivi des patients à distance. Docker simplifie le déploiement, améliore l'évolutivité et maintient la cohérence du système, ce qui rend les outils de physiothérapie alimentés par l'IA plus fiables et plus accessibles.

Principaux enseignements

Le déploiement d'un modèle de vision par ordinateur est une étape cruciale qui permet de le faire passer du stade du développement à celui de l'utilisation dans le monde réel. Un processus de déploiement harmonieux permet de s'assurer que le modèle formé fonctionne de manière fiable dans les applications pratiques. Des outils tels que Docker et la conteneurisation ont facilité ce processus en éliminant de nombreux défis traditionnels. 

Grâce à leur légèreté, leur portabilité et leur évolutivité, ces technologies modifient la manière dont les modèles tels que YOLO11 sont construits et déployés. En utilisant la conteneurisation, les entreprises peuvent gagner du temps, réduire les coûts et améliorer l'efficacité tout en s'assurant que les modèles fonctionnent de manière cohérente dans différents environnements.

Rejoignez notre communauté et consultez notre dépôt GitHub pour en savoir plus sur l'IA. Découvrez diverses applications de la vision par ordinateur dans le domaine de la santé et de l 'IA dans le secteur de la fabrication. Explorez nos options de licence yolo pour commencer à utiliser Vision AI.

Construisons ensemble le futur
de l'IA !

Commencez votre voyage avec l'avenir de l'apprentissage automatique

Commencer gratuitement
Lien copié dans le presse-papiers