S'INSPIRER DU VIVANT

S’inspirer du vivant pour construire des algorithmes sobres en calculs et en énergie : Faire tourner ChatGPT sur un téléphone, en local, sans serveur, sans partager ses données à personne et sans faire exploser son bilan carbone.

Rencontre avec Maxence Ernoult , chercheur chez Rain, dans le deuxième épisode Hors Série spécial IA du podcast.

Maxence Ernoult : S’inspirer du vivant

Aujourd’hui, je reçois Maxence Ernoult. Après des études en physique théorique et appliqué, il fait une thèse, un calcul non morphique avant de rejoindre rein en tant que chercheur rein, c’est une entreprise créée en 2016 pour construire des réseaux de neurones physiques à une collabore avec le Mila et en particulier avec Yoshua Bengio. Ils ont fait une levée de fonds de séria de 25000000 de dollars en 2022 auprès de Willy Combinator, et personnellement soutenu par sa maltman d’open AI il publie en 2022 leurs résultats concernant la première implantation d’apprentissage physique de bout en bout sur un petit réseau, neurone profond. Bonjour Maxence. 

– Maxence — 00:31 :

 Bonjour Marc, Merci beaucoup pour l’invitation. 

– Marc — 00:33 :

 Avec grand plaisir alors, est-ce que tu peux nous parler un peu de Rain? Qu’est-ce que vous faites exactement? 

– Maxence — 00:39 :

 En fait ce que règne cherche à faire, c’est à construire des processeurs dédiés aux calculs d’intelligence artificielle, et plus précisément au calcul impliqué dans l’apprentissage profond qui est une sous branche de l’intelligence artificielle et donc le type de calcul impliqué dans le cadre de l’apprentissage profond. Donc y en a de 2 natures, il y en a qui ont trait à ce qu’on appelle à l’INFÉRENCE, c’est-à-dire vraiment la phase de prédiction du réseau de neurones. D’ailleurs, j’expliquerai ce qu’est un réseau de neurones. Et la phase d’apprentissage, c’est-à-dire la phase pendant laquelle le réseau de neurones est entraîné. Maintenant, je peux parler un petit peu plus précisément, peut-être ce qu’on entend par un réseau de neurones. 

– Marc — 01:15 :

 Avec plaisir. 

– Maxence — 01:16 :

 En fait, ce qu’on appelle un réseau de neurones, c’est une architecture de calcul abstraite, mais en fait, qui prend tout simplement en entrée un tableau de chiffres et qui retourne après une succession de calculs compliqués, une sortie. L’entrée, ça peut être par exemple, une image qui est encodée par la valeur prise par chacun des pixels et la sortie, ça peut être le label attribué à cette image, par exemple, un chien, un chat. Voilà et donc le réseau de neurones, c’est une architecture de calcul abstraite avant tout, qui est déployable sur n’importe quelle substrat physique. Mais nous, ce qu’on cherche à faire à reign, c’est en fait de revisiter ce concept là d’architecture, de calcul abstraite et de l’implémenter physiquement et ce qu’on entend par un réseau de neurones physique, au sens où les neurones sont plus des entités mathématiques abstraites, de même que les synapses. Mais les neurones et les synapses deviennent vraiment des composants électroniques. Voilà et donc qui sont assemblées sur la puce. Voilà donc c’est ce qu’on entend par réseau neurone physique. 

– Marc — 02:15 :

 Donc on arrête de simuler, on va dire les neurones et les synapses avec des transistors et on fait ça directement avec du matériel qui reprend le fonctionnement du neurone et d’une synapse. 

– Maxence — 02:28 :

 Alors en fait, on utilise toujours des transistors, on peut pas s’en débarrasser totalement et on peut pas se débarrasser totalement de l’électronique digitale. Je dirais que la nuance c’est qu’un substrat. De calcul classique va imiter le calcul du réseau de neurones. Mais on va pas pouvoir isoler sur la puce où se trouve le neurone. On va pas pouvoir dire le neurone c’est ça, mais c’est juste que le neurone va être implémenté artificiellement sur la puce, soit qu’on puisse précisément localiser alors que l’idée du réseau de neurones physique c’est que la puce c’est le réseau de neurones lui même. 

– Marc — 03:01 :

 D’accord, et quel est l’intérêt de faire ça. 

