Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant

Qu'est-ce que l'optimisation de modèle ? Un guide rapide

Abirami Vina

5 min de lecture

15 novembre 2024

Découvrez comment les techniques d'optimisation de modèles, telles que le réglage des hyperparamètres, l'élagage de modèles et la quantification de modèles, peuvent aider les modèles de vision par ordinateur à fonctionner plus efficacement.

L'optimisation de modèle est un processus qui vise à améliorer l'efficacité et la performance des modèles d'apprentissage automatique. En affinant la structure et la fonction d'un modèle, l'optimisation permet aux modèles de fournir de meilleurs résultats avec un minimum de ressources de calcul et une réduction du temps d'entraînement et d'évaluation.

Ce processus est particulièrement important dans des domaines tels que la vision par ordinateur, où les modèles nécessitent souvent des ressources importantes pour analyser des images complexes. Dans les environnements où les ressources sont limitées, tels que les appareils mobiles ou les systèmes périphériques, les modèles optimisés peuvent bien fonctionner avec des ressources limitées tout en restant précis.

Plusieurs techniques sont couramment utilisées pour réaliser l'optimisation de modèle, notamment le réglage des hyperparamètres, l'élagage de modèle, la quantification de modèle et la précision mixte. Dans cet article, nous allons explorer ces techniques et les avantages qu'elles apportent aux applications de vision par ordinateur. Commençons !

Comprendre l'optimisation de modèle

Les modèles de vision par ordinateur ont généralement des couches profondes et des structures complexes qui sont idéales pour reconnaître les motifs complexes dans les images, mais ils peuvent aussi être assez exigeants en termes de puissance de traitement. Lorsque ces modèles sont déployés sur des appareils dotés de matériel limité, comme les téléphones mobiles ou les appareils périphériques, ils peuvent être confrontés à certains défis ou limitations. 

La puissance de traitement, la mémoire et l'énergie limitées de ces appareils peuvent entraîner des baisses notables de performance, car les modèles ont du mal à suivre le rythme. Les techniques d'optimisation de modèle sont essentielles pour résoudre ces problèmes. Elles permettent de rationaliser le modèle, de réduire ses besoins de calcul et de garantir qu'il peut toujours fonctionner efficacement, même avec des ressources limitées. L'optimisation de modèle peut être effectuée en simplifiant l'architecture du modèle, en réduisant la précision des calculs ou en supprimant les composants inutiles pour rendre le modèle plus léger et plus rapide.

__wf_reserved_inherit
Fig. 1. Raisons d'optimiser vos modèles. Image de l'auteur.

Voici quelques-unes des techniques d'optimisation de modèles les plus courantes, que nous allons explorer plus en détail dans les sections suivantes :

  • Réglage des hyperparamètres : Il s'agit d'ajuster systématiquement les hyperparamètres, tels que le taux d'apprentissage et la taille du lot, afin d'améliorer les performances du modèle.
  • Élagage de modèle : Cette technique consiste à supprimer les poids et les connexions inutiles du réseau neuronal, réduisant ainsi sa complexité et son coût de calcul.
  • Quantification de modèle: La quantification consiste à réduire la précision des poids et des activations du modèle, généralement de 32 bits à 16 bits ou 8 bits, ce qui réduit considérablement l'empreinte mémoire et les besoins de calcul.
  • Ajustements de précision : Également appelée entraînement en précision mixte, elle consiste à utiliser différents formats de précision pour différentes parties du modèle et à optimiser l'utilisation des ressources sans compromettre la précision.

Expliqué : Hyperparamètres dans les modèles d'apprentissage automatique

Vous pouvez aider un modèle à apprendre et à mieux performer en réglant ses hyperparamètres : des paramètres qui déterminent la façon dont le modèle apprend des données. Le réglage des hyperparamètres est une technique permettant d'optimiser ces paramètres, améliorant ainsi l'efficacité et la précision du modèle. Contrairement aux paramètres que le modèle apprend pendant l'entraînement, les hyperparamètres sont des valeurs prédéfinies qui guident le processus d'entraînement.

