Comprendre les FLOPs dans l'apprentissage automatique ! Découvrez comment ils mesurent la complexité du modèle, ont un impact sur l'efficacité et facilitent la sélection du matériel.
Les FLOP, ou opérations en virgule flottante, constituent une mesure fondamentale pour quantifier la complexité informatique des modèles d'apprentissage automatique. modèles d'apprentissage automatique, en particulier dans le domaine de l'apprentissage profond. Cette mesure calcule le nombre total d'opérations mathématiques, telles que l'addition, la soustraction, la multiplication et la division impliquant des décimales, comme l'addition, la soustraction, la multiplication et la division impliquant des nombres décimaux - nécessaires pour effectuer une seule passe avant d'un réseau neuronal. réseau neuronal. En déterminant le nombre de FLOPs, les ingénieurs peuvent estimer la puissance de traitement nécessaire à l'exécution d'un modèle, ce qui en fait une statistique vitale pour la sélection et l'optimisation du matériel. pour la sélection et l'optimisation du matériel. Bien que distincts de la taille des fichiers ou du nombre de paramètres, les FLOP fournissent une base théorique pour déterminer la "lourdeur" d'un modèle. le poids d'un modèle, qui est directement lié à la consommation d'énergie et à la vitesse d'exécution sur des processeurs tels qu'un ordinateur portable. comme une CPU ou GPU.
La compréhension du coût de calcul d'un modèle est essentielle pour un développement efficace de l'IA. efficace de l'IA. Un nombre de FLOPs indique généralement qu'un modèle nécessite moins de calculs pour produire une prédiction, ce qui est essentiel pour les environnements où les ressources sont limitées. pour les environnements aux ressources limitées.
L'impact pratique des FLOP est le plus visible lorsque les modèles passent de la recherche à des environnements de production où la latence et la puissance sont limitées. et la puissance sont limitées.
Vous pouvez déterminer la complexité de calcul d'un modèle Ultralytics en utilisant les outils de profilage intégrés. L'extrait suivant charge un modèle et calcule les FLOPs requis pour une taille d'entrée spécifique.
from ultralytics import YOLO
# Load the YOLO11 nano model
model = YOLO("yolo11n.pt")
# Profile the model to see FLOPs, parameters, and speed
# The 'imgsz' argument defines the input resolution (e.g., 640x640)
model.profile(imgsz=640)
Cette méthode produit un tableau récapitulatif comprenant le nombre de paramètres, les gradients et les GFLOPs (GigaFLOPs, ou milliards d'opérations), ce qui vous permet d'évaluer si le modèle correspond à la réalité. milliards d'opérations), vous aidant à évaluer si le modèle correspond à vos contraintes de déploiement.
Il est important de distinguer les FLOP des autres mesures qui décrivent la taille et la vitesse du modèle, car elles mesurent des aspects différents de la performance. différents aspects de la performance.
Bien que les FLOP constituent une base utile, ils ne donnent pas une image complète des performances du modèle. Ils ne tiennent pas compte les coûts d'accès à la mémoire (l'énergie et le temps nécessaires pour déplacer les données vers le processeur), qui est souvent le goulot d'étranglement dans les systèmes modernes d'apprentissage profond. systèmes modernes d'apprentissage profond. En outre, les opérations comme les fonctions d'activation (par exemple, ReLU) ou les couches de normalisation ont un faible nombre de FLOP mais consomment tout de même du temps. Par conséquent, les FLOP doivent être utilisés en conjonction avec avec l'analyse comparative du monde réel sur le matériel cible, tel qu'un Raspberry Pi, afin d'obtenir une image précise des performance.