FLOPs
Découvre comment les FLOPs mesurent la complexité computationnelle des modèles d’IA. Apprends à calculer les FLOPs pour Ultralytics YOLO26 et à optimiser les performances pour l’IA en périphérie.
Les FLOPs, ou opérations en virgule flottante, constituent une métrique standard utilisée pour mesurer la complexité computationnelle d'un modèle de machine learning. Ils comptent précisément le nombre de calculs mathématiques — principalement des additions et des multiplications impliquant des nombres décimaux — qu'un réseau neuronal doit effectuer pour traiter une seule entrée, telle qu'une image ou une phrase. Dans le domaine du deep learning, les FLOPs servent de référence théorique pour estimer à quel point un modèle est « lourd » ou coûteux en calcul. Un nombre de FLOPs plus élevé indique généralement qu'un modèle est plus complexe et nécessitera davantage de puissance de calcul et d'énergie pour fonctionner, tandis qu'un nombre inférieur indique une architecture légère conçue pour l'efficacité.
Le rôle des FLOPs dans la sélection des modèles#
Lorsqu'ils développent des applications d'intelligence artificielle, les ingénieurs sont souvent confrontés à un compromis entre précision et vitesse. Les FLOPs servent d'indicateur indépendant du matériel pour la latence d'inférence, permettant aux développeurs de comparer différentes architectures sans devoir les évaluer sur chaque appareil possible. Cette métrique est essentielle pour choisir le modèle adapté à des scénarios de déploiement spécifiques. Par exemple, un chercheur qui mène des expériences sur de puissants serveurs de cloud computing pourra privilégier la précision au détriment de l'efficacité et utiliser des modèles avec un nombre élevé de FLOPs. À l'inverse, un ingénieur qui développe pour des appareils d'IA en périphérie doit privilégier un faible nombre de FLOPs afin de garantir que l'application fonctionne correctement dans des limites strictes de consommation énergétique et de température.
Applications concrètes#
Les implications pratiques des FLOPs sont visibles dans divers secteurs où les ressources de calcul constituent un facteur essentiel.
- Drones autonomes : Dans des domaines comme la robotique agricole, des drones équipés de caméras analysent en temps réel l'état des cultures. Comme les batteries des drones sont limitées, chaque watt consommé compte. Les ingénieurs sélectionnent spécifiquement des modèles avec un faible nombre de FLOPs, comme les variantes Nano de YOLO26, afin de réduire la consommation du processeur embarqué et ainsi maximiser l'autonomie de vol et la portée opérationnelle.
- Réalité augmentée mobile : Les applications pour smartphone qui utilisent la reconnaissance faciale à des fins de sécurité ou appliquent des filtres de RA dépendent fortement d'un traitement efficace. Ces applications doivent fonctionner sans faire surchauffer l'appareil ni provoquer de ralentissements. Les développeurs utilisent des estimations de FLOPs pour sélectionner des modèles légers qui restent largement dans les capacités des jeux de puces mobiles comme la gamme Snapdragon ou les puces de la série A d'Apple.
FLOPs et FLOPS (opérations en virgule flottante par seconde)#
Il est important de distinguer les « FLOPs » (pluriel de FLOP) des « FLOPS » (en majuscules). Bien qu'ils soient presque identiques à l'écrit, ils mesurent des éléments différents. Les FLOPs (avec un petit « s ») désignent la quantité totale d'opérations requises par un modèle : il s'agit d'une mesure statique de la complexité. Les FLOPS (avec un « S » majuscule) signifient opérations en virgule flottante par seconde et mesurent la vitesse ou les capacités de performance du matériel, comme un GPU. Tu peux considérer les FLOPs comme la distance qu'une voiture doit parcourir (le travail à effectuer), tandis que les FLOPS représentent la vitesse maximale de la voiture (la capacité du matériel à effectuer ce travail).
Mesurer les FLOPs avec Python#
Tu peux facilement calculer le coût computationnel d'un modèle Ultralytics avec Python. Cela est particulièrement utile lors de la phase d'optimisation du modèle pour vérifier que ton réseau neuronal respecte le budget matériel disponible. 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 gagner en 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. L'élagage de modèle consiste à supprimer les connexions les moins importantes du réseau neuronal, ce qui l'allège efficacement. Une autre technique est la quantification, qui réduit la précision des nombres utilisés dans les calculs (par exemple, en passant de nombres à virgule flottante sur 32 bits à des entiers sur 8 bits). Les outils disponibles sur l'Ultralytics Platform contribuent à simplifier ces processus d'optimisation et facilitent le déploiement de modèles efficaces vers des cibles comme TensorRT ou OpenVINO. En comprenant et en optimisant les FLOPs, les développeurs peuvent créer des systèmes d'IA à la fois puissants et durables.









