Quantification du modèle
Optimisez les performances de l'IA grâce à la quantification des modèles. Réduisez la taille, augmentez la vitesse et améliorez l'efficacité énergétique pour les déploiements dans le monde réel.
La quantification de modèle est une technique cruciale d'optimisation de modèle utilisée dans l'apprentissage profond (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 entiers de 8 bits(INT8), ou même des représentations de bits inférieurs. Ce processus rend les modèles d'apprentissage automatique plus petits, plus rapides et plus économes en énergie, ce qui est particulièrement important pour le déploiement de modèles complexes dans des environnements à ressources limitées tels que les appareils mobiles ou les systèmes d'IA périphériques.
Fonctionnement de la quantification des modèles
À la base, la quantification d'un modèle implique la mise en correspondance de la gamme de valeurs trouvées dans les tenseurs de haute précision (comme les poids et les activations dans FP32) avec une gamme plus petite représentable par des types de données de plus faible précision (comme INT8). Cette conversion réduit considérablement la mémoire nécessaire pour stocker le modèle et les ressources de calcul nécessaires pour l'inférence, car les opérations sur les nombres de précision inférieure (en particulier les nombres entiers) sont souvent plus rapides et plus efficaces sur le plan énergétique sur le matériel moderne comme les GPU, les CPU et les accélérateurs spécialisés comme les TPU ou les NPU. L'objectif est de réaliser ces gains d'efficacité avec un impact minimal sur les performances prédictives du modèle.
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 des modèles : Les types de données de moindre précision nécessitent moins d'espace de stockage, ce qui rend les modèles plus faciles à stocker et à distribuer, en particulier pour le déploiement sur l'appareil.
- Vitesse d'inférence plus rapide : Les calculs avec des nombres de faible précision (en particulier les nombres entiers) s'exécutent plus rapidement sur du matériel compatible, ce qui réduit la latence de l'inférence. Cette caractéristique est essentielle pour les applications en temps réel.
- Amélioration de l'efficacité énergétique : Des calculs plus rapides et un accès réduit à la mémoire permettent de réduire la consommation d'énergie, prolongeant ainsi la durée de vie de la batterie sur les appareils mobiles et périphériques.
- Compatibilité matérielle améliorée : De nombreux accélérateurs matériels spécialisés(Edge TPU, NPU sur les processeurs ARM) sont optimisés pour l'arithmétique des entiers de faible précision, ce qui permet d'augmenter considérablement les performances des modèles quantifiés.
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 ni d'accès aux données d'entraînement d'origine. Cependant, elle peut parfois entraîner une baisse notable de la précision du modèle. Des outils tels que le TensorFlow Model Optimization Toolkit offrent des capacités PTQ.
- Formation consciente de la quantification (QAT): Cette technique simule les effets de la quantification pendant le processus d'apprentissage du modèle. En rendant le modèle "conscient" de la réduction de précision à venir, QAT permet souvent d'obtenir une meilleure précision que PTQ, en particulier pour les modèles sensibles à la quantification, bien qu'il faille modifier le flux de travail de formation et l'accès aux données de formation. PyTorch prend en charge l'EAQ.
Applications dans le monde réel
La quantification des modèles est largement utilisée dans divers domaines :
- Applications de vision mobile : Permettre des tâches de vision artificielle sophistiquées telles que la détection d'objets en temps réel (par exemple, en utilisant un modèle YOLO quantifié d'Ultralytics) ou la segmentation d'images directement sur les smartphones pour des applications telles que la réalité augmentée, l'édition de photos ou la recherche visuelle. La quantification rend ces modèles exigeants réalisables sur du matériel mobile.
- Véhicules autonomes et robotique : Déploiement de modèles de perception (pour la détection de piétons, de véhicules, d'obstacles) dans des voitures ou des drones où la faible latence et l'efficacité énergétique sont primordiales pour la sécurité et l'endurance opérationnelle. Les modèles quantifiés permettent de répondre à ces exigences strictes de traitement en temps réel.
- Dispositifs d'IA périphérique : Exécution de modèles d'IA pour des tâches telles que la détection de défauts dans l'industrie, la domotique intelligente ou la surveillance de la santé sur des microcontrôleurs à faible consommation ou des processeurs spécialisés.
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-NAS) peuvent contribuer à 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. En voici d'autres :
- Élagage du modèle: Suppression des connexions (poids) redondantes ou sans importance dans le réseau neuronal.
- Précision mixte: Utilisation d'une combinaison de différentes précisions numériques (par exemple, FP16 et FP32) pendant la formation ou l'inférence.
- Distillation des connaissances: Entraînement d'un modèle "étudiant" plus petit à imiter le comportement d'un modèle "enseignant" plus grand et pré-entraîné.
Ultralytics prend en charge l'exportation de modèles vers différents formats qui facilitent la quantification et le déploiement, notamment ONNX, OpenVINO (optimisé pour le matériel Intel), TensorRT (pour les GPU NVIDIA), CoreML (pour les appareils Apple) et TFLite, ce qui permet un déploiement efficace des modèles sur diverses plates-formes matérielles. Vous pouvez gérer et déployer vos modèles, y compris les versions quantifiées, à l'aide d'outils comme Ultralytics HUB. Des intégrations comme Neural Magic exploitent également la quantification pour l'optimisation de l'unité centrale.