in

Optimisation de modèles avec TensorFlow | par Michał Oleszak | Avr, 2023


MLOPS : OPTIMISER VOS MODELES DE MACHINE LEARNING POUR LES DEPLOYER SUR DES DISPOSITIFS LIMITEES

Les modèles de machine learning sont de plus en plus volumineux, atteignant des tailles énormes pour certains : le modèle de génération de langage naturel de Nvidia par exemple dispose de 530 milliards de paramètres. Cependant, ces modèles sont souvent déployés sur des dispositifs de plus en plus petits, tels que des smartwatches ou des drones qui sont par nature limités par leur taille en termes de mémoire et de puissance de calcul. Comment parvenir à intégrer ces modèles de plus en plus volumineux sur des dispositifs de plus en plus petits ?
La réponse est l’optimisation de modèle : un processus visant à compresser la taille du modèle et à réduire sa latence. Dans cet article, nous verrons comment cela fonctionne et comment implémenter deux méthodes populaires d’optimisation de modèle, la quantification et l’élagage, dans TensorFlow.

TRAINONS UN MODELE DE BASE POUR L’OPTIMISER
Pour implémenter ces méthodes d’optimisation, nous avons besoin d’un modèle à optimiser. Nous allons donc entraîner un simple classificateur binaire pour différencier les deux lieux célèbres de Paris : la Tour Eiffel et la Mona Lisa, tels que dessinés par les joueurs du jeu de Google “Quick, draw !”. Les exemples du jeu “Quickdraw” sont des images en niveaux de gris de 28×28 pixels. Nous allons entraîner un réseau de convolution simple pour classer ces deux monuments.

METHODE DE QUANTIFICATION ET COMPRESSION DE MODELE
La quantification est une technique d’optimisation qui vise à diminuer la précision des objets dans lesquels les paramètres d’un modèle sont stockés. Par défaut, TensorFlow stocke les biais, les poids et les activations des modèles en float32, un type de données qui permet de stocker des valeurs aussi grandes que 3³⁸. Cependant, la plupart des poids et des activations de modèle ne sont pas si éloignés de zéro et ne nécessitent pas forcément une telle précision. C’est pourquoi il peut être intéressant de convertir ces float32 en une structure de données plus légère, comme le int8. La quantification permet ainsi de réduire considérablement la taille du modèle sans nécessairement affecter sa précision.

METHODE D’ELAGAGE D’UN MODELE
Une autre technique populaire d’optimisation de modèle est l’élagage de poids. Dans de grands réseaux de neurones, il est très peu probable que chaque poids joue un rôle crucial dans les performances du modèle. En identifiant les poids peu importants et en les supprimant du réseau, nous pouvons réduire l’espace nécessaire pour stocker le modèle et économiser les multiplications float lors de l’inférence, ce qui réduit la latence.

COMBINER QUANTIFICATION ET ELAGAGE
Puisque la quantification et l’élagage opèrent de manière indépendante et de manière différente, il est possible d’utiliser ces deux méthodes en même temps. Il est possible de compresser le modèle en élaguant certaines de ses pondérations, puis de quantifier les poids qui restent pour un résultat de compression plus fort.

En conclusion, la compression de modèles de machine learning peut s’avérer très utile pour optimiser les performances des modèles déployés sur des dispositifs limités en termes de mémoire et de processus de calcul. La combinaison de méthodes comme la quantification et l’élagage peut permettre de réduire considérablement la taille des modèles, tout en maintenant leur précision. Il est important de comprendre que le choix de la méthode d’optimisation dépendra du modèle et du dispositif sur lequel il sera déployé.

What do you think?

Written by Barbara

Leave a Reply

Your email address will not be published. Required fields are marked *

Produit cinématographique 3D Lumière – Vidéos 3D pour les bandes démo/YT courts/morceaux TikTok.

Les choses pourraient être bien pires.