Réduire la taille de votre modèle d'IA tout en conservant les mêmes performances

Introduction

La demande croissante en intelligence artificielle (IA) nécessite des modèles plus petits et plus efficaces pour des ressources limitées en termes d'appareils. Ces modèles doivent obtenir des résultats de test comparables malgré la réduction de taille, afin de garantir la précision et la fiabilité. Cet article examine quatre techniques d'optimisation de l'apprentissage automatique qui permettent d'obtenir des modèles d'IA compacts sans compromettre les performances : La distillation de modèles, l'analyse de modèles (model spruning), la quantification de modèles et la distillation d'ensembles de données.


Modèle de distillation

Définition : qu'est-ce que la distillation des connaissances ?

La distillation des connaissances est le processus de transfert des connaissances d'un grand modèle vers un modèle plus petit. Dans l'apprentissage automatique, les grands modèles ont certes une capacité de connaissance supérieure à celle des petits modèles, mais cette capacité peut ne pas être pleinement exploitée. La distillation des connaissances consiste à transférer les connaissances d'un grand modèle à un modèle plus petit, sans qu'elles perdent leur validité.

Processus

Le processus de distillation du modèle implique l'entraînement d'un modèle d'élève plus petit, qui imite le comportement d'un modèle d'enseignant plus grand. En utilisant les connaissances que possède le modèle de l'enseignant, le modèle de l'élève peut atteindre des performances similaires, bien qu'il soit nettement plus petit. Pour ce faire, le modèle élève est généralement entraîné à l'aide d'une combinaison des données d'entraînement initiales et des étiquettes souples générées par le modèle enseignant. En transférant les connaissances du modèle de l'enseignant vers le modèle de l'élève, nous créons un modèle compact qui contient les informations essentielles nécessaires à des prédictions précises.

Distillation des connaissances
Le cadre enseignant-élève pour la distillation des savoirs [1]

Modèle Pruning

Définition : qu'est-ce que le model pruning ?

Le model pruning est une technique qui consiste à supprimer des connexions, des paramètres ou des couches entières inutiles d'un réseau neuronal pré-entraîné. Le pruning peut être effectué sur la base de différents critères, tels que la taille des poids, l'analyse de sensibilité ou la parcimonie structurée. En éliminant les composants redondants ou moins importants, nous pouvons réduire considérablement la taille du modèle tout en préservant ses performances. En outre, le pruning peut également conduire à une amélioration de la vitesse d'inférence et à une réduction des besoins en mémoire. Cette technique constitue une approche attrayante pour le déploiement de modèles d'IA sur des appareils aux ressources limitées.


Quantification du modèle

Définition : Qu'est-ce que la quantification des modèles ?

La quantification du modèle consiste à réduire la précision des valeurs numériques dans un réseau neuronal. En général, les modèles d'apprentissage profond utilisent des nombres à virgule flottante de 32 bits (FP32) pour représenter les poids et les activations. Cependant, en quantifiant le modèle sur des représentations d'une largeur de bit inférieure, nous pouvons réduire considérablement la taille du modèle et l'utilisation de la mémoire. Par exemple, des nombres entiers de 8 bits (INT8)

Explication

La réduction du nombre de bits signifie que le modèle qui en résulte nécessite moins de mémoire, consomme moins d'énergie (en théorie) et que des opérations telles que la multiplication matricielle avec arithmétique entière peuvent être exécutées beaucoup plus rapidement. En outre, cela permet d'exécuter des modèles sur des appareils intégrés qui ne supportent parfois que des types de données entiers.

Bien que la quantification puisse entraîner quelques erreurs de quantification, des techniques modernes telles que l'apprentissage sensible à la quantification peuvent minimiser la perte de précision. Avec un étalonnage et une optimisation appropriés, les modèles quantifiés peuvent atteindre des performances similaires à leurs homologues de pleine précision, tout en utilisant moins de ressources de calcul. Dans cet article de NVIDIA [2], vous trouverez plus d'informations sur l'entraînement sensible à la quantification.

Avec la quantification sur 8 bits, chaque valeur de poids et d'activation dans le modèle est limitée à un nombre entier de 8 bits qui peut représenter des valeurs de 0 à 255. Cela signifie qu'au lieu de disposer d'un large éventail de valeurs en virgule flottante, nous limitons la plage à un ensemble discret de valeurs entières. Cette réduction de la précision permet un stockage et un calcul efficaces, car les entiers de 8 bits utilisent moins de bits que les nombres à virgule flottante de 32 bits.

Il convient de noter que la quantification sur 8 bits n'est qu'un exemple de quantification. Il existe d'autres techniques de quantification, comme la quantification sur 4 bits, dans laquelle la précision est encore réduite à des entiers de 4 bits. L'idée de base reste la même - représenter les poids et les activations avec moins de bits afin d'obtenir des modèles de taille plus petite et des besoins en mémoire moins importants.


