Scalability
Explore l’importance de l’évolutivité en IA. Découvre comment Ultralytics YOLO26 et la plateforme Ultralytics permettent un déploiement efficace et performant des modèles.
L’évolutivité désigne la capacité d’un système, d’un réseau ou d’un processus à gérer une charge de travail croissante en ajoutant des ressources. Dans le contexte de l’intelligence artificielle (AI) et de l’apprentissage automatique (ML), l’évolutivité décrit la capacité d’un modèle ou d’une infrastructure à maintenir ses niveaux de performance lorsque la demande augmente. Cette demande se manifeste généralement par des jeux de données plus volumineux pendant l’entraînement, un trafic utilisateur plus élevé lors de l’inférence ou une complexité accrue des tâches de calcul. Une architecture évolutive permet une extension fluide, qu’il s’agisse de déployer un modèle de vision par ordinateur sur un seul appareil embarqué ou de traiter des millions de requêtes API via des clusters cloud, tout en garantissant que la latence d’inférence reste faible, même sous une charge importante.
L’importance de l’évolutivité dans l’IA#
Concevoir pour l’évolutivité est un élément essentiel de la réussite des opérations d’apprentissage automatique (MLOps). Un modèle qui fonctionne parfaitement dans un environnement de recherche contrôlé peut échouer lorsqu’il est exposé aux flux de données à haut débit rencontrés en production. La gestion efficace des mégadonnées nécessite des systèmes capables de passer à l’échelle horizontalement (en ajoutant des machines à un cluster) ou verticalement (en ajoutant davantage de puissance, comme de la RAM ou des GPU, aux machines existantes).
Les principaux avantages des systèmes d’IA évolutifs sont les suivants :
- Fiabilité : Les systèmes évolutifs garantissent une disponibilité constante du service lors de pics de trafic inattendus, évitant ainsi les pannes dans les applications critiques.
- Rentabilité : La mise à l’échelle dynamique permet de réduire les ressources pendant les périodes de faible utilisation, une fonctionnalité souvent gérée par des plateformes d’informatique en nuage comme AWS ou Google Cloud.
- Préparation à l’avenir : Une infrastructure évolutive prend en charge des algorithmes plus récents et plus complexes, tels que les transformers de vision (ViT), sans nécessiter une refonte complète de l’écosystème matériel.
Stratégies pour atteindre l’évolutivité#
La création de solutions d’IA évolutives implique d’optimiser à la fois l’architecture du modèle et l’infrastructure de déploiement.
- Entraînement distribué : Lorsque les jeux de données d’entraînement deviennent trop volumineux pour un seul processeur, l’entraînement distribué répartit la charge de travail entre plusieurs unités de traitement graphique (GPUs). Des frameworks comme PyTorch Distributed permettent aux développeurs de paralléliser les calculs, réduisant considérablement le temps nécessaire à l’entraînement des modèles fondamentaux. Des outils comme l’Ultralytics Platform simplifient ce processus en gérant automatiquement les ressources d’entraînement cloud.
- Architectures de modèles efficaces : Le choix de l’architecture de modèle appropriée est essentiel pour le débit. Le dernier modèle Ultralytics YOLO26 est conçu pour être plus petit et plus rapide que ses prédécesseurs, ce qui le rend nativement évolutif sur des équipements variés, des appareils d’IA en périphérie aux vastes parcs de serveurs.
- Conteneurisation et orchestration : Le fait de conditionner les applications avec Docker garantit leur exécution cohérente dans différents environnements. Pour gérer de grands clusters de conteneurs, Kubernetes automatise le déploiement, la mise à l’échelle et la gestion des applications conteneurisées.
- Optimisation des modèles : Des techniques comme la quantification des modèles et l’élagage réduisent l’empreinte mémoire et le coût de calcul d’un modèle. Des outils comme NVIDIA TensorRT peuvent accélérer davantage l’inférence, ce qui permet d’obtenir un débit supérieur sur le matériel existant.
Exemple de code : inférence par lots évolutive#
Une méthode efficace pour améliorer l’évolutivité lors de l’inférence consiste à traiter les entrées par lots plutôt que séquentiellement. Cela optimise l’utilisation du GPU et augmente le débit global.
from ultralytics import YOLO
# Load a scalable YOLO26 model (smaller 'n' version for speed)
model = YOLO("yolo26n.pt")
# Define a batch of images (URLs or local paths)
# Processing multiple images at once leverages parallel computation
batch_images = ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]
# Run inference on the batch
results = model(batch_images)
# Print the number of detections for the first image
print(f"Detected {len(results[0].boxes)} objects in the first image.")Applications concrètes#
L’évolutivité permet aux technologies d’IA de passer de la recherche théorique à des outils industriels d’envergure mondiale.
- Fabrication intelligente : Dans le domaine de l’IA dans l’industrie manufacturière, les systèmes d’inspection automatisés doivent analyser des milliers de composants par heure sur des lignes d’assemblage à grande vitesse. Un système évolutif de détection d’objets garantit que, lorsque les cadences de production augmentent, le processus de contrôle qualité conserve une précision élevée sans devenir un goulot d’étranglement.
- Moteurs de recommandation dans le commerce de détail : Les grandes plateformes de commerce électronique utilisent des systèmes de recommandation pour proposer instantanément des suggestions de produits personnalisées à des millions d’utilisateurs. Une infrastructure évolutive permet à ces plateformes de gérer des événements massifs comme le Black Friday, lors desquels le trafic peut être multiplié par 100, en provisionnant dynamiquement des nœuds de serveur supplémentaires via Microsoft Azure ou des fournisseurs similaires.
Évolutivité et concepts associés#
Bien qu’ils soient souvent utilisés indifféremment, l’évolutivité se distingue de la performance et de l’efficacité.
- Évolutivité et performance : La performance désigne généralement la rapidité ou la précision d’un système à un instant donné (par exemple, le nombre d’images par seconde). L’évolutivité décrit la capacité du système à maintenir cette performance lorsque la charge de travail augmente.
- Évolutivité et efficacité : L’efficacité mesure les ressources utilisées pour accomplir une tâche donnée (par exemple, la consommation d’énergie par inférence). Un système peut être efficace sans être évolutif (s’il ne peut pas gérer des tâches parallèles), ou évolutif sans être efficace (s’il utilise des ressources excessives pour gérer sa croissance).
- Évolutivité et flexibilité : La flexibilité permet à un système de gérer différents types de tâches, comme YOLO11 qui prend en charge la détection, la segmentation et l’estimation de pose. L’évolutivité se concentre spécifiquement sur la gestion d’une quantité plus importante d’une même tâche.









