Thèse de Martial Guidez


Sujet :
Compression Dynamique de Réseaux de Neurones

Date de début : 08/01/2024
Date de fin (estimée) : 08/01/2027

Encadrant : Christophe Garcia
Co-encadrant : Stefan Duffner

Résumé :

La recherche en apprentissage automatique et en réseaux de neurones profonds (DNN) a fait des progrès considérables au cours des dernières décennies. Les modèles DNN de pointe nécessitent généralement de grandes quantités de données pour être entraînés et contiennent un nombre considérable de paramètres, ce qui entraîne des exigences globalement élevées en termes de ressources, de calcul et de mémoire, et donc d'énergie. Au cours des dernières années, cela a donné lieu à des approches visant à réduire ces exigences, où, par exemple, pendant ou après l'entraînement, des parties du modèle sont supprimées (pruning/élagage) ou stockées avec une précision moindre (quantization/quantification) ou des modèles de substitution sont entraînés (knowledge distillation/distillation des connaissances) ou où la meilleure configuration est recherchée en testant différents paramètres (Recherche d'Architecture Neuronale, NAS).

Mais ces accélérateurs sont généralement spécifiques à un matériel donné et sont optimisés pour satisfaire certains critères de performance statiques. Cependant, pour de nombreuses applications, les exigences de performance d'un modèle DNN déployé sur une plateforme matérielle donnée ne sont pas statiques, mais évoluent de manière dynamique à mesure que ses conditions de fonctionnement et son environnement changent. Dans le cadre de ce projet financé par l'ANR, nous proposons une approche interdisciplinaire originale qui permet aux modèles DNN d'être configurables de manière dynamique au moment de l'exécution sur une architecture d'accélérateur matériel reconfigurable donnée, en fonction de l'environnement externe, suivant une approche basée sur des boucles de rétroaction et la théorie du contrôle.

Pour un modèle DNN donné, différentes variantes avec des niveaux de précision incrémentiels peuvent être obtenues en réglant les paramètres le long de différentes dimensions : 

 

  1.     la précision des données ou la quantification (augmentation/diminution de la largeur en bits des activations et/ou des poids),
  2.     le degré de "creux" (sparcification) (par exemple, élagage, décomposition de tenseurs),
  3.     la profondeur du réseau de neurones (nombre et type de couches de réseau à exécuter).

En fonction du niveau de précision choisi, la précision de sortie moyenne changera, ainsi que la consommation d'énergie et le timing. L'observation clé est que, pour certaines entrées particulièrement "faciles", l'utilisation de calculs énergivores à haute précision est un "surdimensionnement". Inversement, pour les entrées "difficiles", des calculs écoénergétiques à faible précision ne suffisent pas. Par conséquent, pouvoir changer dynamiquement la précision du logiciel est essentiel pour permettre des calculs de réseaux de neurones écoénergétiques et précis.