Qu’est-ce que la distillation de jeux de données ? Un aperçu rapide
Découvre comment la distillation de jeux de données accélère l’entraînement des modèles et réduit les coûts de calcul en remplaçant de grands jeux de données par un petit ensemble optimisé d’échantillons synthétiques.

L’entraînement des modèles peut sembler être la partie la plus chronophage du travail d’un data scientist. Mais la majeure partie de son temps, souvent 60 à 80 %, est en réalité consacrée à préparer les données : les collecter, les nettoyer et les organiser pour la modélisation. À mesure que les jeux de données s’agrandissent, ce temps de préparation augmente lui aussi, ce qui ralentit les expérimentations et complique les itérations.
Pour y remédier, les chercheurs cherchent depuis des années des moyens de simplifier l’entraînement. Des approches comme les données synthétiques, la compression des jeux de données et de meilleures méthodes d’optimisation visent toutes à réduire le coût et les difficultés liés à l’utilisation de jeux de données à grande échelle, ainsi qu’à accélérer les workflows de machine learning.
Cela soulève une question essentielle : peut-on réduire considérablement la taille d’un jeu 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 de jeux de données est une réponse prometteuse.
Elle crée une version compacte d’un grand jeu de données d’entraînement tout en préservant les motifs essentiels dont le modèle a besoin pour apprendre efficacement. Elle permet d’accélérer l’entraînement, de réduire les besoins en calcul et de rendre les expérimentations plus efficaces. Tu peux voir cela comme une fiche de révision pour le modèle : un petit ensemble d’exemples de données synthétiques conçu pour lui apprendre les mêmes motifs fondamentaux que le jeu de données complet.
Dans cet article, nous allons voir comment fonctionne la distillation de jeux de données et comment elle favorise le machine learning et le deep learning à grande échelle dans des applications concrètes. Commençons !
Comprendre la distillation de jeux de données#
La distillation de jeux de données est un processus qui consiste à condenser un grand jeu de données d’entraînement en un ensemble de données beaucoup plus réduit, tout en lui permettant d’enseigner au modèle presque les mêmes informations que le jeu de données d’origine. De nombreux chercheurs parlent également de condensation de jeux de données, car l’objectif est de capturer les motifs essentiels présents dans l’ensemble du jeu de données.
Un jeu de données distillé est différent de données synthétiques générées aléatoirement ou du simple fait de sélectionner un sous-ensemble réduit d’images réelles. Ce n’est ni un faux jeu de données aléatoire ni une copie tronquée de l’original.
Il est au contraire optimisé délibérément pour capturer les motifs 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 du jeu de données.
Cette idée est apparue pour la première fois dans un article arXiv de 2018 signé Tongzhou Wang, Jun-Yan Zhu, Antonio Torralba et Alexei A. Efros. Les premiers tests utilisaient des jeux de données simples comme MNIST et CIFAR-10, ce qui permettait de montrer facilement que quelques échantillons distillés pouvaient remplacer des milliers d’images réelles.