– Maxence — 03:05 :

 En fait l’intérêt de faire ça, c’est que les calculs d’intelligence artificielle sont extrêmement coûteux. Il y a 2 raisons à ça. Disons que les origines de la consommation énergétique de ces calculs sont doubles. La première raison, c’est que dans les architectures de calcul classique dite de von Neumann, la mémoire et le calcul sont physiquement séparés et en fait la raison pour laquelle c’est le cas, c’est que ce sont des architectures de calcul qui ont été pensées pour être extrêmement universelles et pas seulement dédié à un champ d’application comme le l’apprentissage profond. Et donc de cette séparation entre la mémoire et le calcul résulte transport des données. En fait, ce qui coûte énormément d’énergie sur une puce, et particulièrement dans le contexte de l’apprentissage profond, c’est le transport des données. Je pourrais un petit peu plus précis là-dessus, donc ça, c’est la première source de consommation énergétique et donc on va gagner de l’énergie en rapprochant au maximum la la mémoire du calcul. Donc ça en fait, ça a donné lieu à des développements incrémentaux, par exemple de la mémoire cash, c’est-à-dire d’avoir une mémoire qui soit la plus proche possible du Processeur et qui fait encore l’objet de progrès aujourd’hui. Et la 2ème source de consommation, c’est le calcul lui-même qui est extrêmement coûteux et en fait l’unité de base du calcul dans les réseaux de neurones, c’est les additions, les multiplications et donc plus généralement, les multiplications matricielles qui sont extrêmement coûteuses. Donc en fait, si on arrive à réduire ce coût là, c’est énorme. Donc en résumé, 2 ingrédients rapprochés, un maximum, le calcul de la mémoire et le 2ème ingrédient, c’est de faire des multiplications matricielles peu coûteuses. 

– Marc — 04:35 :

 D’accord et alors donc, ce domaine donc du calcul neuromorphique que tu viens de nous présenter? On sait que c’est un c’est un petit monde, hein, tu m’en parlé un un petit monde. Il y a plusieurs courants, ce que tu pourrais nous donner un peu l’état de différentes approches qui sont essayées des différents courants de pensée. 

– Maxence — 04:50 :

 Absolument, donc, déjà le terme de calcul nordique remonte aux années 60. Et à caltech, c’est un concept qui a été proposé par Carver MID et donc l’idée donc c’est de s’inspirer du cerveau pour concevoir des nouveaux paradigmes de calcul, d’où le terme de neuromorphique. Et donc je dirais qu’aujourd’hui, oui, effectivement il y a plusieurs courants de pensée différents au sein de cette Communauté. Et je dirais que, en fait, la Communauté dépend un petit peu de l’expertise des équipes impliquées. Disons que c’est un champ qui est tellement multidisciplinaire que c’est difficile de de se concentrer sur tout à la fois. Donc il y a des gens qui seront plutôt orientés, ce que j’appellerais device, donc qui sont vraiment concentrés sur l’ingénierie et des matériaux utilisés pour faire des synapses artificielles ou pour faire des neurones artificielles, voire les 2. D’ailleurs, au sein même de ces communautés là, il y a des gens qui vont plutôt se concentrer sur quand je dis des gens, c’est-à-dire des chercheurs et des ingénieurs sur des technologies plutôt digitales ou c’est-à-dire ou l’information est encodée sous forme de bits. C’est à dire en gros, l’information est encodée par des observables physiques binaires qui prennent les valeurs 01 et d’autres. Au sein de cette même communauté device qui vont plutôt se concentrer sur des technologies dites analogiques ou en gros, l’information est encodée par des observables physiques continus. Donc, au sein de cette Communauté là, on va faire des efforts sur voilà la conception de nouvelles types de synapses, nouveau type de neurone va montrer qu’on va réussir à faire des multiplications matricielles ou d’autres opérations très compliquées. Ou pas d’ailleurs avec peu d’énergie. Voilà donc avec un accent plutôt device. D’autres communautés se concentrent plus sur l’aspect vraiment imitation du cerveau. Je dirais approche mécanistique des neurosciences computationnelles, c’est-à-dire qu’on va partir vraiment d’un modèle physiologique, d’un neurone qui va coller au plus proche de la physique du neurone biologique tel qu’on le comprend. Et donc on va chercher dans ce cas-là, reproduire vraiment cette physique du neurone, soit simuler ou bien construire un système qui limite de comportements de neurones biologiques mis ensemble et observer le comportement émergent donc le but il est je pense de voir si les propriétés émergentes de ces systèmes là qui imitent le cerveau sont les mêmes que celles qui sont observées chez des vrais systèmes vivants. Et enfin, il y a l’approche théorique qui est largement minoritaire qui consiste. À ne pas forcément coller au plus près du cerveau, mais de son inspirer seulement et à partir de là à construire des garanties théoriques très solides, soit sur l’inférence, soit sur l’apprentissage. 

– Marc — 07:22 :

 D’accord alors si si j’essaye de résumer ce que j’ai compris il y a ceux qui se occupent de d’essayer de physiquement construire quelque chose qui va avoir les propriétés dont tu nous parlais de gains de coût énergétique, et cetera, mais qui se concentrent pour le moment au niveau d’une neurone de la Synapse, donc d’un élément tout petit du réseau de neurones. Il y a ceux qui se disent pour le moment on va simuler tout ça avec du Software qui sera très inefficace, mais on va implémenter le fonctionnement d’une d’une synapse et d’un neurone de façon inefficace. Mais juste pour voir si ça donne les mêmes résultats et si on arrive à reproduire en fait ce qu’on fait aujourd’hui avec le Deep learning classique. Et puis la 3ème approche, c’est d’essayer de trouver des théorèmes qui garantissent que ça fonctionne. 

– Maxence — 08:07 :

 Exactement. Oui, c’est ça comme

