Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Conteneurisation

Découvrez la puissance de la conteneurisation pour les projets d'IA/ML. Rationalisez les flux de travail, assurez la cohérence et évoluez efficacement grâce à des outils de pointe.

La conteneurisation est un processus de déploiement de logiciels qui regroupe le code d'une application avec tous les fichiers et bibliothèques dont elle a besoin pour fonctionner sur n'importe quelle infrastructure. dont elle a besoin pour fonctionner sur n'importe quelle infrastructure. En encapsulant le logiciel et ses dépendances dans une seule unité légère, appelée conteneur, les développeurs s'assurent que l'application fonctionne de manière cohérente, quelle que soit l'infrastructure. légère, appelée conteneur, les développeurs s'assurent que l'application fonctionne de manière cohérente, quel que soit l'environnement informatique. de l'environnement informatique. Dans le domaine en pleine évolution du l'apprentissage automatique (ML), la conteneurisation est est devenue la pierre angulaire des stratégies MLOps modernes. Elle résout le fameux problème du "ça marche sur ma machine" en isolant l'environnement d'exécution. Elle résout le fameux problème du "ça marche sur ma machine" en isolant l'environnement d'exécution, en rendant portables les flux de travail complexes de flux de travail complexes de vision par ordinateur (CV) portables, reproductibles et facilement extensibles, reproductibles et facilement extensibles.

Le rôle de la conteneurisation dans l'IA

Pour les data scientists et les ingénieurs ML, la gestion des dépendances telles que les versions spécifiques de Python, PyTorchet les CUDA peuvent s'avérer difficiles. La conteneurisation permet de résoudre ce problème en créant un environnement immuable.

  • Portabilité : Un conteneur YOLO11 conteneurisé peut passer en toute transparence de l'ordinateur portable local d'un développeur à un serveur haute performance sur site ou à une instance de nuage public sans nécessiter de reconfiguration. sans nécessiter de reconfiguration. Cette flexibilité est essentielle pour les stratégies hybrides d'informatique en nuage. Cette flexibilité est essentielle pour les stratégies d'informatique dématérialisée hybride.
  • Efficacité : Contrairement aux machines virtuelles (VM) traditionnelles, qui émulent une pile matérielle et un système d'exploitation complets, les conteneurs partagent le noyau de l'OS du système hôte. système d'exploitation, les conteneurs partagent le noyau de l'OS du système hôte. Ils sont donc beaucoup plus légers et plus rapides à démarrer, ce qui optimise l'utilisation des ressources pour les utilisateurs. plus légers et plus rapides à démarrer, ce qui optimise l'utilisation des ressources pour le service de modèles. le service de modèles.
  • Évolutivité : Les conteneurs sont facilement répliqués. Lorsque le trafic d'une application monte en flèche, les outils d'orchestration d'orchestration peuvent instantanément activer des instances de conteneurs supplémentaires pour gérer la charge, en garantissant une faible latence d'inférence. latence de l'inférence.

Technologies et concepts de base

Pour comprendre la conteneurisation, il faut se familiariser avec quelques technologies clés qui normalisent la façon dont les conteneurs sont construits et gérés. de construction et de gestion des conteneurs.

  • Docker: la plateforme la plus largement adoptée pour le développement, l'expédition et l'exécution d'applications dans des conteneurs. Ultralytics fournit un Guide de démarrage rapide de Docker pour aider les utilisateurs à déployer efficacement les modèles de détection d'objets. modèles de détection d'objets efficacement. Docker adhère aux normes industrielles définies par l'Open Container Initiative (OCI). l 'Open Container Initiative (OCI), ce qui garantit la compatibilité entre différentes plateformes. plateformes.
  • Kubernetes: Alors que Docker gère des conteneurs individuels, Kubernetes est un système d'orchestration permettant d'automatiser le déploiement, la mise à l'échelle et la gestion d'applications conteneurisées. applications conteneurisées. Il est souvent utilisé pour gérer de grandes grappes de GPU GPU pour l'entraînement l 'entraînement distribué.
  • Registres de conteneurs : Il s'agit de référentiels dans lesquels les images de conteneurs sont stockées et partagées. Les exemples les plus Docker Hub et le catalogueNVIDIA NGC, qui héberge des logiciels d'NVIDIA optimisés par logiciel d'IA GPU.