Fig. 1. Utiliser la distillation de jeux de données pour les données d’images (Source)
Depuis, des travaux complémentaires ont approfondi la distillation de jeux de données, notamment des méthodes publiées à l’ICML et à l’ICLR qui rendent la condensation plus efficace et plus évolutive.
L’importance de la distillation de jeux de données#
La distillation de jeux de données améliore l’efficacité de l’entraînement 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 de calcul.
Elle est particulièrement utile pour l’apprentissage continu, où les modèles sont mis à jour au fil du temps, la recherche d’architectures neuronales, où de nombreuses conceptions de modèles sont testées, et l’entraînement en périphérie, où les modèles s’exécutent sur de petits appareils disposant de peu de mémoire et d’énergie. Globalement, ces avantages font de la distillation de jeux de données une excellente option pour l’initialisation rapide, l’ajustement fin accéléré et la création de premiers prototypes dans de nombreux workflows de machine learning.
Vue d’ensemble du fonctionnement de la distillation de jeux de données#
La distillation de jeux de données crée des échantillons d’entraînement synthétiques, c’est-à-dire générés artificiellement. Ces échantillons aident un modèle à apprendre d’une manière qui ressemble étroitement à un entraînement sur des données réelles. Le processus suit trois facteurs clés pendant l’entraînement normal.
Le premier est la fonction de perte, c’est-à-dire le score d’erreur du modèle qui indique à quel point ses prédictions sont incorrectes. Le deuxième est constitué des paramètres du modèle, les poids internes du réseau qui sont mis à jour au fur et à mesure de son apprentissage.
Le troisième est la trajectoire d’entraînement, 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 afin que, lorsqu’un modèle s’entraîne dessus, son erreur diminue et que ses poids soient mis à jour de la même manière qu’avec le jeu de données complet.
La distillation de jeux de données étape par étape#
Examinons plus précisément le fonctionnement du processus de distillation de jeux de données :
- Étape 1 - Initialiser les pixels synthétiques : Le processus commence par des images synthétiques qui servent d’entrées apprenables. Au départ, ces images ont peu de structure et ressemblent à des pages vierges. Au fil du temps, elles sont optimisées pour devenir des exemples informatifs.
- Étape 2 - Optimiser avec la mise en correspondance des gradients et la rétropropagation : Lorsque le modèle s’entraîne sur ces images synthétiques, il produit des gradients qui indiquent comment chaque pixel doit changer pour mieux reproduire le 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 à travers le modèle afin de déterminer quels pixels et quels poids en sont responsables, puis les met légèrement à jour. À l’aide de ces gradients, la rétropropagation ajuste progressivement les images synthétiques afin qu’elles deviennent plus informatives pour l’entraînement.
- Étape 3 - Faire correspondre le comportement entre les étapes d’entraînement : La méthode fait également correspondre les trajectoires d’entraînement, c’est-à-dire les changements successifs que traverse le modèle pendant son apprentissage. Cela garantit que le jeu de données distillé guide le modèle sur un parcours d’apprentissage similaire à celui qu’il suivrait avec le jeu de données complet.
- Étape 4 - Validation et généralisation : Enfin, le jeu de données distillé est évalué sur de vraies données de validation afin de vérifier les performances du modèle entraîné sur de nouveaux exemples. Cela permet de s’assurer que les données synthétiques enseignent des motifs généraux et fonctionnels plutôt que d’amener le modèle à mémoriser des échantillons spécifiques.

Fig. 2. Aperçu de la distillation de jeux de données (Source)
Principales méthodes de distillation de jeux de données#
Toutes les méthodes de distillation de jeux de données reposent sur la même idée fondamentale, même si elles utilisent des algorithmes différents pour y parvenir. La plupart des approches appartiennent à trois catégories : mise en correspondance des performances, mise en correspondance des distributions et mise en correspondance des paramètres.
Examinons maintenant chacune d’elles pour voir comment elle fonctionne.
Mise en correspondance des performances#
La mise en correspondance des performances dans la distillation de jeux de données consiste à créer un petit ensemble d’entraînement optimisé qui permet à un modèle d’atteindre presque la même précision que s’il avait été entraîné sur le jeu de données complet d’origine. Plutôt que de sélectionner un sous-ensemble aléatoire, les échantillons distillés sont optimisés afin qu’un modèle entraîné dessus obtienne des prédictions similaires, un comportement de perte similaire pendant l’entraînement ou une précision finale comparable à celle d’un modèle entraîné sur le jeu de données d’origine.
Le meta-learning est une méthode couramment utilisée pour améliorer ce processus. Le jeu de données distillé est mis à jour au cours d’épisodes d’entraînement répétés, afin de devenir efficace dans de nombreuses situations possibles.
Pendant ces épisodes, la méthode simule la manière dont un modèle élève apprend à partir des échantillons distillés actuels, vérifie ses performances sur des données réelles, puis ajuste les échantillons distillés afin qu’ils jouent mieux leur rôle d’enseignants. Au fil du temps, l’ensemble distillé apprend à favoriser un apprentissage rapide et une forte généralisation, même lorsque le modèle élève démarre avec des poids initiaux différents ou utilise une architecture différente. Le jeu de données distillé devient ainsi plus fiable et n’est pas lié à un seul entraînement.

