En cliquant sur « Accepter tous les cookies », vous acceptez le stockage de cookies sur votre appareil pour améliorer la navigation sur le site, analyser son utilisation et contribuer à nos efforts de marketing. Plus d’infos
Paramètres des cookies
En cliquant sur « Accepter tous les cookies », vous acceptez le stockage de cookies sur votre appareil pour améliorer la navigation sur le site, analyser son utilisation et contribuer à nos efforts de marketing. Plus d’infos
Découvrez comment la distillation des ensembles de données accélère l'entraînement des modèles et réduit les coûts informatiques en remplaçant les grands ensembles de données par un petit ensemble optimisé d'échantillons synthétiques.
Les modèles d'entraînement peuvent sembler être la partie la plus chronophage du travail d'un data scientist. Mais en réalité, la majeure partie de leur temps, souvent entre 60 % et 80 %, est consacrée à la préparation des données: les collecter, les nettoyer et les organiser pour la modélisation. À mesure que les ensembles de données s'agrandissent, ce temps de préparation augmente également, ce qui ralentit les expériences et rend les itérations plus difficiles.
Pour remédier à cela, les chercheurs ont passé des années à chercher des moyens de rationaliser la formation. Des approches telles que les données synthétiques, la compression des ensembles de données et de meilleures méthodes d'optimisation visent toutes à réduire le coût et les frictions liés au traitement d'ensembles de données à grande échelle et à accélérer les workflows d'apprentissage automatique.
Une question clé qui se pose est de savoir si nous pouvons réduire considérablement un ensemble de données tout en obtenant les mêmes performances qu'en entraînant un modèle sur l'ensemble des données. La distillation des ensembles de données est une réponse prometteuse.
Il crée une version compacte d'un grand ensemble de données d'entraînement tout en conservant les modèles essentiels dont le modèle a besoin pour apprendre efficacement. Il permet un entraînement plus rapide, réduit les besoins en calcul et rend les expérimentations plus efficaces. Vous pouvez le considérer comme une fiche de révision pour le modèle, un petit ensemble d'exemples de données synthétiques conçu pour enseigner les mêmes modèles fondamentaux que l'ensemble de données complet.
Dans cet article, nous allons explorer le fonctionnement de la distillation des ensembles de données et la manière dont elle prend en charge l'apprentissage automatique et l'apprentissage profond évolutifs dans des applications concrètes. C'est parti !
Comprendre la distillation des ensembles de données
La distillation de données est un processus qui consiste à condenser un vaste ensemble de données d'apprentissage en un ensemble beaucoup plus petit qui permet néanmoins d'enseigner au modèle presque les mêmes informations que l'ensemble de données d'origine. De nombreux chercheurs appellent également ce processus « condensation de données », car son objectif est de capturer les modèles essentiels qui apparaissent dans l'ensemble de données complet.
Un ensemble de données distillé est différent des données synthétiques générées aléatoirement ou d'un simple sous-ensemble d'images réelles. Il ne s'agit pas d'un ensemble de données factices aléatoires ni d'une copie tronquée de l'original.
Au contraire, il est délibérément optimisé pour capturer les modèles les plus importants. Au cours de ce processus, chaque pixel et chaque caractéristique sont ajustés et optimisés afin qu'un réseau neuronal entraîné sur les données distillées apprenne presque comme s'il avait été entraîné sur l'ensemble des données.
Cette idée est apparue pour la première fois dans un article arXiv publié en 2018 par Tongzhou Wang, Jun-Yan Zhu, Antonio Torralba et Alexei A. Efros. Les premiers tests utilisaient des ensembles de données simples comme MNIST et CIFAR-10, ce qui a permis de démontrer facilement que quelques échantillons distillés pouvaient remplacer des milliers d'images réelles.
Fig. 1. Utilisation de la distillation des ensembles de données pour les données d'images (Source)
Depuis lors, les travaux de suivi ont permis de faire progresser la distillation des ensembles de données, notamment grâce à des méthodes publiées à l'ICML et à l'ICLR qui rendent la condensation plus efficace et plus évolutive.
L'importance de la distillation des ensembles de données
La distillation des ensembles de données améliore l'efficacité de l'apprentissage et accélère les cycles de développement. En réduisant la quantité de données dont un modèle a besoin pour apprendre, elle diminue les exigences en matière de calcul.
Cela est particulièrement utile pour l'apprentissage continu, où les modèles sont mis à jour au fil du temps, la recherche d'architecture neuronale, où de nombreux modèles sont testés, et l'apprentissage en périphérie, où les modèles fonctionnent sur de petits appareils dotés d'une mémoire et d'une puissance limitées. Dans l'ensemble, ces avantages font de la distillation des ensembles de données une excellente option pour l'initialisation rapide, le réglage fin rapide et la création de prototypes précoces dans de nombreux workflows d'apprentissage automatique.
Présentation générale du fonctionnement de la distillation des ensembles de données
La distillation des ensembles de données crée des échantillons d'entraînement synthétiques, ou générés artificiellement. Ces échantillons aident un modèle à apprendre d'une manière qui ressemble beaucoup à l'entraînement sur des données réelles. Elle fonctionne en suivant trois facteurs clés pendant l'entraînement normal.
Le premier est la fonction de perte, qui est le score d'erreur du modèle indiquant à quel point ses prédictions sont erronées. Le second est les paramètres du modèle, qui sont les poids internes du réseau qui sont mis à jour au fur et à mesure qu'il apprend.
Le troisième élément est la trajectoire d'apprentissage, qui décrit comment l'erreur et les poids évoluent étape par étape au fil du temps. Les échantillons synthétiques sont ensuite optimisés de manière à ce que, lorsqu'un modèle s'entraîne sur eux, son erreur diminue et ses poids soient mis à jour de la même manière qu'avec l'ensemble de données complet.
Un aperçu étape par étape de la distillation des ensembles de données
Voici un aperçu détaillé du fonctionnement du processus de distillation des ensembles de données :
Étape 1 - Initialisation des pixels synthétiques : le processus commence par des images synthétiques qui servent d'entrées pouvant être apprises. Au départ, ces images ont peu de structure et ressemblent à des pages blanches. Au fil du temps, elles sont optimisées pour devenir des exemples informatifs.
Étape 2 - Optimisation grâce à la correspondance des gradients et à la rétropropagation : au fur et à mesure que le modèle s'entraîne sur ces images synthétiques, il produit des gradients qui indiquent comment chaque pixel doit changer pour mieux correspondre au comportement d'entraînement des données réelles. La rétropropagation est la méthode utilisée par le réseau pour apprendre de ses erreurs. Elle renvoie l'erreur en amont dans le modèle afin de déterminer quels pixels et poids l'ont causée, puis les met légèrement à jour. À l'aide de ces gradients, la rétropropagation ajuste les images synthétiques étape par étape afin qu'elles deviennent plus informatives pour l'entraînement.
Étape 3 - Correspondance des comportements entre les étapes de formation : la méthode fait également correspondre les trajectoires de formation, c'est-à-dire les changements progressifs que subit le modèle au cours de l'apprentissage. Cela garantit que l'ensemble de données distillé guide le modèle à travers un parcours d'apprentissage similaire à celui qu'il suivrait avec l'ensemble de données complet.
Étape 4 - Validation et généralisation : enfin, l'ensemble de données distillé est évalué à partir de données de validation réelles afin de déterminer les performances du modèle entraîné sur de nouveaux exemples. Cela permet de vérifier que les données synthétiques enseignent des modèles fonctionnels généraux plutôt que d'amener le modèle à mémoriser des échantillons spécifiques.
Fig. 2. Aperçu de la distillation des ensembles de données (Source)
Principales méthodologies de distillation des ensembles de données
Toutes les méthodes de distillation des ensembles de données reposent sur le même principe fondamental, même si elles utilisent des algorithmes différents pour y parvenir. La plupart des approches se répartissent en trois catégories : l'appariement des performances, l'appariement des distributions et l'appariement des paramètres.
Ensuite, examinons chacun d'entre eux et voyons comment ils fonctionnent.
Correspondance des performances
La correspondance des performances dans la distillation des ensembles de données consiste à créer un petit ensemble d'apprentissage optimisé qui permet à un modèle d'atteindre une précision presque identique à celle qu'il aurait obtenue s'il avait été entraîné sur l'ensemble de données original complet. Au lieu de sélectionner un sous-ensemble aléatoire, les échantillons distillés sont optimisés de manière à ce qu'un modèle entraîné sur ceux-ci aboutisse à des prédictions similaires, un comportement de perte similaire pendant l'entraînement ou une précision finale similaire à celle d'un modèle entraîné sur l'ensemble de données original.
Le méta-apprentissage est une méthode couramment utilisée pour améliorer ce processus. L'ensemble de données distillé est mis à jour grâce à des épisodes d'entraînement répétés, ce qui le rend efficace dans de nombreuses situations possibles.
Au cours de ces épisodes, la méthode simule la manière dont un modèle étudiant apprend à partir des échantillons distillés actuels, vérifie les performances de cet étudiant sur des données réelles, puis ajuste les échantillons distillés afin qu'ils soient de meilleurs enseignants. Au fil du temps, l'ensemble distillé apprend à favoriser un apprentissage rapide et une généralisation solide, même lorsque le modèle étudiant part de poids initiaux différents ou utilise une architecture différente. Cela rend l'ensemble de données distillé plus fiable et indépendant d'un seul cycle d'entraînement.
Fig. 3. Le processus de méta-apprentissage (Source)
Techniques d'appariement de la distribution
Parallèlement, la mise en correspondance de la distribution génère des données synthétiques qui correspondent aux modèles statistiques de l'ensemble de données réel. Au lieu de se concentrer uniquement sur la précision finale d'un modèle, cette approche se concentre sur les caractéristiques internes générées par un réseau neuronal pendant l'apprentissage.
Ensuite, examinons les deux techniques qui régissent la correspondance de distribution.
Adaptation de distribution à une seule couche
La correspondance de distribution monocouche se concentre sur une seule couche d'un réseau neuronal et compare les caractéristiques qu'elle produit pour les données réelles par rapport aux données synthétiques. Ces caractéristiques, également appelées activations, capturent ce que le modèle a appris à ce stade du réseau.
En faisant en sorte que les données synthétiques produisent des activations similaires, la méthode encourage l'ensemble de données distillé à refléter les mêmes modèles importants que l'ensemble de données original. En pratique, les échantillons synthétiques sont mis à jour de manière répétée jusqu'à ce que les activations au niveau de la couche choisie correspondent étroitement à celles des images réelles.
Cette approche est relativement simple, car elle n'aligne qu'un seul niveau de représentation à la fois. Elle fonctionne particulièrement bien sur les petits ensembles de données ou les tâches qui ne nécessitent pas de faire correspondre des hiérarchies de caractéristiques profondes à plusieurs niveaux. En alignant clairement un espace de caractéristiques, la correspondance à une seule couche fournit un signal stable et significatif pour l'apprentissage avec l'ensemble de données distillé.
Adaptation de distribution multicouche
La correspondance de distribution multicouche repose sur l'idée de comparer des données réelles et synthétiques en effectuant cette opération à plusieurs niveaux d'un réseau neuronal plutôt qu'à un seul. Différents niveaux capturent différents types d'informations, depuis les simples contours et textures des premiers niveaux jusqu'aux formes et motifs plus complexes des niveaux plus profonds.
En faisant correspondre les caractéristiques entre ces couches, l'ensemble de données distillé est poussé à refléter ce que le modèle apprend à plusieurs niveaux. Comme elle aligne les caractéristiques à travers le réseau, cette approche aide les données synthétiques à préserver les signaux plus riches sur lesquels le modèle s'appuie pour distinguer les classes.
Cela est particulièrement utile dans le domaine de la vision par ordinateur, c'est-à-dire les tâches où les modèles apprennent à comprendre des images et des vidéos, car les modèles utiles sont répartis sur plusieurs couches. Lorsque les distributions des caractéristiques correspondent bien à plusieurs niveaux de profondeur, l'ensemble de données distillé remplace de manière plus fiable et plus efficace les données d'entraînement d'origine.
Méthodes de correspondance des paramètres
Une autre catégorie clé dans la distillation des ensembles de données est la correspondance des paramètres. Au lieu de faire correspondre la précision ou les distributions de caractéristiques, elle fait correspondre la façon dont les poids d'un modèle changent pendant l'entraînement. En faisant en sorte que l'entraînement sur l'ensemble de données distillé produise des mises à jour de paramètres similaires à celles de l'entraînement sur des données réelles, le modèle suit un parcours d'apprentissage presque identique.
Nous allons maintenant passer en revue les deux principales méthodes de correspondance des paramètres.
Correspondance en une seule étape
La correspondance en une seule étape compare ce qui arrive aux poids d'un modèle après une seule étape d'entraînement sur des données réelles. L'ensemble de données distillé est ensuite ajusté de manière à ce qu'un modèle entraîné sur celui-ci pendant une étape produise une mise à jour des poids très similaire. Comme elle se concentre uniquement sur cette mise à jour unique, la méthode est simple et rapide à exécuter.
L'inconvénient est qu'une seule étape ne reflète pas l'ensemble du processus d'apprentissage, en particulier pour les tâches plus difficiles où le modèle nécessite de nombreuses mises à jour pour développer des fonctionnalités plus riches. C'est pourquoi la correspondance en une seule étape tend à fonctionner mieux sur des problèmes plus simples ou des ensembles de données plus petits où des modèles utiles peuvent être rapidement identifiés.
Correspondance de paramètres en plusieurs étapes
En revanche, l'ajustement des paramètres en plusieurs étapes examine comment les poids d'un modèle changent au cours de plusieurs étapes d'apprentissage, et non pas seulement d'une seule. Cette séquence de mises à jour constitue la trajectoire d'apprentissage du modèle.
L'ensemble de données distillé est construit de manière à ce que, lorsqu'un modèle s'entraîne sur des échantillons synthétiques, sa trajectoire suive de près celle qu'il suivrait sur des données réelles. En correspondant à une période d'apprentissage plus longue, l'ensemble distillé capture davantage la structure du processus d'entraînement d'origine.
Comme elle reflète la manière dont l'apprentissage se déroule au fil du temps, la correspondance en plusieurs étapes fonctionne généralement mieux pour les ensembles de données plus volumineux ou plus complexes, où les modèles ont besoin de nombreuses mises à jour pour détecter des modèles utiles. Elle nécessite certes plus de calculs, car elle doit track étapes, mais elle produit souvent des ensembles de données distillés qui se généralisent mieux et offrent de meilleures performances que la correspondance en une seule étape.
Comment fonctionnent la génération et l'optimisation des ensembles de données synthétiques
Maintenant que nous comprenons mieux les principales approches de distillation, nous pouvons examiner comment les données synthétiques sont créées. Dans la distillation de jeux de données, les échantillons synthétiques sont optimisés pour capturer le signal d'apprentissage le plus important, de sorte qu'un petit ensemble peut remplacer un jeu de données beaucoup plus volumineux.
Ensuite, nous verrons comment ces données distillées sont générées et évaluées.
Création et évaluation d'images distillées
Au cours de la distillation des ensembles de données, les pixels synthétiques sont mis à jour au fil de nombreuses étapes d'apprentissage. Le réseau neuronal apprend à partir des images synthétiques actuelles et envoie un retour d'information basé sur les gradients, qui indique comment chaque pixel doit changer pour mieux correspondre aux modèles de l'ensemble de données réel.
Cela fonctionne parce que le processus est différentiable (ce qui signifie que chaque étape est fluide et présente des gradients bien définis, de sorte que de petits changements de pixels entraînent des changements prévisibles dans la perte), ce qui permet au modèle d'ajuster en douceur les données synthétiques pendant la descente du gradient.
Au fur et à mesure que l'optimisation se poursuit, les images synthétiques commencent à former une structure significative, comprenant des formes et des textures que le modèle reconnaît. Ces images synthétiques affinées sont souvent utilisées pour des tâches de classification d'images, car elles capturent les indices visuels clés dont un classificateur a besoin pour apprendre.
Les ensembles de données distillées sont évalués en entraînant des modèles sur ceux-ci et en comparant les résultats à ceux obtenus avec des modèles entraînés sur des données réelles. Les chercheurs mesurent la précision de la validation et vérifient si l'ensemble synthétique conserve les caractéristiques discriminantes (les modèles ou les signaux sur lesquels le modèle s'appuie pour distinguer une classe d'une autre) nécessaires pour séparer les classes. Ils testent également la stabilité et la généralisation entre différents essais ou configurations de modèles afin de s'assurer que les données distillées n'entraînent pas de surajustement.
Applications concrètes de la distillation des données
Ensuite, nous examinerons de plus près des exemples montrant comment les ensembles de données distillées accélèrent l'apprentissage et réduisent les coûts de calcul tout en conservant des performances élevées, même lorsque les données sont limitées ou hautement spécialisées.
Utilisation de la distillation de jeux de données pour les applications de vision par ordinateur
En matière de vision par ordinateur, l'objectif est d'entraîner des modèles à comprendre des données visuelles telles que des images et des vidéos. Ces modèles apprennent à reconnaître des motifs tels que les contours, les textures, les formes et les objets, puis utilisent ces motifs pour des tâches telles que la classification d'images, la détection d'objets ou la segmentation. Les problèmes de vision présentant souvent d'énormes variations en termes d'éclairage, d'arrière-plans et de points de vue, les systèmes de vision par ordinateur ont généralement besoin de grands ensembles de données pour bien généraliser, ce qui rend l'entraînement coûteux et lent.
Fig. 4. Exemple de distillation d'un ensemble de données (Source)
Dans le domaine de la classification d'images, comme les examens médicaux, la surveillance de la faune sauvage ou la détection des défauts en usine, les modèles doivent souvent faire face à un compromis difficile entre précision et coût de formation. Ces tâches impliquent généralement des ensembles de données volumineux.
La distillation de jeux de données permet de compresser l'ensemble d'apprentissage d'origine en un petit nombre d'images synthétiques qui contiennent toujours les indices visuels les plus importants pour le classificateur. Sur des benchmarks de grande envergure tels ImageNet, les ensembles distillés utilisant seulement environ 4,2 % des images d'origine ont démontré une grande précision de classification. Cela signifie qu'un petit proxy synthétique peut remplacer des millions d'échantillons réels avec beaucoup moins de calculs.
Recherche d'architecture neuronale
La recherche d'architecture neuronale, ou NAS, est une technique qui explore automatiquement de nombreuses conceptions possibles de réseaux neuronaux afin de trouver celle qui fonctionne le mieux pour une tâche donnée. Étant donné que la NAS doit former et évaluer un grand nombre de modèles candidats, son exécution sur des ensembles de données complets peut être lente et très gourmande en ressources informatiques.
La distillation des ensembles de données facilite le processus en créant un petit ensemble d'apprentissage synthétique qui contient toujours le signal d'apprentissage principal des données d'origine, ce qui permet de tester beaucoup plus rapidement chaque architecture candidate. Le NAS peut ainsi comparer efficacement les conceptions tout en conservant un classement raisonnablement fiable des bonnes et mauvaises architectures, ce qui réduit le coût de la recherche sans trop sacrifier la qualité finale du modèle.
Apprentissage continu et déploiement à la pointe de la technologie
Les systèmes d'apprentissage continu, c'est-à-dire les modèles qui se mettent à jour à mesure que de nouvelles données arrivent au lieu d'être formés une seule fois, nécessitent des mises à jour rapides et efficaces en termes de mémoire. Les appareils périphériques tels que les caméras, les téléphones et les capteurs sont confrontés à des limites similaires, car ils disposent de ressources informatiques et de stockage limitées.
La distillation des ensembles de données aide dans les deux cas en compressant un grand ensemble d'apprentissage en un petit ensemble synthétique, de sorte que les modèles peuvent s'adapter ou se réentraîner à l'aide d'un petit ensemble de relecture plutôt que de l'ensemble de données complet. Par exemple, des travaux de méta-apprentissage basés sur le noyau ont montré que seulement 10 échantillons distillés peuvent atteindre une précision de plus de 64 % sur CIFAR-10, une référence standard en matière de classification d'images. Le jeu de relecture étant très compact, les mises à jour deviennent beaucoup plus rapides et pratiques, en particulier lorsque les modèles doivent être actualisés fréquemment.
La distillation de jeux de données peut également fonctionner parallèlement à la distillation de connaissances pour les grands modèles linguistiques. Un petit jeu de données distillé peut conserver les signaux de tâche les plus importants du modèle enseignant, de sorte qu'un modèle élève compressé peut être formé ou actualisé plus efficacement sans perte de performance notable. Comme ces jeux de données sont minuscules, ils sont particulièrement utiles pour une utilisation en périphérie ou sur appareil, où le stockage et la puissance de calcul sont limités, mais où vous souhaitez néanmoins que le modèle reste précis après les mises à jour.
Avantages et inconvénients de la distillation des données
Voici quelques avantages liés à l'utilisation de la distillation de jeux de données :
Idéal pour les expériences rapides. Vous pouvez tester de nouvelles architectures, pertes ou hyperparamètres sans avoir à réentraîner à chaque fois un énorme ensemble de données.
Avantage potentiel en matière de confidentialité. Le partage d'échantillons synthétiques distillés peut être plus sûr que le partage de données réelles d'utilisateurs, car les exemples bruts ne sont pas directement exposés.
Souvent plus efficace que la simple sélection d'un sous-ensemble. Au lieu de se contenter de sélectionner des exemples, la distillation les optimise activement afin qu'ils soient aussi informatifs que possible.
Bien que la distillation des ensembles de données offre plusieurs avantages, voici quelques limites à garder à l'esprit :
Surajustement: les données distillées fonctionnent souvent mieux pour l'architecture utilisée pendant la distillation et peuvent être difficilement transférées vers des modèles très différents.
Sensible aux hyperparamètres. Les résultats peuvent dépendre fortement de facteurs tels que le taux d'apprentissage, l'initialisation ou le nombre d'étapes de distillation.
Plus difficile à adapter à la complexité du monde réel. Les méthodes qui fonctionnent bien sur les benchmarks peuvent perdre en précision sur des ensembles de données volumineux, désordonnés ou à haute résolution.
Principaux points à retenir
La distillation des ensembles de données permet à un petit ensemble d'échantillons synthétiques d'entraîner un modèle presque aussi efficacement qu'un ensemble de données complet. Cela rend l'apprentissage automatique plus rapide, plus efficace et plus facile à mettre à l'échelle. À mesure que les modèles se développent et nécessitent davantage de données, les ensembles de données distillés offrent un moyen pratique de réduire les coûts de calcul sans sacrifier la précision.