Logo Proprunn

ProPruNN

Elagage de réseaux de neurones
Projet ANR JCJC
Agrément n° 22-CE25-0006-01
Démarrage : 2023
Fin : 2026

Le projet ProPruNN vise à utiliser l'élagage structuré dans une méthodologie de co-conception matériel-algorithme pour améliorer la mise en œuvre matérielle des réseaux neuronaux convolutifs (CNN). La première hypothèse du projet est que la conception d'architectures matérielles tirant parti de l'élagage structuré permet d'obtenir des gains significatifs en termes de latence, de débit et de consommation. Cependant, cela peut être compliqué dans les réseaux plus complexes comme les ResNets et les DenseNets, qui nécessitent des réarrangements après la suppression des filtres. La deuxième hypothèse est qu'il est possible de prédire les performances des réseaux élagués en termes de précision et de métriques de puissance, de débit et de latence. Le but du projet ProPruNN est de vérifier ces deux hypothèses, et de mettre en place un pipeline de conception conjointe permettant de générer des paires d’architectures matérielles et de réseaux neuronaux à très faible latence ou à très faible consommation énergétique en maintenant des précisions proches de l’état de l’art.

Cadre du projet

Les réseaux neuronaux profonds (DNN) ont révolutionné la classification des images, la détection des objets et la traduction automatique, mais au prix d'une complexité accrue, d'une consommation d'énergie et d'émissions de gaz à effet de serre. Dans le monde réel, il est nécessaire d'effectuer l'inférence des DNN sur des systèmes embarqués avec des ressources limitées. Pour résoudre ces problèmes, deux approches sont possibles : la conception indépendante du matériel et la conception conjointe du matériel.  La conception indépendante du matériel modifie la structure du réseau pour réduire le nombre de paramètres et de calculs, tandis que la conception conjointe du matériel utilise par exemple la quantification et l'élagage pour réduire le nombre de bits utilisés pour représenter les paramètres et les données. L'élagage structuré, qui supprime les plus grandes structures telles que les neurones entiers ou les filtres de convolution, est la technique d'élagage qui nous intéresse dans ce projet.

Objectif

Le projet ProPruNN vise à concevoir des accélérateurs CNN sur FPGA qui bénéficient d'un élagage structuré pour obtenir des gains significatifs en termes de débit, de latence et d'efficacité énergétique.  Après avoir conçu des architectures matérielles qui prennent en charge l'élagage structuré, le projet vise à mesurer l'effet de l'élagage sur la précision, la latence et la consommation d'énergie, et à développer des modèles prédictifs qui relient l'élagage structuré à ces paramètres. Le projet vise également à rivaliser avec la littérature en concevant des paires d'architectures CNN-matériel qui atteignent une faible latence (<1ms) tout en maintenant des précisions acceptables. Enfin, le projet vise à concevoir des réseaux neuronaux efficaces ayant un très faible impact sur l'environnement et pouvant être orientés vers un objectif particulier, tel que la consommation d'énergie, lors du design en utilisant les prédicteurs développés précédemment. Les gains potentiels en termes de consommation d'énergie pourraient être d'un ordre de grandeur pour une précision comparable.

Méthode utilisée

L'idée derrière le projet ProPruNN est d'utiliser l'élagage structuré pour faire de la recherche automatique d’architectures neuronales. L'avantage de cette méthode par rapport aux approches classiques est que nous pouvons laisser le réseau décider lui-même de sa structure pendant l'apprentissage. En incorporant les prédicteurs que nous prévoyons de créer dans la fonction de perte, le réseau optimisera lui-même sa structure en fonction d'un double objectif de précision et de performance matérielle (c'est-à-dire latence ou consommation d'énergie).

