Scalabilité
Découvrez l'importance de l'évolutivité dans l'IA. Découvrez comment Ultralytics et la 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 (IA) 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 à mesure que la demande augmente. Cette demande se manifeste généralement
par des ensembles de données plus volumineux pendant la formation, un trafic utilisateur plus important pendant l'inférence ou une complexité accrue des
tâches de calcul. Une architecture évolutive permet une expansion transparente, qu'il s'agisse de déployer un
modèle de vision par ordinateur sur un seul appareil intégré
ou de traiter des millions de requêtes API via des clusters cloud, garantissant ainsi que la
latence d'inférence reste faible même en cas de charge importante
.
L'importance de l'évolutivité dans l'IA
La conception axée sur l'évolutivité est un élément essentiel à 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 à haute vitesse
que l'on trouve en production. La gestion efficace du
Big Data nécessite des systèmes capables d'évoluer horizontalement
(en ajoutant plus de machines à un cluster) ou verticalement (en ajoutant plus 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 imprévus,
empêchant ainsi les plantages des applications critiques.
-
Rentabilité : le dimensionnement dynamique permet de réduire les ressources pendant les périodes de faible utilisation, une fonctionnalité
souvent gérée par les plateformes de cloud computing telles que
AWS ou Google .
-
Pérennité : une infrastructure évolutive s'adapte aux algorithmes plus récents et plus complexes, tels que les
transformateurs de vision (ViT), sans
nécessiter une refonte complète de l'écosystème matériel.
Stratégies de mise à l'échelle
Pour créer des solutions d'IA évolutives, il faut optimiser à la fois l'architecture du modèle et l'infrastructure de déploiement.
-
Formation distribuée : lorsque les ensembles de données de formation deviennent trop volumineux pour un seul processeur,
la formation distribuée répartit la charge de travail
entre plusieurs
processeurs graphiques (GPU).
Des frameworks tels que PyTorch permettent aux
développeurs de paralléliser les calculs, ce qui réduit considérablement le temps nécessaire à la formation des modèles de base. Des outils
tels que la Ultralytics simplifient ce processus en gérant automatiquement les ressources de formation dans le cloud
.
-
Architectures de modèles efficaces : le choix de l'architecture de modèle appropriée est crucial pour le débit.
Le dernier Ultralytics est conçu pour être plus petit
et plus rapide que ses prédécesseurs, ce qui le rend nativement évolutif sur divers matériels, des
appareils IA de pointe aux immenses fermes de serveurs.
-
Conteneurisation et orchestration : le packaging des applications avec
Docker garantit leur fonctionnement cohérent 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 telles que la
quantification et l'élagage des modèles permettent de réduire l'empreinte mémoire et le coût de calcul
d'un modèle. Des outils tels que
NVIDIA NVIDIA TensorRT peuvent encore
accélérer les vitesses d'inférence, permettant ainsi un débit plus élevé sur le matériel existant.
Exemple de code : inférence par lots évolutive
Une méthode efficace pour améliorer l'évolutivité pendant l'inférence consiste à traiter les entrées par lots plutôt que de manière séquentielle.
Cela permet d'optimiser GPU et d'augmenter 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
La scalabilité permet aux technologies d'IA de passer de la recherche théorique à des outils industriels mondiaux.
-
Fabrication intelligente : dans le domaine de l'
IA dans la fabrication, les systèmes d'inspection automatisés
doivent analyser des milliers de composants par heure sur des chaînes de montage à grande vitesse. Un système de détection d'objets évolutif
garantit que, à mesure que
la vitesse de production augmente, le processus de contrôle qualité maintient une grande
précision sans devenir un goulot d'étranglement.
-
Moteurs de recommandation dans le commerce de détail : les principales plateformes de commerce électronique utilisent des
systèmes de recommandation pour proposer instantanément des millions de
suggestions de produits personnalisées. Une infrastructure évolutive permet à ces plateformes de gérer des événements de grande envergure
comme le Black Friday, où le trafic peut être multiplié par 100, en provisionnant dynamiquement des nœuds de serveurs supplémentaires via
Microsoft ou des fournisseurs similaires.
Scalabilité vs concepts connexes
Bien qu'elles soient souvent utilisées de manière interchangeable, la scalabilité se distingue de la performance et de l'efficacité.
-
Évolutivité vs performance :
La performance fait généralement référence à la rapidité
ou à la précision d'un système à un moment 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é vs efficacité : l'efficacité mesure les ressources utilisées pour accomplir une tâche spécifique
(par exemple, la consommation d'énergie par inférence). Un système peut être efficace mais non évolutif (s'il ne peut pas gérer des tâches parallèles
), ou évolutif mais inefficace (s'il utilise des ressources excessives pour gérer la croissance).
-
Évolutivité vs flexibilité : la flexibilité permet à un système de gérer différents types de
tâches, telles que YOLO11 la détection, la segmentation et l'
estimation de la pose. L'évolutivité se concentre spécifiquement sur la gestion d'un plus grand nombre de tâches identiques.