– Marc — 08:16 :

 comme ce qu’on a aujourd’hui avec le Deep learning, on a un théorème qui nous garantit qu’il existe un jeu de poids et un jeu. 

 D’exactement, ce neurone qui qui fait ce qu’on veut mais qui nous donne pas la voix pour le trouver sur zone neurone.

Maxence

 Si, si, je prends le parallèle avec le Deep learning aujourd’hui. Oh ceci. Disons que les prescriptions théoriques viennent avec Ben des prescriptions d’architecture, d’hypothèses sur les modèles entraînés. Une chose que je voudrais rajouter par rapport à ce que tu viens de dire, c’est que pour autant, dans ce cadre d’études théoriques et mathématiques, on ne s’affranchit pas de devoir simuler des systèmes physiques avec des simulations très, très lentes. Et d’ailleurs, c’est. C’est l’une des difficultés de ce champ de recherche. Donc je dirais que la 3ème direction de recherche se soucie davantage de faire fonctionner l’apprentissage et l’inférence, alors que je dirais que la seconde approche évoquée plus neurosciences, computationnelles cherche plus à voilà, à observer les comportements émergents d’un système biologiquement plausible. 

– Marc — 09:06 :

 Ok, alors vous, chez rein, vous êtes dans quelle approche? 

– Maxence — 09:08 :

 Nous, on est très clairement dans la 3ème approche. En fait, nous, on se soucie pas vraiment de faire un cerveau artificiel, même si c’est effectivement de cette façon là qu’on vend notre recherche au niveau marketing. Mais on part vraiment des équations de la physique qui régissent le substrat sur lequel on veut faire tourner l’algorithme. Et typiquement, par exemple, les lois de kirchhoff, c’est-à-dire loi de nœuds, la, la loi des mailles et à partir de là, on veut construire une théorie d’apprentissage qui fonctionne par la physique. Du circuit et où on a vraiment la garantie que la procédure proposée optimise l’objectif d’apprentissage. 

– Marc — 09:44 :

 Alors pour rentrer un peu dans le détail, commençons peut-être par les avantages. Concrètement qu’est ce qu’on a à gagner si on arrivait à faire ces réseaux de neurones artificiels, hein, c’est c’est plus neuromorphique. Qu’est-ce que ça changerait? 

– Maxence — 09:58 :

 En fait, ça changerait déjà le coût de l’apprentissage, ce serait infiniment plus rapide et ça coûterait infiniment moins d’énergie, alors on peut y trouver des raisons. Voilà écologiques à pousser ce genre de recherche de façon tout à fait légitime mais aussi en terme d’efficacité. C’est juste que ça irait. Incroyablement plus vite d   onc, dans le papier, que Rain a fait accepter à nature électronique. On montre que si on extrapole moyennant certaines hypothèses, pour extrapoler le petit système qu’on a entraîné. Un système plus grand on montre qu’on peut être 10000 fois plus efficace qu’un GPU reste à réaliser un tel système, donc ça veut dire que voilà les simulations sont incroyablement plus rapides et je dirais en fait donc ça c’est on est plus dans l’ordre de l’enjeu technique. Mais plus fondamentalement ce que ça implique c’est que si une puce est 10000 fois plus efficace et également ce que j’oublie de dire beaucoup plus petite que les puces existantes. C’est qu’il y a l’idée qu’on peut avoir un ce processeur qui tourne localement, par exemple sur un téléphone, et ça, c’est extrêmement important. Par exemple en ce qui concerne la confidentialité des données. Aujourd’hui, on est dans un contexte où on ne peut bénéficier de la qualité de recommandation d’application comme Google et Facebook. Pardon, méta parce qu’on envoie toutes nos données à des serveurs à distance auprès desquels on sous-traite le calcul, mais le calcul n’a pas lieu sur le téléphone et donc tous les outils de recommandation intelligents qui utilisent l’intelligence artificielle nécessitent d’envoyer les données en dehors du téléphone, par exemple pour les faire tourner sur des serveurs à distance. Si on avait ces processeurs là qui consommeraient très peu d’énergie, en fait, on serait dans un. Bon, on peut, je peux possède une idée si ça t’intéresse, c’est qu’on peut faire tous les calculs localement sans jamais sortir les données. 

– Marc — 11:44 :

 Ouais donc Siri, Google Home. 

– Maxence — 11:47 :

 Voilà exactement. 

– Marc — 11:49 :

 Tête de de tourner sur des serveurs, il tourne en local potentiellement et donc on arrête de partager nos données avec les enfants. C’est un peu ça la conséquence. 

– Maxence — 11:56 :

 Alors après ça vient avec d’autres challenges techniques, parce qu’il faut beaucoup de données en fait pour avoir des modèles de recommandations efficaces 6 mois par exemple. J’entraîne mon téléphone à faire de la recommandation. Par exemple, du caractère suivant, quand je tape un message clavier et qui s’est basé que sur mes seules données, le modèle sera peut-être pas efficace car il faut se donner donc là en fait on tombe dans un champ de recherche qui est, je dirais, connexe à celui du hardware qui est celui de l’apprentissage fédéré, où on est dans un cadre distribué où il y a un serveur et il y a des clients et donc le serveur ça peut être bah typiquement un très gros serveur basé en Californie et les clients des usagers de, de de téléphone et donc dans le contexte fédéré. Bah les clients se seraient moi munis d’un téléphone avec une puce où je peux faire de l’apprentissage local et donc ce que je veux dire c’est qu’il faudrait pour que ce paradigme fonctionne, garder conserver localement les données dans le téléphone pour faire tourner l’entraînement exclusivement sur le téléphone, il faudrait quand même qu’il y ait un partage avec les autres usagers via un serveur, mais qui ne nécessiterait pas d’échanger les données. Voilà. 