Pour ce faire, plusieurs étapes sont nécessaires. Tout d'abord, il sera nécessaire de développer nos propres architectures matérielles d'accélérateurs CNN. Deux types d'architectures sont possibles. D'une part, les architectures récursives, dans lesquelles les ressources matérielles sont partagées entre les différentes couches convolutionnelles. L'avantage de cette architecture est qu'elle peut supporter n'importe quelle taille de réseau de neurones, à condition d'avoir un niveau de programmabilité suffisant, c'est-à-dire qu'il est possible de leur indiquer au moment de l'inférence via un ordonnanceur comment leurs éléments de traitement doivent être utilisés et sur quelles données. L'autre type correspond aux architectures pipelinées. Cette fois, l'architecture matérielle de l'accélérateur dépend des hyperparamètres du réseau. Il s'agirait alors de couples CNN - architectures matérielles dont la synthèse doit être automatisée. Dans le cadre du projet ProPruNN, de telles architectures ne sont pas envisageables. En effet, nous voulons créer des jeux de données reliant les CNNs à leurs métriques de performance matérielle (latence, consommation d'énergie), sur lesquels nous avons l'intention d'effectuer des tâches d'apprentissage. Pour effectuer des tâches d'apprentissage, nous avons besoin d'un jeu de données suffisamment grand (des centaines au moins). Créer un tel jeu de données pour un nombre limité de quelques architectures récursives programmables est possible : la synthèse de ces architectures prendra quelques jours pour chacune, sur lesquelles nous pourrons évaluer par simulation l'exécution d'un grand nombre de CNNs différents. S'il fallait au contraire générer plusieurs centaines de couples CNN pipelinés - architectures matérielles, le temps nécessaire serait ingérable (plusieurs centaines de jours de synthèse). Une deuxième raison pour laquelle nous avons choisi de nous concentrer sur ces architectures récursives est également que les travaux les plus avancés dans la littérature sur le jeu de données ImageNet les utilisent également. Et la dernière raison est que les architectures récursives sont plus simples à dimensionner pour utiliser le maximum dans un FPGA donné, contrairement aux architectures pipelinées dont la structure dépend du CNN considéré.

Objective

La deuxième étape consiste à créer des modèles prédictifs de la latence et de la consommation énergétique du circuit. Pour ce faire, nous utiliserons le produit de l'étape précédente, c'est-à-dire les architectures matérielles et les outils permettant d'exécuter les CNN, afin de créer un jeu de données associant un CNN élagué de manière structurée à ses performances matérielles (latence, consommation énergétique). Ensuite, nous comparerons les approches de prédiction des performances : une approche experte, basée sur certaines métriques matérielles pour prédire la latence ou la consommation électrique du CNN sur un matériel donné, et une approche basée sur l'apprentissage. Nous comparerons ensuite ces deux approches sur le jeu de données considéré. L'objectif sera alors que le réseau, lors de l'apprentissage, façonne sa propre structure sans dégrader sa précision.

Les résultats attendus

Le projet ProPruNN aborde le problème sociétal de l'impact écologique de l'apprentissage automatique en réduisant la complexité des réseaux par l'élagage et en concevant des réseaux neuronaux avec des objectifs de faible consommation d'énergie. La technique proposée implique une seule session de formation qui conduit à une structure de réseau efficace, contrairement à l'approche gourmande en CO2 de la littérature sur les recherches d’architectures de réseaux de neurones conjointes au matériel. La demande industrielle de solutions d'apprentissage automatique exige des compromis entre la précision, la latence et la consommation d'énergie. Le projet ProPruNN s'aligne sur cette demande en intégrant des critères de consommation d'énergie et de latence dans la conception du réseau et l'architecture matérielle.

Rôle de l'école

IMT Atlantique est un pole de recherche bien établi, qui facilite les collaborations interdisciplinaires et les partenariats avec d'autres institutions et organisations. Il fournira l'infrastructure, les ressources et l'expertise nécessaires pour permettre aux chercheurs de mener à bien leurs travaux.

Les partenaires

Diverses collaborations industrielles existantes avec des entreprises telles que Stellantis, OSO AI et GoodFloow peuvent bénéficier de l'expertise développée dans le cadre du projet ProPruNN pour construire des réseaux neuronaux adaptés à leurs cibles matérielles.  Les FPGA sont une cible compétitive pour la faible latence et la consommation d'énergie. Le projet ProPruNN va également renforcer mes collaborations universitaires internationales. Tout d'abord, notre équipe est en lien avec Polytechnique Montréal, qui est en relation avec l'institut IVADO pour lequel il propose des solutions pour des implémentations matérielles de réseaux neuronaux. À ce titre, l'approche originale du projet ProPruNN est d'un grand intérêt pour lui, puisqu'elle fait face aux mêmes défis d'intégrabilité des réseaux neuronaux. Une autre collaboration est prévue avec l'Université de Tampere en Finlande, avec laquelle nous échangeons des étudiants sur ce type de sujets.

Contacts

Mathieu Léonardon, Maitre de conférence

du département MEE

Enjeux du projet
Objectifs de développement durable