Distillation d'ensembles de données

Définition : Qu'est-ce que la distillation d'ensembles de données ?

La distillation d'ensembles de données est une technique qui consiste à entraîner un modèle plus petit en utilisant un sous-ensemble soigneusement sélectionné des données d'entraînement initiales. L'objectif est de créer un ensemble de données distillé qui capture les modèles et caractéristiques essentiels de l'ensemble de données complet tout en réduisant considérablement sa taille. Cet ensemble de données distillées sert de substitut à l'ensemble de données original et permet d'entraîner des modèles qui atteignent des performances comparables tout en nécessitant moins de mémoire.

Distillation de dataset
Un aperçu du processus de distillation des ensembles de données [3]

Processus

Le processus de distillation de l'ensemble des données comprend généralement les étapes suivantes :

  1. Sélection de l'ensemble de données : La première étape consiste à sélectionner un sous-ensemble représentatif des données de formation initiales. Ce sous-ensemble doit couvrir la distribution des données et capturer les principaux modèles et caractéristiques de l'ensemble des données. Pour s'assurer que l'ensemble de données distillé est diversifié et représentatif, différentes techniques peuvent être utilisées, telles que le clustering ou l'échantillonnage stratifié.
  2. Entraînement sur modèle : Une fois l'ensemble de données distillé créé, un modèle plus petit est entraîné sur ce sous-ensemble. Le processus d'apprentissage comprend l'optimisation des paramètres du modèle pour l'adapter au jeu de données distillé, de manière similaire à l'apprentissage traditionnel sur le jeu de données complet. Toutefois, comme le jeu de données distillé est plus petit, le processus d'apprentissage est généralement plus rapide et nécessite moins de ressources informatiques.
  3. Évaluation de la performance : Une fois que le modèle plus petit a été entraîné sur l'ensemble des données distillées, sa performance est évaluée afin de juger de son efficacité. Selon la tâche et l'application, cette évaluation peut inclure la mesure d'indicateurs tels que l'exactitude, la précision, la reconnaissance ou le score F1. En comparant la performance du modèle distillé à celle du modèle complet, nous pouvons déterminer dans quelle mesure la distillation du dataset a été efficace.

Inconvénients

  1. Perte d'informations : Étant donné que la distillation des ensembles de données sélectionne un sous-ensemble des données d'apprentissage initiales, il existe un risque de perte d'informations. L'ensemble de données distillé peut ne pas capturer toutes les nuances et les cas rares présents dans l'ensemble de données complet, ce qui peut entraîner une baisse des performances du modèle dans certains scénarios.
  2. Généralisation aux données non vues : Le modèle plus petit entraîné sur l'ensemble de données distillées peut ne pas se généraliser aussi bien à des données non vues qu'un modèle entraîné sur l'ensemble de données complet. Il est essentiel d'évaluer soigneusement les performances du modèle distillé, à la fois sur l'ensemble de données d'apprentissage et sur l'ensemble de données d'évaluation, afin de s'assurer qu'il conserve des performances satisfaisantes à travers différentes distributions de données.
  3. Distorsion de l'ensemble des données : Il existe une possibilité de biais lors de la sélection de l'ensemble de données distillées. Si l'ensemble de données distillées n'est pas représentatif de l'ensemble de données complet, le modèle formé peut présenter un comportement biaisé, ce qui affecte son équité et sa précision. Il est nécessaire d'examiner et d'évaluer soigneusement l'ensemble de données distillées afin d'atténuer de tels biais.

Conclusion

L'efficacité et la compacité sont des aspects essentiels de l'utilisation de modèles d'IA dans des environnements aux ressources limitées. En utilisant des techniques telles que la distillation de modèles, l'élagage de modèles, la quantification de modèles et la distillation d'ensembles de données, nous pouvons réduire efficacement la taille des modèles d'IA sans compromettre les performances. Ces techniques offrent des solutions pratiques pour optimiser la taille des modèles et permettent de les utiliser sur des terminaux, des plateformes mobiles et d'autres environnements à ressources limitées. Dans le développement de l'IA, l'équilibre entre la taille des modèles et les performances devient crucial pour une adoption à grande échelle dans différents domaines.

Plus

Si vous souhaitez lire d'autres blogs de Konfuzio liés à l'IA :


Littérature

[ 1 ] J. Gou, B. Yu, S. J. Maybank, et D. Tao, "Knowledge Distillation : A Survey", International Journal of Computer Vision, accepté pour publication, 2021. [arXiv:2006.05525 [cs.LG]]

[ 2 ] N. Zmora, H. Wu, and J. Rodge, "Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT," Jul 20, 2021.

[ 3 ] R. Yu, S. Liu, and X. Wang, "Dataset Distillation : A Comprehensive Review", arXiv preprint arXiv:2301.07014, 2023.

"
"
Avatar de Mohamed Dhiab

Derniers articles