Passons en revue quelques exemples d'hyperparamètres qui peuvent être réglés :

  • Taux d'apprentissage : Ce paramètre contrôle la taille du pas que le modèle effectue pour ajuster ses poids internes. Un taux d'apprentissage plus élevé peut accélérer l'apprentissage, mais risque de passer à côté de la solution optimale, tandis qu'un taux plus faible peut être plus précis, mais plus lent.
  • Taille du lot : Elle définit le nombre d'échantillons de données traités à chaque étape de l'entraînement. Les tailles de lot plus importantes offrent un apprentissage plus stable, mais nécessitent plus de mémoire. Les lots plus petits s'entraînent plus rapidement, mais peuvent être moins stables.
  • Époques : Vous pouvez déterminer le nombre de fois où le modèle voit l'ensemble des données à l'aide de ce paramètre. Plus d'époques peuvent améliorer la précision, mais risquent de provoquer un surapprentissage.
  • Taille du noyau : Elle définit la taille du filtre dans les réseaux neuronaux convolutionnels (CNN). Les noyaux plus grands capturent des motifs plus larges, mais nécessitent plus de traitement ; les noyaux plus petits se concentrent sur des détails plus fins.

Comment fonctionne le réglage des hyperparamètres

Le réglage des hyperparamètres commence généralement par la définition d'une plage de valeurs possibles pour chaque hyperparamètre. Un algorithme de recherche explore ensuite différentes combinaisons dans ces plages afin d'identifier les paramètres qui produisent les meilleures performances

Les méthodes de réglage courantes incluent la recherche sur grille, la recherche aléatoire et l'optimisation bayésienne. La recherche sur grille teste toutes les combinaisons possibles de valeurs dans les plages spécifiées. La recherche aléatoire sélectionne des combinaisons au hasard, trouvant souvent des paramètres efficaces plus rapidement. L'optimisation bayésienne utilise un modèle probabiliste pour prédire les valeurs d'hyperparamètres prometteuses en fonction des résultats précédents. Cette approche réduit généralement le nombre d'essais nécessaires. 

En fin de compte, pour chaque combinaison d'hyperparamètres, la performance du modèle est évaluée. Le processus est répété jusqu'à ce que les résultats souhaités soient atteints.

Hyperparamètres vs. paramètres du modèle

Lors du réglage des hyperparamètres, vous pouvez vous demander quelle est la différence entre les hyperparamètres et les paramètres du modèle

Les hyperparamètres sont des valeurs définies avant l'entraînement qui contrôlent la façon dont le modèle apprend, comme le taux d'apprentissage ou la taille du lot. Ces paramètres sont fixes pendant l'entraînement et influencent directement le processus d'apprentissage. Les paramètres du modèle, quant à eux, sont appris par le modèle lui-même pendant l'entraînement. Ceux-ci incluent les poids et les biais, qui s'ajustent au fur et à mesure que le modèle s'entraîne et guident finalement ses prédictions. Essentiellement, les hyperparamètres façonnent le parcours d'apprentissage, tandis que les paramètres du modèle sont les résultats de ce processus d'apprentissage.

__wf_reserved_inherit
Fig 2. Comparaison des paramètres et des hyperparamètres. 

Pourquoi l'élagage de modèle est important dans l'apprentissage profond

L'élagage de modèle est une technique de réduction de la taille qui supprime les poids et les paramètres inutiles d'un modèle, le rendant plus efficace. En vision par ordinateur, en particulier avec les réseaux neuronaux profonds, un grand nombre de paramètres, comme les poids et les activations (sorties intermédiaires qui aident à calculer la sortie finale), peuvent augmenter à la fois la complexité et les exigences de calcul. L'élagage aide à rationaliser le modèle en identifiant et en supprimant les paramètres qui contribuent minimalement à la performance, ce qui donne un modèle plus léger et plus efficace.

__wf_reserved_inherit
Fig 3. Avant et après l'élagage du modèle.

Une fois le modèle entraîné, des techniques telles que l'élagage basé sur l'amplitude ou l'analyse de sensibilité peuvent évaluer l'importance de chaque paramètre. Les paramètres de faible importance sont ensuite élagués, en utilisant l'une des trois techniques principales : l'élagage des poids, l'élagage des neurones ou l'élagage structuré. 

L'élagage des poids supprime les connexions individuelles avec un impact minimal sur la sortie. L'élagage des neurones supprime des neurones entiers dont les sorties contribuent peu à la fonction du modèle. L'élagage structuré élimine des sections plus larges, comme les filtres convolutionnels ou les neurones dans les couches entièrement connectées, optimisant ainsi l'efficacité du modèle. Une fois l'élagage terminé, le modèle est réentraîné pour affiner les paramètres restants, garantissant qu'il conserve une grande précision sous une forme réduite.

Réduire la latence dans les modèles d'IA avec la quantification

La quantification de modèle réduit le nombre de bits utilisés pour représenter les poids et les activations d'un modèle. Elle convertit généralement les valeurs à virgule flottante de haute précision (32 bits) en une précision inférieure, comme des entiers de 16 bits ou de 8 bits. En réduisant la précision des bits, la quantification diminue considérablement la taille du modèle, l'empreinte mémoire et le coût de calcul.