Fig. 3. Le processus de meta-learning (Source)
Techniques de mise en correspondance des distributions#
La mise en correspondance des distributions génère quant à elle des données synthétiques qui reproduisent les motifs statistiques du jeu de données réel. Plutôt que de se concentrer uniquement sur la précision finale d’un modèle, cette approche s’intéresse aux caractéristiques internes qu’un réseau neuronal produit pendant l’apprentissage.
Examinons maintenant les deux techniques qui permettent la mise en correspondance des distributions.
Mise en correspondance des distributions sur une seule couche#
La mise en correspondance des distributions sur une seule couche se concentre sur une couche unique d’un réseau neuronal et compare les caractéristiques qu’elle produit pour les données réelles et synthétiques. Ces caractéristiques, également appelées activations, capturent ce que le modèle a appris à ce stade du réseau.
En faisant produire aux données synthétiques des activations similaires, la méthode encourage le jeu de données distillé à refléter les mêmes motifs importants que le jeu de données d’origine. En pratique, les échantillons synthétiques sont mis à jour à plusieurs reprises jusqu’à ce que les activations 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 peut être particulièrement efficace sur de petits jeux de données ou pour des tâches qui ne nécessitent pas de faire correspondre des hiérarchies de caractéristiques profondes et multiétapes. En alignant clairement un espace de caractéristiques, la mise en correspondance sur une seule couche fournit un signal stable et pertinent pour l’apprentissage avec le jeu de données distillé.
Mise en correspondance des distributions sur plusieurs couches#
La mise en correspondance des distributions sur plusieurs couches reprend l’idée de comparer les données réelles et synthétiques, mais à plusieurs couches d’un réseau neuronal au lieu d’une seule. Les différentes couches capturent différents types d’informations, des contours et textures simples dans les premières couches aux formes et motifs plus complexes dans les couches profondes.
En faisant correspondre les caractéristiques entre ces couches, le jeu de données distillé est amené à refléter ce que le modèle apprend à plusieurs niveaux. Comme elle aligne les caractéristiques dans l’ensemble du réseau, cette approche aide les données synthétiques à préserver des signaux plus riches sur lesquels le modèle s’appuie pour distinguer les classes.
Cette approche est particulièrement utile en vision par ordinateur, c’est-à-dire pour les tâches où les modèles apprennent à comprendre les images et les vidéos, car les motifs utiles sont répartis sur de nombreuses couches. Lorsque les distributions de caractéristiques correspondent bien à plusieurs profondeurs, le jeu de données distillé constitue un substitut plus performant et plus fiable aux données d’entraînement d’origine.
Méthodes de mise en correspondance des paramètres#
Une autre catégorie essentielle de la distillation de jeux de données est la mise en correspondance des paramètres. Au lieu de faire correspondre la précision ou les distributions de caractéristiques, elle fait correspondre l’évolution des poids d’un modèle pendant l’entraînement. En faisant en sorte que l’entraînement sur le jeu de données distillé produise des mises à jour de paramètres similaires à celles obtenues avec les données réelles, le modèle suit un parcours d’apprentissage presque identique.
Nous allons maintenant examiner les deux principales méthodes de mise en correspondance des paramètres.
Mise en correspondance sur une seule étape#
La mise en correspondance sur 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. Le jeu de données distillé est ensuite ajusté afin qu’un modèle entraîné dessus 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 difficiles où le modèle a besoin de nombreuses mises à jour pour construire des caractéristiques plus riches. La mise en correspondance sur une seule étape est donc généralement plus efficace pour les problèmes simples ou les petits jeux de données, où les motifs utiles peuvent être assimilés rapidement.
Mise en correspondance des paramètres sur plusieurs étapes#
À l’inverse, la mise en correspondance des paramètres sur plusieurs étapes examine l’évolution des poids d’un modèle sur plusieurs étapes d’entraînement, et non une seule. Cette séquence de mises à jour constitue la trajectoire d’entraînement du modèle.
Le jeu de données distillé est construit de sorte que, lorsqu’un modèle s’entraîne sur les échantillons synthétiques, sa trajectoire suive de près celle qu’il aurait avec des données réelles. En faisant correspondre une portion plus longue de l’apprentissage, l’ensemble distillé capture davantage de la structure du processus d’entraînement d’origine.
Comme elle reflète le déroulement de l’apprentissage au fil du temps, la mise en correspondance sur plusieurs étapes fonctionne généralement mieux pour les jeux de données plus grands ou plus complexes, où les modèles ont besoin de nombreuses mises à jour pour assimiler les motifs utiles. Elle nécessite davantage de calcul, car elle doit suivre plusieurs étapes, mais elle produit souvent des jeux de données distillés qui se généralisent mieux et offrent de meilleures performances que la mise en correspondance sur une seule étape.
Fonctionnement de la génération et de l’optimisation de jeux de données synthétiques#
Après avoir mieux compris les principales approches de distillation, nous pouvons maintenant voir comment les données synthétiques sont créées. Dans la distillation de jeux de données, les échantillons synthétiques sont optimisés afin de capturer le signal d’apprentissage le plus important, de sorte qu’un petit ensemble puisse remplacer un jeu de données beaucoup plus vaste.
Nous allons maintenant voir comment ces données distillées sont générées et évaluées.
Créer et évaluer des images distillées#
Pendant la distillation de jeux de données, les pixels synthétiques sont mis à jour au cours de nombreuses étapes d’entraînement. Le réseau neuronal apprend à partir des images synthétiques actuelles et renvoie un retour fondé sur les gradients, qui indique comment chaque pixel doit changer pour mieux reproduire les motifs du jeu de données réel.
Cela fonctionne parce que le processus est différentiable (c’est-à-dire que chaque étape est lisse et possède des gradients bien définis, de sorte que de petites modifications des pixels entraînent des changements prévisibles de la perte), ce qui permet au modèle d’ajuster progressivement les données synthétiques pendant la descente de gradient.
À mesure que l’optimisation se poursuit, les images synthétiques commencent à former une structure pertinente, notamment des formes et des textures que le modèle reconnaît. Ces images synthétiques affinées sont souvent utilisées pour les tâches de classification d’images, car elles capturent les principaux indices visuels dont un classifieur a besoin pour apprendre.
Les jeux de données distillés sont évalués en entraînant des modèles dessus, puis en comparant les résultats à ceux de modèles entraînés sur des données réelles. Les chercheurs mesurent la précision de validation et vérifient si l’ensemble synthétique préserve les caractéristiques discriminantes (les motifs ou signaux sur lesquels le modèle s’appuie pour distinguer une classe d’une autre) nécessaires à la séparation des classes. Ils testent également la stabilité et la généralisation sur différentes exécutions ou configurations de modèles afin de s’assurer que les données distillées n’entraînent pas de surapprentissage.
Applications concrètes de la distillation de données#
Examinons maintenant de plus près des exemples montrant comment les jeux de données distillés accélèrent l’entraînement et réduisent les coûts de calcul tout en maintenant de bonnes performances, même lorsque les données sont limitées ou très spécialisées.
Utiliser la distillation de jeux de données pour les applications de vision par ordinateur#
En vision par ordinateur, l’objectif est d’entraîner des modèles à comprendre des données visuelles comme les images et les vidéos. Ces modèles apprennent des motifs tels que les contours, les textures, les formes et les objets, puis les utilisent pour des tâches comme la classification d’images, la détection d’objets ou la segmentation. Comme les problèmes de vision présentent souvent une grande diversité d’éclairages, d’arrière-plans et de points de vue, les systèmes de vision par ordinateur ont généralement besoin de grands jeux de données pour bien se généraliser, ce qui rend l’entraînement coûteux et lent.

