Après avoir conçu un processeur graphique peu énergivore capable de faire tourner un réseau neuronal sur un smartphone, une équipe du MIT a pris le problème par l'autre bout de la lorgnette. Elle a développé une méthode pour modéliser la consommation d'un réseau neuronal afin de pouvoir l'optimiser pour les terminaux mobiles. Les résultats sont prometteurs.

au sommaire


    Pour le moment, la solution pour pouvoir faire fonctionner une applicationapplication d'intelligence artificielle (IA) sur un téléphone mobile sans épuiser sa batterie en quelques minutes consiste à s'appuyer sur des serveurs en ligne auxquels les données sont transmises pour traitement. C'est ainsi que fonctionnent notamment les assistants virtuels comme SiriSiri (AppleApple), CortanaCortana (MicrosoftMicrosoft), Bixby (SamsungSamsung) ou Assistant (GoogleGoogle). Trouver le moyen de faire fonctionner une IA directement sur un terminal mobile ouvrirait la voie à de nouvelles applications et à des usages encore inédits.

    L'année dernière, une équipe de chercheurs du Massachusetts Institute of Technology (MIT) emmenée par le professeur Vivienne Sze avait présenté un processeur graphique (GPU, Graphical Processing UnitGraphical Processing Unit) doté de 168 cœurs de calcul (voir article ci-dessous). Baptisé Eyeriss, il est capable d'exécuter un réseau neuronal d'apprentissage profondapprentissage profond (deep learning) en étant dix fois moins énergivore qu'une puce graphique standard. Poursuivant leurs travaux, les chercheurs ont décidé d'aborder le problème dans le sens opposé, au niveau de l'architecture du réseau neuronal convolutif.

    Ils ont développé une méthode qui permet d'estimer la quantité d'énergieénergie dont un réseau neuronal aurait besoin pour fonctionner sur un certain type de terminal. Cet outil leur a ensuite permis de tester différentes techniques d'optimisation de l'architecture au niveau de l'échange des données entre les différentes couches du réseau d'apprentissage profond. Dans l'article scientifique qui sera prochainement présenté à la Computer Vision and Pattern Recognition Conference, il est précisé que les différentes méthodes ont permis de réduire jusqu'à 73 % la consommation d'énergie par rapport à l'implantation standard d'un réseau neuronal. Comparé aux meilleures techniques d'optimisation actuelles, le gain est de 43 %.

    Dans un réseau neuronal convolutif, chaque couche est composée de nœuds qui ont chacun un poids, c’est-à-dire une incidence plus ou moins importante sur le nœud auquel ils vont transmettre des informations. © Vchalup, Fotolia

    Dans un réseau neuronal convolutif, chaque couche est composée de nœuds qui ont chacun un poids, c’est-à-dire une incidence plus ou moins importante sur le nœud auquel ils vont transmettre des informations. © Vchalup, Fotolia

    Optimiser l'architecture des réseaux neuronaux

    L'équipe du professeur Sze s'est concentrée sur la circulation du flux de données entre les différentes couches du réseau neuronal convolutif et le poids de chaque interconnexion entre les nœudsnœuds qui composent ces couches. Ce poids est déterminé en fonction de la contribution qu'un nœud apporte au travail que va effectuer le nœud qui reçoit les informations. Leur outil de calcul leur a servi à déterminer la répartition de la consommation d'énergie à travers le réseau.

    À partir de ces informations, ils ont alors pu travailler sur des techniques d'optimisation de l'architecture. Pour cela, les scientifiques du MIT se sont appuyés sur une technique « d'élagage » qui consiste à éliminer les connexions entre les nœuds dont le poids est le moins élevé. Ils l'ont améliorée en introduisant la prise en compte de la consommation d'énergie. De ce fait, l'élagage des nœuds se traduit par des économies d'énergie significatives. Mais ce n'est pas tout...

    En effet, le poids d'un nœud peut avoir une incidenceincidence positive ou négative. Les chercheurs ont donc entrepris d'identifier les cas où des poids d'incidence opposée s'annulent mutuellement afin de les éliminer sans risquer d'altérer les performances de l'IA. Grâce à ces techniques d'évaluation et d'optimisation, il est possible de quantifier avec précision l'énergie consommée et les économies réalisables pour les architectures de réseaux neuronaux convolutifs les plus répandues. Les développeurs peuvent alors jouer sur la profondeur et la densité des couches en optimisant les performances selon les capacités du terminal mobile.

    Avec ce type de travaux, les années laissent augurer de grandes avancées pour l'intégration de l'intelligence artificielle dans bon nombre d'appareils électroniques qui nous environnent : smartphones, capteurscapteurs en tout genre, objets connectés, téléviseurs, domotique...


    IA : des réseaux neuronaux sur smartphone ? On y arrive...

    Article initial de Marc ZaffagniMarc Zaffagni, paru le 10/02/2016

    Un processeur graphique capable d'apprentissage, mis au point par des chercheurs du MIT, consomme dix fois moins d'énergie qu'une puce classique. De quoi faire tourner des applications d'intelligence artificielle directement sur un smartphone, des objets connectés ou une voiture autonome sans passer par une connexion InternetInternet. Les progrès à en attendre sont très importants et d'autres fabricants de processeurs sont déjà sur les rangs.

    Aujourd'hui, lorsque nous utilisons un smartphone, nous faisons sans le savoir appel à l'intelligence artificielle (IA). C'est le cas par exemple avec les assistants virtuels Siri (Apple), Cortana (Microsoft) ou Google NowGoogle Now qui savent reconnaître le langage naturel, pour les applications de traduction en temps réel telles que Skype Translator ou encore pour la reconnaissance d'images. Tout ceci est aujourd'hui possible grâce à une puissance de calcul que seules des batteries de serveurs unis sur des plateformes de cloud computingcloud computing peuvent fournir. Sans connexion Internet, pas d'IA donc. Car en effet, les batteries des terminaux mobiles ne tiendraient que quelques minutes si une intelligence artificielle s'exécutait en local. Mais cela pourrait bientôt changer...

    Des chercheurs du MIT (Massachusetts Institute of Technology) ont développé un processeur graphique optimisé pour exécuter un réseau neuronal d'apprentissage profond (deep learning) qui consomme dix fois moins d'énergie qu'une puce graphique pour smartphone. Baptisé Eyeriss, ce processeur doté de 168 cœurs de calcul pourrait permettre à des terminaux mobiles, des objets connectés, des robots ou encore des voitures autonomes de s'adonner à l'apprentissage profond sans devoir transmettre des données à des serveurs via Internet. À la clé, des capacités étendues, davantage d'autonomieautonomie et une plus grande réactivité.

    Eyeriss, le processeur graphique du MIT, comporte 168 cœurs de calcul. Son architecture est optimisée pour le fonctionnement des réseaux neuronaux convolutifs qui sont notamment utilisés par les applications de reconnaissance vocale et d’images. © MIT

    Eyeriss, le processeur graphique du MIT, comporte 168 cœurs de calcul. Son architecture est optimisée pour le fonctionnement des réseaux neuronaux convolutifs qui sont notamment utilisés par les applications de reconnaissance vocale et d’images. © MIT

    Optimisée pour les réseaux neuronaux convolutifs

    Pour saisir l'importance de cette innovation, revenons un instant sur l'intelligence artificielle. Les grands progrès accomplis ces dernières années, et tout récemment avec la victoire du programme AlphaGoAlphaGo de Google contre un joueur professionnel de go, ont été obtenus grâce des réseaux neuronaux convolutifs. Il s'agit d'une architecture profonde multicouches dont le Français Yan LeCun (patron de l'IA chez FacebookFacebook qui vient d'entamer un cycle de cours au Collège de France) est l'un des inventeurs.

    Dans ce type de réseau neuronal, l'organisation des connexions est dérivée de celle du cortexcortex visuel des mammifèresmammifères avec des éléments interconnectés entre les couches. Chaque niveau analyse ainsi des informations qui ont déjà fait l'objet de traitements à différents endroits dans les étages inférieurs, ce qui introduit un efficace parallélisme des calculs. Ces réseaux convolutifs ont connu un essor dans le milieu des années 1990. Ils ont été notamment utilisés pour un système de lecture automatique des chèques bancaires. Mais leur mise en œuvre était très exigeante eu égard aux performances des ordinateursordinateurs de l'époque et ils ont été délaissés.

    À partir de 2011, l'arrivée sur le marché de processeurs graphiques très abordables (GPU ou graphical processing units) a changé la donne. Conçus principalement pour les jeux vidéojeux vidéo avec plusieurs centaines de cœurs de calcul, ils se sont révélés particulièrement adaptés pour l'exécution des réseaux neuronaux d'apprentissage profond.

    Mais ces GPU ont un gros défaut : ils consomment énormément d'énergie. Chacun aura constaté combien l'autonomie d'un smartphone ou d'une tablette diminue drastiquement lors d'un jeu ou de la diffusiondiffusion d'une vidéo. Actuellement, la solution pour mettre une dose d'IA dans les mobiles sans vider leur batterie consiste à collecter les données nécessaires puis à les transmettre via Internet à des serveurs bardés de GPU qui les analysent avant de renvoyer les résultats.

    Pour rendre son processeur Eyeriss aussi performant qu'une puce graphique tout en étant moins énergivore, le MIT a travaillé à minimiser la fréquence à laquelle les cœurs de calcul ont besoin d'échanger des données avec des bancs de mémoire. « Alors que sur un GPU classique, plusieurs cœurs se partagent un grand banc de mémoire, chaque cœur de la puce Eyeriss dispose de sa propre mémoire », expliquent les concepteurs. Par ailleurs, la puce est dotée d'un circuit qui compresse les données avant qu'elles ne soient envoyées aux cœurs de calcul.

    Qualcomm, Movidius et NVidia sont déjà sur les rangs

    « Chaque cœur peut communiquer directement avec ses voisins, de telle sorte que s'ils veulent partager des données, ils n'ont pas besoin de les faire transiter par la mémoire principale », peut-on encore lire. Ce fonctionnement s'apparente à celui des réseaux convolutifs où les éléments sont connectés à leurs voisins les plus proches pour traiter les mêmes données de façons différentes. Et à l'instar de ce type d'IA, Eyeriss est capable de gérer la répartition des tâches pour chaque cœur. Ces derniers doivent en effet gérer à la fois les données qui alimentent le réseau neuronal et les données qui décrivent le réseau lui-même. Le circuit d'allocation du processeur permet de reconfigurer le fonctionnement des cœurs selon le type de réseau et de tâche à accomplir.

    L'équipe du MIT a présenté sa puce Eyeriss lors de la conférence International Solid State Circuits Conference (ISSCC), en l'utilisant pour exécuter une application de reconnaissance d'image. Mais pour le moment, aucune information n'a été fournie quant à sa disponibilité.

    Ajoutons que d'autres acteurs spécialisés dans la conception de GPU ont récemment dévoilé des puces capables d'apprentissage profond en local. Lors du dernier Consumer Electronics Show, les fondeurs Qualcomm et NVidia ont présenté leurs processeurs respectifs SnapdragonSnapdragon 820A/820Am et Tegra qui se servent de l'apprentissage profond améliorer la conduite des voitures autonomes. On se souvient également que Google s'est associé à la société Movidius pour son Projet Tango qui a fait entrer pour la première fois la vision par ordinateur dans un téléphone. Bref, ce n'est qu'une question de temps avant que l'intelligence artificielle ne s'approche encore un peu plus de notre quotidien.