– Marc — 13:04 :

 Oui, l’apprentissage fédéré, donc c’est ce qui consiste à se partager en fait la modification de l’algorithme, mais pas les données. 

– Maxence — 13:14 :

 Exactement de son côté, 

– Marc — 13:15 :

 On fait notre calcul pour dire comment on améliore l’algorithme grâce à nos données et on partage que cette information sur l’amélioration est pas. 

– Maxence — 13:23 :

 Exactement, exactement, c’est ça. Absolument pour marquer encore le contraste, expliquer plus clairement l’idée, c’est qu’au lieu d’échanger les données, d’agréger toutes les données sur un serveur et en gros de sortir les données du téléphone, on échange que les modifications des modèles localement entraînés sur les téléphones. Voilà, ça vient avec d’autres challenges techniques, mais voilà, peut-être pas la peine de rentrer. 

– Marc — 13:46 :

 Dans ces détails, la chambre de recherche à part entière exactement après, indépendamment de l’apprentissage fédéré, il y a plein de modèles aujourd’hui assez généralistes, hein? On parle beaucoup de chat GPT en ce moment, c’est large. Language model comme on les appelle, ça se compte en en centaines de milliers d’euros. Le coût on va dire de l’énergie des serveurs pour les entraîner avec un facteur 10000 ça veut dire qu’on compte en dizaines d’euros, on peut imaginer. N’importe quelle entreprise entraîner de ses propres modèles enfin, on est sur un niveau de démocratisation qui n’aurait rien à voir quoi ah oui, non, c’est clair. Oui et d’ailleurs ça a déjà commencé hein? Il y a des entreprises comme ceres bras qui une entreprise américaine qui commercialise ce type de plateforme, c’est-à-dire que cérébral se met à disposition de ses usagers. Une puce la plus grosse jamais construite pour accélérer l’inférence et l’entraînement, mais sur des technologies digitales. Donc on va sur un gain, je dirais marginal, mais quand même significatif. Mais peut-être pas un facteur 10000 Mais donc on est déjà dans cette mouvance là et c’est vrai qu’avec les succès récents de poney en IA générative ou en traitement du langage naturel, on est vraiment en plein dedans. Oui. 

– Marc — 14:54 :

 Oui, c’est des approches qui ressemblent un peu plus au TPU là les tensors processing. 

– Maxence — 14:59 :

 Exactement. Voilà exactement. Bah en fait, typiquement les TPU je dirais que c’est un peu dans le même esprit que les plus reconfigurables hardware type FPGA C’est, on est toujours sur un paradigme, calcul conventionnel à base d’une technologie dite CMOS, donc à base de transistor où on on va vraiment optimiser l’architecture pour accélérer le calcul des réseaux de neurones, mais sans modifier les briques de base du calcul, c’est à dire que la, les multiplications matricielles sont faites de la même façon. Voilà sur ce type de substrat. Néanmoins, l’accélération n’est absolument pas négligeable. 

– Marc — 15:35 :

 Alors si on regarde de l’autre côté maintenant un côté Deep learning, c’est quoi les gros inconvénients du Deep learning? 

– Maxence — 15:40 :

 Alors, les inconvénients du Deep learning ou l’apprentissage profond. Alors je dirais que c’est assez orthogonal à ce que, à ce qu’on fait à rein, mais je peux en parler quand même aujourd’hui, je dirais qu’on n’a pas résolu le problème de l’intelligence générale. On n’est jamais parvenu, dans le cas de l’apprentissage profond, à obtenir des êtres réellement artificiellement intelligents. On a plus géré résolu la partie perceptive de la Cognition, c’est-à-dire la faculté à reconnaître des motifs dans les images, dans les sons, dans les vidéos. On a fait des progrès incroyables dans le domaine de traitement de langage naturel de la génération de contenu vidéo audio d’images. Page dans l’entraînement d’agents intelligents qui parviennent à jouer à différents jeux, comme l’a montré l’entreprise Deep mind, mais en aucun cas, on est parvenu à en fait entraîner des intelligences artificielles qui soient capables d’extrapoler des contextes qui n’ont pas été vus pendant l’entraînement, et qui généralisent à des situations qui n’ont pas été vues. Et d’ailleurs, je crois qu’il y a une citation qui est faussement attribuée à Stephen Hawking qui dit qu’en fait l’intelligence est aptitude à s’adapter au changement, alors bon y a pas une seule définition de l’intelligence mais en tout cas de ce point de vue là on est jamais parvenu à réaliser des choses réellement intelligentes ou s. Des mesures, des cas extrêmement restreints et et simples. Et enfin, je dirais que pour ce qui est des limitations, les Deep learning sur lequel nous on travaille à Rennes, c’est que je pense qu’en fait, les informaticiens du domaine sont pas prêts à renoncer au GPU parce que c’est extrêmement pratique, très facile à utiliser et d’ailleurs le GPU à la base n’était pas pensé pour les calculs de réseau de neurones mais pour en fait l’affichage graphique des jeux vidéo et aujourd’hui on n’est pas prêt à renoncer à l’idée de pouvoir déployer un réseau de neurones aussi facilement sur 1GPU Alors pardon 1GPU c’est une carte graphique et c’est le processeur qui est le plus utilisé pour les calculs. En Deep learning et en fait, je dirais que les chercheurs de la communauté Deep learning sont pas très familiers avec l’idée du réseau de neurones physique et donc il faudra, je pense, beaucoup de temps avant de faire définitivement accepter l’idée qu’on peut gagner énormément d’énergie en créances et réseau de neurones. 

