La quantification des modèles est une technique cruciale d'optimisation des modèles utilisée dans le deep learning (DL) pour réduire les coûts de calcul et de mémoire des modèles. Elle y parvient en convertissant la précision numérique des paramètres du modèle(poids et activations) à partir de représentations de précision supérieure, généralement des nombres à virgule flottante de 32 bits(FP32), vers des formats de précision inférieure, tels que des nombres à virgule flottante de 16 bits (FP16), des nombres entiers de 8 bits (INT8), ou même des représentations de bits inférieurs. Ce processus rend les modèles plus petits, plus rapides et plus économes en énergie, ce qui est particulièrement vital pour le déploiement de modèles complexes dans des environnements à ressources limitées comme les appareils mobiles ou les systèmes d'intelligence artificielle en périphérie.
Avantages de la quantification des modèles
L'application de la quantification aux modèles d'apprentissage profond offre plusieurs avantages clés :
- Taille réduite du modèle : Une précision moindre nécessite moins de bits par paramètre, ce qui diminue drastiquement l'empreinte de stockage du modèle. Cela est bénéfique pour les mises à jour en direct et les appareils dont le stockage est limité.
- Vitesse d'inférence plus rapide : Les calculs avec des nombres de faible précision, en particulier l'arithmétique des nombres entiers, sont généralement plus rapides sur le matériel compatible, ce qui entraîne une diminution de la latence de l'inférence.
- Consommation d'énergie réduite : Un accès réduit à la mémoire et des calculs plus simples se traduisent par une consommation d'énergie plus faible, ce qui est crucial pour les appareils périphériques alimentés par batterie.
- Amélioration de la capacité de déploiement : Permet le déploiement de modèles vastes et complexes comme Ultralytics YOLO sur du matériel aux ressources informatiques limitées, comme les microcontrôleurs ou les TPU.
Techniques de quantification
Il existe deux approches principales de la quantification des modèles :
- Quantification post-entraînement (PTQ) : Cette méthode consiste à quantifier un modèle qui a déjà été entraîné en utilisant la précision standard de la virgule flottante. Elle est plus simple à mettre en œuvre car elle ne nécessite pas de réentraînement, mais elle peut parfois entraîner une baisse notable de la précision du modèle. L'étalonnage avec un ensemble de données représentatif est souvent utilisé pour minimiser cette perte de précision.
- Formation consciente de la quantification (QAT): QAT simule les effets de la quantification pendant le processus de formation lui-même. Le modèle apprend à s'adapter à la précision inférieure, ce qui se traduit généralement par une meilleure précision que le PTQ, bien qu'il nécessite l'accès au pipeline et aux données de formation d'origine.
Applications dans le monde réel
La quantification des modèles est largement utilisée dans divers domaines :
- Informatique mobile : Permet des fonctions d'IA sophistiquées comme la détection d'objets en temps réel pour les filtres de caméra, la classification d'images et le traitement du langage naturel directement sur les smartphones sans dépendre fortement de l'informatique en nuage. Les frameworks tels que TensorFlow Lite utilisent fortement la quantification.
- Véhicules autonomes: Les modèles quantifiés permettent un traitement plus rapide des données des capteurs (caméra, LiDAR) pour des tâches telles que la détection des piétons, le maintien de la voie et la reconnaissance des panneaux de signalisation, cruciales pour la prise de décision en temps réel dans les systèmes de conduite autonome. Ultralytics propose différentes options de déploiement de modèles adaptées à ce type d'applications.
Considérations et concepts connexes
Bien que très bénéfique, la quantification peut potentiellement avoir un impact sur la précision du modèle. Après la quantification, il est essentiel de procéder à une évaluation minutieuse à l'aide de mesures de performance pertinentes. Des techniques telles que l'utilisation d'architectures de modèles adaptées à la quantification (par exemple, le remplacement de certaines fonctions d'activation, comme dans le cas de YOLO) peuvent aider à atténuer la dégradation de la précision, comme indiqué dans le déploiement des modèles quantifiés de YOLOv8 .
La quantification des modèles est l'une des nombreuses techniques d'optimisation des modèles. D'autres comprennent :
- Élagage du modèle: Suppression des poids ou des connexions moins importants pour réduire la complexité du modèle.
- Précision mixte: Utilisation d'une combinaison de FP16 et FP32 pendant la formation ou l'inférence pour un équilibre entre vitesse/mémoire et précision.
- Distillation des connaissances: Formation d'un modèle "étudiant" plus petit pour imiter la sortie d'un modèle "enseignant" plus grand et préformé.
Ultralytics prend en charge l'exportation des modèles vers divers formats qui facilitent la quantification, notamment ONNX, OpenVINO, TensorRT, CoreMLet TFLite, ce qui permet un déploiement efficace sur diverses plates-formes matérielles. Tu peux gérer et déployer tes modèles, y compris les versions quantifiées, à l'aide d'outils comme Ultralytics HUB.
Comment fonctionne la quantification des modèles
À la base, la quantification du modèle consiste à convertir la gamme de valeurs trouvées dans les tenseurs à haute précision (comme les poids et les activations dans FP32) en une gamme plus petite représentable par des types de données à plus faible précision (comme INT8). Cette conversion réduit considérablement la mémoire nécessaire pour stocker le modèle et la puissance de calcul nécessaire pour l'inférence, car les opérations sur les nombres de précision inférieure (en particulier les entiers) sont souvent plus rapides et plus économes en énergie sur le matériel moderne comme les GPU et les accélérateurs spécialisés comme les TPU.