Fig. 4. Un exemple de distillation de jeux de données (Source)
Pour des cas d’utilisation de classification d’images comme les examens médicaux, la surveillance de la faune ou la détection de défauts en usine, les modèles font souvent face à un compromis difficile entre précision et coût d’entraînement. Ces tâches impliquent généralement d’immenses jeux de données.
La distillation de jeux de données peut compresser l’ensemble d’entraînement d’origine en un petit nombre d’images synthétiques qui contiennent toujours les indices visuels les plus importants pour le classifieur. Sur de grands benchmarks comme ImageNet, il a été démontré que des ensembles distillés n’utilisant qu’environ 4,2 % des images d’origine conservent une forte précision de classification. Cela signifie qu’un minuscule substitut synthétique peut remplacer des millions d’échantillons réels avec beaucoup moins de calcul.
Recherche d’architectures neuronales#
La recherche d’architectures neuronales, ou NAS, est une technique qui explore automatiquement de nombreuses conceptions possibles de réseaux neuronaux afin de trouver celle qui convient le mieux à une tâche. Comme le NAS doit entraîner et évaluer un grand nombre de modèles candidats, son exécution sur des jeux de données complets peut être lente et très exigeante en calcul.
La distillation de jeux de données aide en créant un petit ensemble d’entraînement synthétique qui conserve le principal signal d’apprentissage des données d’origine, afin que chaque architecture candidate puisse être testée beaucoup plus rapidement. Le NAS peut ainsi comparer efficacement les conceptions tout en conservant une fiabilité raisonnable du classement des bonnes et des mauvaises architectures, ce qui réduit le coût de recherche sans trop sacrifier la qualité finale du modèle.
Apprentissage continu et déploiement en périphérie#
Les systèmes d’apprentissage continu, c’est-à-dire les modèles qui continuent à se mettre à jour à mesure que de nouvelles données arrivent au lieu d’être entraînés une seule fois, ont besoin de mises à jour rapides et économes en mémoire. Les appareils en périphérie comme les caméras, les téléphones et les capteurs font face à des limites similaires, car leurs ressources de calcul et de stockage sont fortement contraintes.
La distillation de jeux de données est utile dans les deux cas en compressant un grand ensemble d’entraînement en un petit ensemble synthétique, afin que les modèles puissent s’adapter ou être réentraînés à l’aide d’un petit ensemble de rejeu plutôt que de l’ensemble des données. Par exemple, des travaux sur le meta-learning fondé sur des noyaux ont montré que seulement 10 échantillons distillés pouvaient atteindre une précision supérieure à 64 % sur CIFAR-10, un benchmark standard de classification d’images. Comme l’ensemble de rejeu est très compact, les mises à jour sont 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 avec la distillation des connaissances pour les grands modèles de langage. Un petit jeu de données distillé peut conserver les signaux de tâche les plus importants du modèle enseignant, afin qu’un modèle élève compressé puisse être entraîné ou actualisé plus efficacement sans perdre beaucoup en performances. Comme ces jeux de données sont minuscules, ils sont particulièrement utiles pour les usages en périphérie ou directement sur l’appareil, où le stockage et le calcul sont limités, mais où tu veux malgré tout que le modèle reste précis après les mises à jour.
Avantages et inconvénients de la distillation de données#
Voici quelques avantages de la distillation de jeux de données :
- Idéal pour les expérimentations rapides. Tu peux tester de nouvelles architectures, fonctions de perte ou hyperparamètres sans réentraîner un immense jeu de données à chaque fois.
- Avantage potentiel en matière de confidentialité. Le partage d’échantillons synthétiques distillés peut être plus sûr que celui de données réelles d’utilisateurs, puisque les exemples bruts ne sont pas directement exposés.
- Souvent plus efficace qu’une simple sélection de 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 de jeux de données offre plusieurs avantages, voici quelques limites à garder à l’esprit :
- Surapprentissage: Les données distillées fonctionnent souvent mieux pour l’architecture utilisée lors de la distillation et peuvent être moins bien transférées à des modèles très différents.
- Sensible aux hyperparamètres. Les résultats peuvent fortement dépendre de facteurs comme le taux d’apprentissage, l’initialisation ou le nombre d’étapes de distillation.
- Plus difficile à mettre à l’échelle pour la complexité du monde réel. Les méthodes qui fonctionnent bien sur des benchmarks peuvent perdre en précision sur des jeux de données volumineux, désordonnés ou en haute résolution.
Points clés à retenir#
La distillation de jeux de données permet à un petit ensemble d’échantillons synthétiques d’enseigner à un modèle presque aussi efficacement qu’un jeu de données complet. Elle rend ainsi le machine learning plus rapide, plus efficace et plus facile à mettre à l’échelle. À mesure que les modèles s’agrandissent et nécessitent davantage de données, les jeux de données distillés offrent un moyen concret de réduire les coûts de calcul sans sacrifier la précision.
Rejoins notre communauté et consulte notre dépôt GitHub pour en découvrir davantage sur l’IA. Si tu souhaites créer ton propre projet d’IA de vision, consulte nos options de licence. Découvre-en plus sur des applications comme l’IA dans la santé et l’IA de vision dans le commerce de détail en consultant nos pages consacrées aux solutions.