– Marc — 17:49 :

 Physiques, oui, mais alors ça il suffit, entre guillemets, d’avoir un break VW technologique, d’avoir quelque chose qui est effectivement beaucoup plus puissant et tout le monde l’adoptera je pense. 

– Maxence — 18:00 :

 Oui, oui, oui, bien sûr, mais je pense que ça va prendre du temps. Et pour encourager les gens à rentrer dans cette Communauté là, à pousser les efforts de recherche, on est sur quelque chose qui est assez difficile. D’ailleurs, c’est marrant parce qu’on connaît aujourd’hui une histoire assez semblable à celle du Deep learning avant, en 2012 au sens où à l’époque, c’est-à-dire jusque dans les années 2000 on avait 2 approches de l’intelligence artificielle, l’approche dite connexionnistes, qui a donné lieu à la partage profond, l’approche dite symbolique qui est beaucoup moins poursuivie aujourd’hui, mais quand même, qui a encore quelques adeptes. Et en fait pendant longtemps, Yann Lecun, Geoffrey Hinton, Yoshua Bengio était moqué et par la communauté des informaticiens parce que personne ne croyait à l’apprentissage profond. Et c’est le jour où Alex Kiki a eu l’idée d’utiliser les GPU pour entraîner une architecture conventionnelle. Pour le challenge Imaginet qu’en faite, les gens ont vraiment commencé à s’y pencher. Donc 2012 avant ça, les les gens ne s’intéressaient pas tant que ça à l’apprentissage profond. Donc oui, pour répondre à la question, oui, je pense qu’il faudra un breakthrough. Et qu’avant ça et bon, il faudra quand même des efforts de recherche avant d’arriver à un breakthrough réellement impressionnant. 

– Marc — 19:13 :

 Parce qu’aujourd’hui là, dans le monde du calcul, neuromorphique dans le monde de ses approches qui offrent ce gain énergétique dont tu nous parles, ce gain de consommation d’énergie, on en est où exactement? C’est quoi les résultats? L’état de l’art de ces approches? 

– Maxence — 19:27 :

 Alors c’est difficile de parler d’État de l’art parce que c’est encore une fois, c’est un mouvement intellectuel qui est extrêmement fragmenté. Je dirais que là où on en est-il y a plusieurs échelles de temps. Aujourd’hui, les technologies qui sont commercialisables, c’est plus des technologies dédiées à l’inférence dans les réseaux de neurones, c’est à dire que les processeurs développés sont simp. Comment utiliser pour l’inférence au sens où on a un modèle qui a été pris, entraîné, on le déploie sur le processeur et celui-ci peut être exécuté extrêmement efficacement. Mais en revanche, il peut pas être entraîné une fois qu’il déployé sur la puce et donc là on est sur des résultats extrêmement matures, au sens où on s’est énormément accéléré. Le calcul dans ces architectures là, c’est déjà commercialisable et on est sur des technologies digitales qui sont mûres avec des vrais gains énergétiques et donc on a beaucoup de start-up qui se sont lancées là-dedans. Donc on est vraiment dans une phase de commercialisation mûre pour ces cas d’usage. Clairement, je dirais que l’acteur qui domine ce paysage là, c’est nvidia évidemment. Enfin, ils sont très très en avance dans ce domaine là et après y a tout un écosystème de start-up autour clairement et il y a quelques start-up qui s’attaquent aussi, donc au cas d’usage de l’apprentissage, c’est-à-dire d’avoir une puce qui soit capable à la fois de réaliser l’inférence dans les réseaux de neurones mais également l’apprentissage. Mais pour l’instant on est encore sur des gains énergétiques marginaux d’un facteur enfin bon, je dirais jusqu’à facteur 10 mais guère plus. Mais en tout cas, ce qui est certain, c’est qu’aujourd’hui là, on est dans la phase, disons de technologie mature sur le plan commercial, on est surtout au niveau de l inférence et sur des technologies digitales et après bah voilà, c’est une autre question de côté recherche un côté recherche, on essaie d’aller vers le calcul analogique parce que c’est extrêmement efficace. C’est c’est un paradigme qui est complètement différent mais qui a encore beaucoup de limitation technologique, et je peux en parler davantage si tu souhaites. 

