La distillation des connaissances, également connue sous le nom de distillation de modèles, est une technique d'apprentissage automatique par laquelle les connaissances d'un modèle volumineux et complexe (l'enseignant) sont transférées à un modèle plus petit et plus simple (l'étudiant). L'objectif est de créer un modèle compact qui conserve la précision prédictive du modèle plus grand tout en étant plus efficace sur le plan computationnel lors de l'inférence. Cette approche est particulièrement utile pour déployer des modèles sur des appareils aux ressources limitées, comme les téléphones mobiles, où le coût de calcul d'un grand modèle serait prohibitif. Le processus exploite l'idée que la sortie d'un grand modèle, en particulier ses probabilités « douces », contient des informations plus riches que la simple étiquette de classe finale, et que ces informations peuvent être utilisées pour entraîner efficacement un modèle plus petit.
La distillation des connaissances se distingue de la compression de modèles, qui désigne les méthodes visant à réduire la taille d'un modèle existant, par exemple en diminuant le nombre de bits par paramètre, sans entraîner un nouveau modèle. La compression préserve généralement l'architecture et le nombre de paramètres, tandis que la distillation implique l'entraînement d'un nouveau modèle plus petit. La technique a été appliquée avec succès dans divers domaines, notamment la détection d'objets, les modèles acoustiques, le traitement du langage naturel et, plus récemment, les réseaux de neurones pour graphes sur des données non structurées en grille.
Contexte historique
Le concept de distillation des connaissances trouve ses racines dans les recherches plus larges sur l'apprentissage profond et les réseaux de neurones. Bien que l'idée de transférer des connaissances entre modèles ait été explorée sous diverses formes, la formulation moderne est souvent attribuée à un article de 2015 de Geoffrey Hinton, Oriol Vinyals et Jeff Dean, intitulé « Distilling the Knowledge in a Neural Network ». Ce travail a formalisé l'utilisation de la température dans la fonction softmax pour adoucir la sortie de l'enseignant, permettant ainsi un transfert de connaissances plus efficace. Depuis lors, la distillation des connaissances est devenue une technique standard dans la boîte à outils de l'apprentissage automatique, avec de nombreuses variantes et applications.
Principes fondamentaux
Le principe fondamental de la distillation des connaissances repose sur l'idée qu'un grand modèle, comme un réseau de neurones très profond ou un ensemble de modèles, possède une capacité de connaissance supérieure à celle d'un modèle plus petit. Cependant, cette capacité peut ne pas être pleinement utilisée, et l'évaluation du grand modèle est coûteuse en calcul, quelle que soit la manière dont sa capacité est exploitée. La distillation vise à transférer les connaissances encodées dans le grand modèle vers un modèle plus petit sans perte de validité. Le modèle plus petit, étant moins coûteux à évaluer, peut ensuite être déployé sur du matériel moins puissant.
L'idée clé est que la sortie « douce » d'un modèle entraîné, qui attribue des probabilités à diverses classes, contient des informations sur la représentation interne du modèle. Par exemple, lorsqu'un modèle classe correctement une image de chat, il peut attribuer une probabilité élevée à la classe « chat », mais aussi des probabilités faibles mais non nulles à « chien » ou « renard ». Ces probabilités plus faibles encodent des similarités et relations subtiles entre les classes, qui sont perdues si l'on n'utilise que l'étiquette dure (la classe la plus probable). La distillation des connaissances exploite ces informations douces pour enseigner au modèle étudiant une représentation plus riche.
Formulation mathématique
Dans une tâche de classification typique, la dernière couche d'un réseau de neurones utilise une fonction softmax pour convertir les logits (scores bruts) en probabilités. La softmax standard est donnée par :
\( y_i(x) = \frac{e^{z_i(x)}}{\sum_j e^{z_j(x)}} \)
où \( z_i(x) \) est le logit pour la classe \( i \) étant donné l'entrée \( x \). Dans la distillation des connaissances, un paramètre de température \( t \) est introduit, modifiant la softmax comme suit :
\( y_i(x|t) = \frac{e^{z_i(x)/t}}{\sum_j e^{z_j(x)/t}} \)
Une température \( t \) plus élevée produit une distribution de probabilités plus douce, ce qui signifie que les probabilités sont plus uniformément réparties entre les classes. Cette distribution plus douce révèle davantage d'informations sur les relations entre les classes, car la confiance du modèle dans les classes secondaires devient plus prononcée.
Pendant la distillation, le modèle étudiant est entraîné sur un ensemble de transfert, qui peut être l'ensemble de données d'origine ou de nouvelles données, éventuellement non étiquetées. La fonction de perte est généralement l'entropie croisée entre la sortie de l'étudiant et celle de l'enseignant, toutes deux calculées à une température élevée. La perte pour une entrée \( x \) est donnée par :
\( E(x|t) = -\sum_i \hat{y}_i(x|t) \log y_i(x|t) \)
où \( \hat{y}_i(x|t) \) est la sortie de l'enseignant et \( y_i(x|t) \) celle de l'étudiant. L'utilisation d'une température élevée augmente l'entropie de la sortie, fournissant ainsi plus d'informations à l'étudiant pour apprendre et réduisant la variance des gradients entre les différents enregistrements, ce qui permet un taux d'apprentissage plus élevé.
Processus d'entraînement
Le processus d'entraînement par distillation des connaissances implique généralement plusieurs étapes. Tout d'abord, un grand modèle enseignant est entraîné sur l'ensemble de données d'origine en utilisant des techniques standard. Ce modèle peut être un réseau unique ou un ensemble de réseaux. Une fois l'enseignant entraîné, ses sorties douces sont générées pour l'ensemble de transfert, souvent à une température élevée. Ensuite, le modèle étudiant est entraîné pour imiter ces sorties douces, en utilisant la fonction de perte décrite ci-dessus.
Dans certains cas, la perte est augmentée avec l'entropie croisée entre la sortie de l'étudiant et les étiquettes de vérité terrain, si celles-ci sont disponibles. Cette combinaison aide l'étudiant à apprendre à la fois les connaissances de l'enseignant et les étiquettes réelles. La température est généralement ajustée au cours de l'entraînement, commençant à une valeur élevée et diminuant progressivement jusqu'à 1, pour passer de l'apprentissage des cibles douces à l'affinage avec les étiquettes dures.
Applications
La distillation des connaissances a été appliquée avec succès dans de nombreux domaines de l'intelligence artificielle. En vision par ordinateur, elle est utilisée pour la détection d'objets et la classification d'images, permettant aux modèles de fonctionner sur des appareils de périphérie. En reconnaissance vocale, les modèles acoustiques bénéficient de la distillation pour réduire la latence et l'utilisation de la mémoire. Dans le traitement du langage naturel, la distillation est utilisée pour compresser de grands modèles basés sur des transformeurs, tels que les grands modèles de langage, en versions plus petites pouvant être déployées sur des appareils mobiles ou pour des applications en temps réel. Par exemple, un grand modèle comme un système d'IA générative peut être distillé en un modèle plus petit pour des tâches spécifiques, tout en conservant une grande partie de ses performances.
Plus récemment, la distillation des connaissances a été étendue aux réseaux de neurones pour graphes, qui opèrent sur des données non structurées en grille, comme les réseaux sociaux ou les structures moléculaires. Cette expansion démontre la polyvalence de la technique à travers différents types de données et architectures.
Variantes et extensions
Plusieurs variantes de la distillation des connaissances ont été développées pour répondre à des défis spécifiques. Une variante notable est la distillation inverse, où les connaissances sont transférées d'un modèle plus petit vers un modèle plus grand. Cette approche est moins courante mais peut être utile dans des scénarios où un petit modèle a été entraîné sur des données spécifiques et où l'objectif est d'améliorer les performances d'un modèle plus grand sur ces données.
D'autres extensions incluent la distillation basée sur l'attention, où l'étudiant apprend à imiter les cartes d'attention de l'enseignant, et la distillation basée sur les caractéristiques, où des représentations intermédiaires sont utilisées comme cibles. Ces méthodes visent à améliorer la fidélité du transfert de connaissances en capturant des informations plus détaillées de l'enseignant.
Avantages et limites
Le principal avantage de la distillation des connaissances est la possibilité de déployer des modèles performants sur des appareils aux ressources limitées sans perte significative de précision. Cela est crucial pour des applications comme les applications mobiles, les systèmes embarqués et l'inférence en temps réel. La distillation peut également conduire à des temps d'inférence plus rapides et à une consommation d'énergie réduite.
Cependant, il existe des limites. Le processus d'entraînement nécessite un enseignant bien entraîné, ce qui peut être coûteux en calcul à obtenir. De plus, le modèle étudiant peut ne pas toujours atteindre le même niveau de performance que l'enseignant, surtout si l'écart de capacité est trop grand. Le choix de la température et de l'ensemble de transfert nécessite également un réglage minutieux.
Relation avec d'autres techniques
La distillation des connaissances est souvent utilisée en conjonction avec d'autres techniques d'optimisation de modèles. Par exemple, l'élagage de modèles peut être appliqué au modèle étudiant après la distillation pour réduire encore sa taille. L'augmentation de données peut être utilisée pour élargir l'ensemble de transfert, améliorant ainsi la généralisation de l'étudiant. La distillation est également liée à l'apprentissage par curriculum, car les cibles douces peuvent être considérées comme une forme d'apprentissage progressif.
Dans le contexte de l'apprentissage profond, la distillation est une forme d'apprentissage par transfert, où les connaissances d'un modèle sont transférées à un autre. Elle est également étroitement liée à l'apprentissage par renforcement avec retour d'IA, bien que cette dernière se concentre sur l'alignement des modèles avec les préférences humaines.
Orientations futures
À mesure que les modèles continuent de croître en taille, en particulier dans le domaine des grands modèles de langage, la distillation des connaissances est susceptible de devenir encore plus importante. Les chercheurs explorent des moyens de distiller les connaissances de modèles massifs, comme ceux développés par OpenAI, Anthropic et Google DeepMind, en modèles plus petits et plus efficaces. Cela est crucial pour démocratiser l'accès aux capacités avancées de l'IA, car cela permet à des organisations plus petites et à des développeurs individuels d'utiliser des modèles puissants sans nécessiter de ressources computationnelles étendues.
Un autre domaine de recherche est la distillation en ligne, où l'enseignant et l'étudiant sont entraînés simultanément, et la distillation collaborative, où plusieurs modèles apprennent les uns des autres. Ces approches visent à améliorer l'efficacité et l'efficience du processus de distillation.
En résumé, la distillation des connaissances est une technique puissante pour la compression de modèles et le transfert de connaissances. En exploitant les sorties douces des grands modèles, elle permet de créer des modèles compacts à la fois précis et efficaces, ce qui en fait une pierre angulaire des stratégies modernes de déploiement de l'apprentissage automatique.