Conteneurisation et machines virtuelles

Il est important de faire la distinction entre les conteneurs et les les machines virtuelles. Une VM exécute un système d'exploitation système d'exploitation invité complet avec un accès virtuel aux ressources de l'hôte par l'intermédiaire d'un hyperviseur. Cela crée un haut niveau d'isolation d'isolation, mais entraîne des frais généraux importants. À l'inverse, les conteneurs virtualisent le système d'exploitation, ce qui permet à plusieurs instances isolées de l'espace utilisateur de fonctionner sur un seul noyau. plusieurs instances isolées de l'espace utilisateur de s'exécuter sur un seul noyau. Cette distinction fait des conteneurs le choix privilégié pour les microservices et les applications Edge AI. pour les microservices et les applications d'intelligence artificielle où les ressources sont limitées.

Applications concrètes

La conteneurisation est appliquée à différentes étapes du cycle de vie de l'IA, de la recherche à la production.

1. Environnements de recherche reproductibles

Dans la recherche universitaire et industrielle, la reproduction des résultats est essentielle. En définissant l'environnement exact dans une image les chercheurs s'assurent que leurs expériences de formation de modèles peuvent être reproduites par n'importe qui, n'importe qui, n'importe où. Cela permet d'éliminer les divergences causées par des versions de bibliothèques ou des configurations de systèmes différentes. Par exemple, une équipe équipe travaillant sur la segmentation d'images peut partager une une image Docker contenant leurs outils de traitement de données et leurs architectures de modèles spécifiques, garantissant ainsi des résultats cohérents. résultats.

2. Déploiement en périphérie

Le déploiement de modèles d'apprentissage profond sur des appareils de pointe, tels que le NVIDIA Jetson, nécessite des environnements optimisés. Les conteneurs permettent aux développeurs d'emballer un modèle comme YOLO11 avec seulement les dépendances nécessaires à l'exécution. Ce paquet peut être déployé sur des milliers d'appareils distants, mettant à jour les capacités de détection d'objets des caméras de sécurité. les capacités de détection d'objets des caméras de sécurité ou des robots autonomes sans intervention manuelle. Pour en savoir plus, consultez la rubrique cas d'utilisation des conteneurs AWS.

Exemple : Script d'inférence prêt pour le conteneur

Lors de la conteneurisation d'une application, vous créez généralement un script qui sert de point d'entrée. Le code Python suivant démontre un flux de travail d'inférence simple en utilisant le script ultralytics paquet. Ce script pourrait être le processus principal s'exécutant à l'intérieur d'un conteneur Docker conçu pour inférence en temps réel.

from ultralytics import YOLO

# Load the YOLO11 model (ensure weights are present in the container)
model = YOLO("yolo11n.pt")

# Perform inference on an image URL
# In a container, this might process incoming video streams or API requests
results = model.predict(source="https://ultralytics.com/images/bus.jpg", save=True)

# Print detection results to verify operation
for result in results:
    print(f"Detected {len(result.boxes)} objects in the frame.")

Ce script démontre efficacement à quel point l'empreinte du code peut être minimale lorsque les dépendances sont gérées par l'environnement du conteneur. l'environnement du conteneur. En tirant parti des les poids des modèles inclus dans l'image, le conteneur devient une unité d'intelligence autonome prête à être déployée. Pour en savoir plus sur les bases des conteneurs, la documentation sur les conteneurs de documentation de Red Hat sur les conteneurs offre d'excellents d'excellents documents d'introduction.

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant