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

Abirami Vina

5 minutes de lecture

15 novembre 2024

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

L'optimisation des modèles est un processus qui vise à améliorer l'efficacité et les performances 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 des ressources informatiques minimales et des temps de formation et d'évaluation réduits.

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

Plusieurs techniques sont couramment utilisées pour optimiser les modèles, notamment l'ajustement des hyperparamètres, l'élagage des modèles, la quantification des modèles 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 par le commencement !

Comprendre l'optimisation des modèles

Les modèles de vision par ordinateur comportent généralement des couches profondes et des structures complexes qui permettent de reconnaître des motifs complexes dans les images, mais ils peuvent également être très exigeants en termes de puissance de traitement. Lorsque ces modèles sont déployés sur des appareils dotés d'un 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 de performance notables, les modèles ayant du mal à suivre. Les techniques d'optimisation des modèles sont essentielles pour résoudre ces problèmes. Elles permettent de rationaliser le modèle, de réduire ses besoins en calcul et de s'assurer qu'il peut toujours fonctionner efficacement, même avec des ressources limitées. L'optimisation du modèle peut se faire en simplifiant l'architecture du modèle, en réduisant la précision des calculs ou en supprimant les composants inutiles afin d'alléger le modèle et de le rendre 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 étudierons 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.
  • Taille des modèles: Cette technique permet de supprimer les poids et les connexions inutiles du réseau neuronal, ce qui réduit sa complexité et son coût de calcul.
  • Quantification du 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 permet de réduire considérablement l'empreinte mémoire et les besoins de calcul.
  • Ajustements de précision: Également connu sous le nom d'entraînement à la précision mixte, il s'agit d'utiliser différents formats de précision pour différentes parties du modèle et d'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 à être plus performant en réglant ses hyperparamètres, c'est-à-dire les paramètres qui déterminent la façon dont le modèle apprend à partir des données. Le réglage des hyperparamètres est une technique qui permet d'optimiser ces paramètres et d'améliorer l'efficacité et la précision du modèle. Contrairement aux paramètres que le modèle apprend au cours de la formation, les hyperparamètres sont des valeurs prédéfinies qui guident le processus de formation.

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

  • Taux d'apprentissage: Ce paramètre contrôle la taille du pas que prend le modèle pour ajuster ses poids internes. Un taux d'apprentissage plus élevé peut accélérer l'apprentissage mais risque de ne pas atteindre 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 la formation. Des lots plus importants permettent un apprentissage plus stable mais nécessitent plus de mémoire. Les lots plus petits permettent un apprentissage plus rapide mais peuvent être moins stables.
  • Epochs: ce paramètre permet de déterminer combien de fois le modèle voit l'ensemble des données. Un plus grand nombre d'époques peut améliorer la précision mais risque d'entraîner un surajustement.
  • Taille du noyau : Elle définit la taille du filtre dans les réseaux neuronaux convolutifs (CNN). Des noyaux plus grands capturent des modèles plus larges mais nécessitent plus de traitement ; des 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 à l'intérieur de ces plages afin d'identifier les paramètres qui produisent les meilleures performances. 

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

Enfin, 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 et paramètres du modèle

Lorsque vous travaillez sur l'ajustement 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 la formation qui contrôlent la manière dont le modèle apprend, comme le taux d'apprentissage ou la taille du lot. Ces paramètres sont fixés pendant la formation et influencent directement le processus d'apprentissage. Les paramètres du modèle, en revanche, sont appris par le modèle lui-même au cours de la formation. Il s'agit notamment des poids et des biais, qui s'ajustent au fur et à mesure que le modèle s'entraîne et qui, en fin de compte, guident 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 des modèles est-il important dans l'apprentissage profond ?

L'élagage des modèles est une technique de réduction de la taille qui supprime les poids et les paramètres inutiles d'un modèle, le rendant ainsi plus efficace. Dans le domaine de la vision par ordinateur, en particulier avec les réseaux neuronaux profonds, un grand nombre de paramètres, tels que les poids et les activations (sorties intermédiaires qui aident à calculer la sortie finale), peut augmenter la complexité et les exigences informatiques. L'élagage permet de rationaliser le modèle en identifiant et en supprimant les paramètres qui contribuent le moins aux performances, ce qui permet d'obtenir un modèle plus léger et plus efficace.

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

Une fois le modèle formé, des techniques telles que l'élagage basé sur l'amplitude ou l'analyse de sensibilité permettent d'évaluer l'importance de chaque paramètre. Les paramètres de faible importance sont ensuite élagués à l'aide de l'une des trois techniques principales : l'élagage par poids, l'élagage par neurones ou l'élagage structuré. 

L'élagage des poids supprime les connexions individuelles ayant 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 importantes, comme les filtres convolutifs 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, ce qui lui permet de conserver une grande précision sous une forme réduite.

Réduction de la latence dans les modèles d'IA grâce à la quantification

La quantification du 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 des valeurs à virgule flottante de 32 bits de haute précision en valeurs de moindre précision, telles que des nombres 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.

Dans le domaine de la vision par ordinateur, les nombres 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 par poids et la quantification par activation. La quantification de poids réduit la précision des poids du modèle, ce qui permet d'équilibrer la réduction de la taille et la précision. La quantification de l'activation réduit la précision des activations, ce qui permet de réduire encore la mémoire et les besoins de calcul.

__wf_reserved_inherit
Fig. 4. Exemple de quantification d'un nombre flottant de 32 bits en un nombre 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 haute précision, telles que les valeurs flottantes de 32 bits, avec des valeurs de faible précision, telles que les valeurs flottantes de 16 bits ou de 8 bits, la précision mixte permet aux modèles de vision artificielle d'accélérer la formation et de réduire l'utilisation de la mémoire sans sacrifier la précision.

Au cours de la formation, la précision mixte est obtenue en utilisant une précision plus faible dans des couches spécifiques tout en conservant une précision plus élevée lorsque cela est nécessaire dans l'ensemble du réseau. Cela se fait par le biais du moulage et de la mise à l'échelle des pertes. Le moulage convertit les types de données entre les différentes précisions requises par le modèle. La mise à l'échelle des pertes ajuste la précision réduite afin d'éviter les sous-écarts numériques, ce qui garantit la stabilité de l'apprentissage. La précision mixte est particulièrement utile pour les grands modèles et les lots de grande taille.

__wf_reserved_inherit
Fig. 5. La formation à la précision mixte utilise à la fois des types de 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 abordé plusieurs techniques d'optimisation de modèles, voyons comment 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 conviennent mieux aux appareils mobiles dotés de 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:

  • L'élagage : Il est idéal pour réduire la taille des modèles sans impact significatif sur la précision, ce qui le rend parfait pour les appareils à ressources limitées tels que les téléphones mobiles ou les appareils de l'Internet des objets (IoT).
  • Quantification: Une option intéressante 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 dont la mémoire et la puissance de traitement sont 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'apprentissage 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 des tâches de haute performance où l'efficacité est importante.
  • Réglage des hyperparamètres: Bien qu'il soit intensif en termes de calcul, il est essentiel pour les applications qui nécessitent une grande précision, telles que l'imagerie médicale ou la conduite autonome.

Principaux enseignements

L'optimisation des modèles est un élément essentiel de l'apprentissage automatique, en particulier pour le déploiement de l'IA dans les applications du monde réel. Des techniques telles que l'ajustement des hyperparamètres, l'élagage des modèles, la quantification et la précision mixte permettent d'améliorer les performances, l'efficacité et l'utilisation des ressources des modèles de vision artificielle. 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 Ultralytics GitHub et rejoignez notre communauté pour en savoir plus sur les applications de l'IA dans la fabrication et l'agriculture.

Construisons ensemble le futur
de l'IA !

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

Commencer gratuitement
Lien copié dans le presse-papiers