En vision par ordinateur, les flottants de 32 bits sont la norme, mais la conversion en 16 bits ou 8 bits peut améliorer l'efficacité. Il existe deux principaux types de quantification : la quantification des poids et la quantification des activations. La quantification des poids diminue la précision des poids du modèle, équilibrant la réduction de la taille avec la précision. La quantification des activations réduit la précision des activations, diminuant davantage la mémoire et les exigences de calcul.

__wf_reserved_inherit
Fig 4. Un exemple de quantification d'un flottant de 32 bits à un entier de 8 bits.

Comment la précision mixte accélère les inférences de l'IA

La précision mixte est une technique qui utilise différentes précisions numériques pour diverses parties d'un réseau neuronal. En combinant des valeurs de précision plus élevée, comme les flottants de 32 bits, avec des valeurs de précision inférieure, comme les flottants de 16 bits ou de 8 bits, la précision mixte permet aux modèles de vision par ordinateur d'accélérer l'entraînement et de réduire l'utilisation de la mémoire sans sacrifier la précision.

Pendant l'entraînement, la précision mixte est obtenue en utilisant une précision inférieure dans des couches spécifiques tout en conservant une précision plus élevée là où cela est nécessaire à travers le réseau. Ceci est réalisé grâce au casting et à la mise à l'échelle des pertes. Le casting convertit les types de données entre différentes précisions selon les besoins du modèle. La mise à l'échelle des pertes ajuste la précision réduite pour éviter le sous-débordement numérique, assurant ainsi un entraînement stable. La précision mixte est particulièrement utile pour les grands modèles et les grandes tailles de lots.

__wf_reserved_inherit
Fig 5. L'entraînement en précision mixte utilise à la fois les types à virgule flottante de 16 bits (FP16) et de 32 bits (FP32).

Équilibrer la précision et l'efficacité du modèle

Maintenant que nous avons couvert plusieurs techniques d'optimisation de modèle, discutons de la façon de décider laquelle utiliser en fonction de vos besoins spécifiques. Le choix dépend de facteurs tels que le matériel disponible, les contraintes de calcul et de mémoire de l'environnement de déploiement et le niveau de précision requis. 

Par exemple, les modèles plus petits et plus rapides sont mieux adaptés aux appareils mobiles avec des ressources limitées, tandis que les modèles plus grands et plus précis peuvent être utilisés sur des systèmes à haute performance. Voici comment chaque technique s'aligne sur différents objectifs :

  • Élagage : Il est idéal pour réduire la taille du modèle sans affecter de manière significative la précision, ce qui le rend parfait pour les appareils aux ressources limitées comme les téléphones mobiles ou les appareils de l'Internet des objets (IoT).
  • Quantification : Une excellente option pour réduire la taille du modèle et accélérer l'inférence, en particulier sur les appareils mobiles et les systèmes embarqués avec une mémoire et une puissance de traitement limitées. Elle fonctionne bien pour les applications où de légères réductions de précision sont acceptables.
  • Précision mixte : Conçue pour les modèles à grande échelle, cette technique réduit l'utilisation de la mémoire et accélère l'entraînement sur du matériel comme les GPU et les TPU qui prennent en charge les opérations en précision mixte. Elle est souvent utilisée dans les tâches à haute performance où l'efficacité compte.
  • Réglage des hyperparamètres : Bien qu'il nécessite une forte puissance de calcul, il est essentiel pour les applications qui exigent une grande précision, telles que l'imagerie médicale ou la conduite autonome.

Principaux points à retenir

L'optimisation des modèles est un élément essentiel de l'apprentissage automatique, en particulier pour le déploiement de l'IA dans des applications du monde réel. Des techniques telles que le réglage des hyperparamètres, l'élagage des modèles, la quantification et la précision mixte contribuent à améliorer les performances, l'efficacité et l'utilisation des ressources des modèles de vision par ordinateur. Ces optimisations rendent les modèles plus rapides et moins gourmands en ressources, ce qui est idéal pour les appareils dont la mémoire et la puissance de traitement sont limitées. Les modèles optimisés sont également plus faciles à mettre à l'échelle et à déployer sur différentes plateformes, ce qui permet de créer des solutions d'IA à la fois efficaces et adaptables à un large éventail d'utilisations.

Visitez le dépôt GitHub d'Ultralytics et rejoignez notre communauté pour en savoir plus sur les applications de l'IA dans les secteurs de la fabrication et de l'agriculture.

Construisons ensemble l'avenir
de l'IA !

Commencez votre parcours avec l'avenir de l'apprentissage automatique

Démarrer gratuitement
Lien copié dans le presse-papiers