– Marc — 21:20 :

 Sur les croyances parce que tu nous as dit un petit peu que le monde était fragmenté. Dans ce domaine du calcul neuromorphique, quels sont vos croyances et votre jeu de croyances?   quelle est la croyance poursuivie? 

– Maxence — 21:34 :

 Oui, alors moi je pense que la croyance poursuivie déjà, c’est que la clé pour réussir à faire passer à l’échelle nos approches, c’est à dire faire fonctionner nos techniques d’inférence et d’apprentissage sur des gros réseaux de neurones sur des problèmes relativement compliqués, c’est-à-dire avec une dimensionnalité des données assez élevées, c’est d’avoir des garanties théoriques fortes sur les approches utilisées par opposition, je dirais à des heuristiques. Où on sait pas trop pourquoi ça marche, comment ça marche, mais ça marche sur des problèmes simples. Donc ça, c’est la première chose, c’est de construire des théories vraiment solides. Toute l’informatique moderne est basée sur la théorie en gros proposée par des informaticiens célèbres comme Turing von Neumann. Et en fait, il faut un peu repenser l’informatique, vraiment de la base et construire quelque chose d’extrême rigoureux dès le départ. Ça c’est la première croyance, la seconde croyance et qui aujourd’hui, vraiment lors d’une croyance, c’est que les technologies analogiques soient un jour suffisamment matures pour être utilisable aujourd’hui, c’est des technologies qui ont beaucoup d’inconvénients parce qu’il faut imaginer que ces composants, c’est des composants nanométriques, c’est-à-dire les technologies analogiques utilisées pour faire des synapses et les neurones. C’est des composants extrêmement petits où une infime variation à l’échelle atomique peut provoquer un changement de comportement visible dans le calcul. Et on espère et notre croyance, c’est qu’on pourra avoir un contrôle très très fin de ces technologies là d’ici quelques années. Et enfin, je dirais la 3ème croyance, c’est plutôt non croyance, c’est que l’inspiration biologique, c’est pas un principe en soi et ça je dirais que j’engage mon opinion ici. Mais quelle quelle cerveau pour quel, quel le cerveau? Je n’y crois pas et je pense que ça entretient déjà l’illusion qu’on comprend le cerveau alors qu’on comprend très mal et surtout en faites. Mais en fait, on veut faire voler un avion, on veut pas faire un avion qui bat des ailes. 

– Marc — 23:27 :

 De quoi on a besoin pour avancer dans ce domaine là? Est-ce qu’on a besoin de données de calcul? De matériaux particuliers. 

– Maxence — 23:36 :

 Alors c’est une bonne question, alors une originalité de notre domaine, c’est qu’on n’a pas besoin de données particulières alors que c’est un point extrêmement critique dans le monde pro. Dans des cas d’usage très concret et et ou vraiment l’ingénierie des données est centrale. En fait, nous on veut montrer qu’on peut optimiser une fonction de coût avec n’importe quel type de données, y compris des données synthétiques. Donc je dirais que les données c’est pas le nerf de la guerre mais ce dont on a besoin. C’est avant tout d’interdisciplinarité. C’est vraiment un champ de domaine extrêmement difficile et je pense que la raison pour laquelle il avance aussi péniblement, c’est qu’il faut à la fois des compétences purement informatiques, programmation algorithmique, compréhension également physique des puces utilisées à la fois au niveau des matériaux eux-mêmes utilisés pour faire les neurones et les synapses, mais aussi au niveau système, savoir comment les agencer aussi au niveau compilateur. Comment est-ce qu’on transmet des instructions à la puce, et cetera et cetera? Donc à tous les niveaux, de la conception, de la puce et je pense qu’il faut aussi oui, beaucoup d’humilité, parce que c’est vraiment vraiment difficile et il faut prendre son temps pour proposer quelque chose qui fonctionne et qui en fait soit utile, qui ait des vrais cas d’usage. Je pense qu’on peut pas en tout cas bâtir un business plan en te disant en fait, la technologie sera tellement révolutionnaire qu’elle sera massivement adoptée car remplacera le GPU Clairement je je ne dis pas ça, c’est possible que ça ne fonctionne pas. Il faut plutôt cibler. Des cas d’usage très précis et donc, je pense qu’on a également besoin de ça, c’est-à-dire d’aller chercher des gens ou en fait ce type de processeur serait utile. 

– Marc — 25:18 :

 Quel genre de gens du coup à? 

– Maxence — 25:20 :

 Qui ça en faite le premier? Je dirais que ça s’adresse à des secteurs où on a besoin d’intelligence artificielle embarquée ou en gros, on veut réaliser le calcul localement. Typiquement dans des contextes où la sécurité est une donnée sensible et qu’on souhaite pas sortir les données. On souhaite pas envoyer les données sur un serveur pour faire des calculs, mais on veut les garder là où elles sont. Donc voilà, c’est ce genre de secteur là, des secteurs vraiment des petites niches. Voilà, on a quelques, on a entier des clients potentiels. Voilà qui nous ont fait part de leur cas d’usage et voilà donc contexte embarqué plutôt et quels sont les les grandes limites, les grands obstacles pour avancer? 

– Maxence — 25:56 :

 Je dirais qu’il y a 2 types d’obstacles. Le premier, c’est vraiment. Les principes fondamentaux de l’approche elles-mêmes et c’est ce que je disais au départ, c’est sur quelle base théorique? C’est plus là, doivent être construites, on observe une espèce de hâte en général de construire des choses enfin ou de réaliser des preuves de concepts ou des prototypes de puces extrêmement rapidement, qui en fait, in fine, ne servent pas à grand chose, ont je mentionne par exemple la la puce True North d’i BM qui est en fait était une sorte de très gros réseau de neurones pseudo biologiques au sens de pas des vrais neurones mais c’était une matrice de neurones qui militait neurones biologiques qui était une preuve de concept intéressante mais qui en fait in fine était pas utile. Je pense que la première limitation, elle est vraiment fondamentale et théorique. C’est sur quel principe théorique doit reposer le fonctionnement de la puce et la 2ème méditation, comme je disais tout à l’heure, c’est la limitation des technologies analogiques qui sont extrêmement imparfaites, sans sous, par exemple les technologies qu’on va utiliser pour faire des synapses, c’est des c’est des technologies qui stockent la valeur des des, en encodées sous la forme d’un État de conductance. Et pour programmer cette valeur de conductance en applique une différence de potentiel. Suffisamment grande à ce composant et en fait, si on réalise par exemple plusieurs fois cette expérience là avec la même différence de potentiel aux bornes du composant, on va jamais obtenir exactement la même valeur de conductance programmée. 

Marc

C’est pas reproductible

, c’est pas. Voilà les expériences de programmation sur une cible artificielle sont pas reproductibles, 2 synapses ne sont jamais exactement identiques. Donc en fait on a énormément de variabilité d’un device à l’autre, de bruit, d’un cycle de programmation à un autre sur un même device. C’est des composants qui sont extrêmement non linéaires et donc très difficile à programmer et finalement donc clairement 

Marc

que l’idée c’est pas justement que quand on a un millier, un, 10000 synapses. Finalement, les différences d’une expérience à l’autre s’équilibrent et on obtient à peu près le même résultat. C’était pas c’est pas ça l’idée théorique derrière. 

– Maxence — 27:53 :

 Le, c’est une excellente remarque. Oui, oui, tout à fait, oui, oui. Alors, effectivement, je peux creuser un petit peu plus ça, ça m’amène plus aux théories d’apprentissage réalisées sur la puce et pourquoi certaines simplement plus facilement sur des substrats imparfaits? On peut parler un petit peu de ça. 

– Maxence — 28:10 :

 Ok En. 

– Marc — 28:11 :

 Fait. Alors merci pour soulever ce point là, ça m’amène à à faire un point un petit peu plus technique sur la façon dont est réalisé l’apprentissage dans les réseaux de neurones. L’apprentissage consiste en une l’itération de petites phases d’apprentissage, où on va montrer aux réseaux de neurones une entrée. Il va donner une sortie et on va le corriger en disant Bah non ça c’est pas la bonne sortie et en fait le réseau de neurones va ajuster en gros à la valeur de ces paramètres pour in fine donner la bonne sortie donc ça se fait de façon itérative pour montrer beaucoup d’exemples différents. Et pour que, in fine, le réseau de neurones donne la bonne sortie étant donné une certaine entrée et donc une itération d’apprentissage, ça fonctionne de la façon suivante, donc en fait il y a la phase de prédiction du modèle qui va donner une certaine sortie et y a la phase de correction où en fait on va dire aux réseaux de neurones non t’aurais dû donner cette sortie là et donc il va y avoir cette phase donc en gros on va propager une erreur à travers le réseau de neurones pour qu’il corrige tous ces paramètres internes donc autrement dit toutes ces synapses pour donner la bonne valeur en sortie. Donc ça procède en 2 phases et aujourd’hui, c’est particulièrement difficile de réaliser ces 2 phases. En fait, je, je, j’ai pas envie de rentrer dans trop de détails techniques, sinon ça sera pas très intéressant mais je voudrais effectivement, je voudrais montrer qu’il y a des approches en gros qui se mettent beaucoup mieux sur des substrats parfaits que que d’autres, mais. Parce qu’on en fait, oui, oui, voilà. Non OK donc en fait je je, je sais ce que je veux, donc je fais un truc beaucoup beaucoup plus simple. Je fais un truc beaucoup plus simple alors merci Marc pour avoir posé la question il y a une autre chose que j’ai oublié d’évoquer quant à nos croyances à rein et nos méthodes, c’est qu’on est intimement convaincu qu’il faut co-développer le Software, c’est-à-dire les algorithmes et le hardware, c’est-à-dire la puce et typiquement l’algorithme d’apprentissage le plus utilisé dans les réseaux de neurones qui s’appellent l’algorithme de Rétropropagation, du Gradient ou autrement dit la bac. Propagation en anglais. En fait, ne simplement pas nativement sur des substrats analogiques par ce que les substrats analogique est extrêmement extrêmement imparfait. Comme je le viens de le souligner avec l’exemple des synapses artificielles, et donc c’est aussi pour cette raison là que ce champ de recherche est difficile à faire adopter par les chercheurs dans la Communauté d’apprentissage profond. C’est que, en fait, cet algorithme dont je parle, l’algorithme de bac propagation, il est extrêmement universel et général est utilisé absolument pour toutes les architectures profondes, y compris chat gepi. Fbi entraîné par un bac pour d’action. Donc c’est difficile à faire. Renoncer aux chercheurs assez légitimement, et en fait, nous, on développe des algorithmes où on utilise directement la physique des composants pour en fait entraîner les réseaux de neurones. Et en ce sens-là on n’est plus dans un cadre où les imperfections je vois gênantes pour implémenter un certain algorithme d’apprentissage, mais au contraire, elles vont être utilisées pour l’algorithme d’apprentissage et une façon en fait. De le dire, c’est qu’on cherche pas à gommer les imperfections des composants, mais plutôt on va construire un algorithme autour de la physique du composant, donc on est dans une approche qui est assez radicalement différente des autres entreprises ou des ou des secteurs académiques plus classiques. Au sens où vraiment, on va pas apprendre un algorithme et l’implémenter coûte que coûte sur un substrat physique, mais plutôt on va partir de la physique du substrat et développer un algorithme qui satisfait les contraintes de la physique du système et donc la conséquence c’est que. Bien que les composants utilisés, les composants analogiques utilisés soient imparfaits, en réalité, les algorithmes qu’on utilise sont agnostiques à ces imperfections là, donc, ce qui est un problème pour les algorithmes d’apprentissage classique ne l’est plus pour ceux qu’ont développe. Ok, est-ce que tu as une anecdote à nous partager? 

