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 opérations en virgule flottante, sont une mesure standard utilisée pour évaluer la complexité computationnelle d'un modèle de machine learning. Ils comptent spécifiquement 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, comme une image ou une phrase. Dans le domaine du deep learning, les FLOPs servent d'étalon théorique pour estimer à quel point un modèle est « lourd » ou coûteux en termes de calcul. Un nombre élevé de FLOPs suggère généralement qu'un modèle est plus complexe et nécessitera plus de puissance de calcul et d'énergie pour s'exécuter, tandis qu'un nombre plus faible indique une architecture légère conçue pour l'efficacité.
Link to this sectionLe 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 une mesure indirecte de la inference latency indépendante du matériel, permettant aux développeurs de comparer différentes architectures sans avoir à les tester 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 des serveurs de cloud computing puissants pourrait privilégier la précision à l'efficacité, en utilisant des modèles avec un nombre élevé de FLOPs. À l'inverse, un ingénieur développant pour des appareils d'edge AI doit privilégier de faibles FLOPs pour garantir que l'application s'exécute de manière fluide dans des limites strictes de puissance et de chaleur.
Link to this sectionApplications 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 comme la agricultural robotics, les drones équipés de caméras analysent la santé des cultures en temps réel. Comme les batteries des drones sont limitées, chaque bit de consommation d'énergie compte. Les ingénieurs sélectionnent spécifiquement des modèles avec de faibles FLOPs, tels que les variantes Nano de YOLO26, pour minimiser la décharge du processeur embarqué, maximisant ainsi le temps de vol et le rayon d'action opérationnel.
- Réalité augmentée mobile : Les applications sur smartphone qui utilisent la facial recognition pour la sécurité ou qui appliquent des filtres AR reposent fortement sur un traitement efficace. Ces applications doivent fonctionner sans provoquer de surchauffe ou de ralentissement de l'appareil. Les développeurs utilisent des estimations de FLOPs pour sélectionner des modèles légers qui tiennent confortablement dans les capacités des chipsets mobiles comme la série Snapdragon ou les A-series chips d'Apple.
Link to this sectionFLOPs vs FLOPS (Opérations en virgule flottante par seconde)#
Il est important de distinguer « FLOPs » (pluriel de FLOP) et « FLOPS » (en majuscules). Bien qu'ils se ressemblent presque, 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 ; c'est 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 du matériel, comme un GPU. Tu peux concevoir les FLOPs comme la distance qu'une voiture doit parcourir (le travail à effectuer), tandis que les FLOPS sont la vitesse de pointe de la voiture (la capacité du matériel à effectuer le travail).
Link to this sectionMesurer les FLOPs avec Python#
Tu peux facilement calculer le coût computationnel d'un modèle Ultralytics en utilisant Python. Ceci 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")Link to this sectionRéduire les FLOPs pour plus d'efficacité#
Pour rendre les modèles plus déployables, les chercheurs utilisent plusieurs techniques pour réduire les FLOPs sans sacrifier de manière significative la précision. Le model pruning consiste à supprimer les connexions moins importantes dans le neural network, en l'affinant efficacement. Une autre technique est la quantization, qui réduit la précision des nombres utilisés dans les calculs (par exemple, du format 32 bits en virgule flottante vers des entiers 8 bits). Les outils disponibles sur la Ultralytics Platform aident à rationaliser ces processus d'optimisation, facilitant ainsi le déploiement de modèles efficaces vers des cibles comme 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.






