FLOPs
Apprends comment les FLOPs mesurent la complexité computationnelle des modèles d'IA. Découvre comment calculer les FLOPs pour Ultralytics YOLO26 et optimiser les performances pour l'Edge AI.
Les FLOPs, ou Floating Point Operations, constituent une métrique standard utilisée pour mesurer la complexité computationnelle d'un modèle d'machine learning. Cette mesure quantifie précisément le nombre de calculs mathématiques (principalement des additions et des multiplications impliquant des nombres décimaux) qu'un neural network doit effectuer pour traiter une seule entrée, telle qu'une image ou une phrase. Dans l'univers du deep learning, les FLOPs servent d'étalon théorique pour estimer à quel point un modèle est « lourd » ou coûteux en ressources de calcul. Un nombre élevé de FLOPs suggère généralement qu'un modèle est plus complexe et nécessite davantage de puissance de traitement et d'énergie pour s'exécuter, tandis qu'un nombre plus faible indique une architecture légère conçue pour l'efficacité.
Le rôle des FLOPs dans la sélection de modèles#
Lors du développement d'applications d'artificial intelligence, les ingénieurs font souvent face à un compromis entre précision et vitesse. Les FLOPs agissent comme un indicateur indépendant du matériel pour l'inference latency, permettant aux développeurs de comparer différentes architectures sans avoir à les évaluer sur chaque appareil possible. Cette métrique est essentielle pour choisir le bon modèle pour des scénarios de déploiement spécifiques. Par exemple, un chercheur effectuant des expériences sur de puissants serveurs de cloud computing peut privilégier la précision à l'efficacité en utilisant des modèles dotés d'un nombre élevé de FLOPs. À l'inverse, un ingénieur concevant des applications pour des appareils d'edge AI doit privilégier un nombre faible de FLOPs pour garantir un fonctionnement fluide dans le respect de limites strictes de puissance et de température.
Applications concrètes#
Les implications pratiques des FLOPs sont évidentes dans diverses industries où les ressources computationnelles sont un facteur critique.
- Drones autonomes : Dans des domaines tels que l'agricultural robotics, les drones équipés de caméras analysent la santé des cultures en temps réel. Les batteries des drones étant limitées, chaque fraction de consommation d'énergie compte. Les ingénieurs sélectionnent spécifiquement des modèles à faibles FLOPs, tels que les variantes Nano de YOLO26, pour minimiser la sollicitation du processeur embarqué et ainsi maximiser le temps de vol et le rayon d'action opérationnel.
- Réalité augmentée mobile : Les applications pour smartphones qui utilisent la facial recognition pour la sécurité ou appliquent des filtres de RA reposent fortement sur un traitement efficace. Ces applications doivent fonctionner sans provoquer de surchauffe ni de ralentissement de l'appareil. Les développeurs utilisent les estimations de FLOPs pour sélectionner des modèles légers qui s'intègrent parfaitement dans les capacités des chipsets mobiles tels que la série Snapdragon ou les puces A-series chips d'Apple.
FLOPs vs FLOPS (Opérations en virgule flottante par seconde)#
Il est important de faire la distinction entre « FLOPs » (pluriel de FLOP) et « FLOPS » (tout en majuscules). Bien qu'ils se ressemblent presque parfaitement, ils mesurent des choses différentes. FLOPs (avec un 's' minuscule) fait référence à la quantité totale d'opérations requises par un modèle ; il s'agit d'une mesure statique de la complexité. FLOPS (avec un 'S' majuscule) signifie Floating Point Operations Per Second et mesure la vitesse ou la capacité de performance d'un matériel, tel qu'un GPU. Vous pouvez voir les FLOPs comme la distance qu'une voiture doit parcourir (le travail à accomplir), tandis que les FLOPS représentent la vitesse maximale de la voiture (la capacité du matériel à effectuer le travail).
Mesurer les FLOPs avec Python#
Tu peux facilement calculer le coût de calcul d'un modèle Ultralytics à l'aide de Python. Cela est particulièrement utile pendant la phase de model optimization pour t'assurer que ton neural network respecte ton budget matériel. L'exemple suivant montre comment charger un modèle YOLO26 et déterminer ses FLOPs.
from ultralytics import YOLO
from ultralytics.utils.torch_utils import get_flops
# Load a lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Calculate and print the model's FLOPs (Billions of operations)
# This gives you a hardware-independent complexity metric
flops = get_flops(model)
print(f"Model FLOPs: {flops:.2f} Billion")Réduire les FLOPs pour plus d'efficacité#
Pour rendre les modèles plus faciles à déployer, les chercheurs utilisent plusieurs techniques afin de réduire les FLOPs sans sacrifier significativement la précision. Le Model pruning consiste à supprimer les connexions les moins importantes dans le neural network, ce qui l'affine efficacement. Une autre technique est la quantization, qui réduit la précision des nombres utilisés dans les calculs (par exemple, en passant de 32 bits en virgule flottante à des entiers de 8 bits). Les outils disponibles sur l'Ultralytics Platform aident à rationaliser ces processus d'optimisation, facilitant ainsi le déploiement de modèles efficaces sur des cibles telles que TensorRT ou OpenVINO. En comprenant et en optimisant les FLOPs, tu peux construire des systèmes d'IA qui sont à la fois puissants et durables.