– Maxence — 32:06 :

 Oui, je peux parler de ma thèse qui a été à la fois extrêmement enrichissante et je dirais assez conflictuelle sur le plan intellectuel parce que j’ai travaillé avec des chercheurs qui étaient vraiment à fond dans cette croyance que l’aspiration biologique était un principe en soi, et de calquer le cerveau sans trop savoir pourquoi on le fait ou en tout cas ça m’a pas convaincu. Et c’est vrai que ça a été assez difficile jusqu’à ce que je rencontre yoshua bengio, et en particulier son thésard. Benjamin cellier, qui est devenu un ami qui est également un collègue Maintenant chez Reine où j’ai vraiment redécouvert le domaine sous un angle complètement différent, c’est à dire sous l’angle théorique qui est également l’angle adopté pareil donc je dirais que cette rencontre qui s’est fait de façon complètement hasardeuse en Allemagne dans le cadre d’une conférence orientée hardware a été absolument salvatrice dans le cadre de ma thèse, et je dirais qu’elle a même ouvert une voie que j’aurais jamais soupçonnée auparavant. 

– Marc — 33:08 :

 Et est-ce que tu as une opinion à nous partager ce? 

– Maxence — 33:10 :

 Domaine Oh, je pense que je les je pense qu’en tout cas je je n’engage que mon opinion et pas celle de rein. J’ai j’ai plusieurs opinions, je dirais Premièrement le terme de neuromorphique et vraiment péjoratif à mes yeux. Comme je disais, je pense que l’inspiration biologique est utile, mais que c’est pas un principe ni un dogme en soi. Et je pense que vraiment à mes yeux, c’est presque une erreur méthodologique. On s’illusionne sur l’efficacité de cette inspiration là et en réalité elle n’a pas suffi à faire fonctionner des systèmes. Et sur des problèmes d’apprentissage ou d’inférence compliquées, je n’y crois pas et je le Bats en brèche aussi pour parler plus généralement de la recherche dans ce domaine. Je pense qu’elle est à mes yeux mieux menée dans le cadre industriel où on se soucie vraiment de construire quelque chose qui fonctionne plutôt que d’écrire des papiers scientifiques. Bien qu’on cherche également à obtenir un crédit académique parce qu’on a ce souci de voir quelque chose qui est utile et qui fonctionne. 

– Marc — 34:13 :

 Alors, qu’est-ce que c’est la suite pour Rain maintenant? 

– Maxence — 34:15 :

 Bah la suite pour Rain, c’est de construire quelque chose qui fonctionne précisément et donc on part sur un plan avec plusieurs générations de puces qui diffèrent selon le degré de maturité technologique des composants utilisés, les algorithmes implémentés, et donc d’ici la fin de l’année, on voilà, on espère envoyer en construction notre premier design de puces et on a également des belles collaborations scientifiques pour développer des nouveaux algorithmes d’apprentissage qu’on espère également faire fructifier. Car cette recherche a nourri nos idées pour les futures générations de puces. On espère aussi, selon les résultats obtenus, faire une levée de fonds de séries B Voilà, donc, on verra ce que l’avenir nous réserve. 

– Marc — 34:59 :

 D’accord et Ben Bon courage pour tout ça alors merci Marc, merci. 

– Maxence — 35:02 :

 Maxence, vous venez d’entendre Maxence arnoux, chercheur en calcul neuromorphique chez Rain.