- OpenWorm est un projet visant à construire un modèle computationnel complet de Caenorhabditis elegans (C. elegans), un nématode microscopique
- Son approche repose sur une modélisation ascendante, qui simule les données issues d’expériences scientifiques menées au cours de la dernière décennie afin d’observer si le comportement du ver émerge
- Le conteneur Docker regroupe les principaux composants de la simulation dans un environnement exécutable sur une machine locale
- exécution du modèle du système nerveux c302
- exécution en parallèle du modèle corporel 3D du ver, Sibernetic, à partir de la sortie du modèle du système nerveux
- génération de graphiques du fonctionnement des modèles nerveux et corporel
- génération d’une vidéo de sortie du modèle corporel
- La durée d’exécution de la simulation par défaut est limitée pour rester raisonnable, et seule une sortie partielle correspondant à environ 5 % du temps d’exécution est affichée par rapport à la sortie d’exemple {p:5}
- Les prérequis d’exécution sont au minimum 60 Go d’espace libre, au moins 2 Go de RAM, un environnement capable de cloner un dépôt git et Docker installé
- Le flux d’exécution se compose de
git clone,./build.shen option,./run.sh,stop.shaprès la fin, puis vérification du répertoire localoutput - Si vous sautez
./build.sh, la dernière image Docker publiée est téléchargée depuis OpenWorm Docker hub - L’argument
-d [num]permet de modifier le temps de simulation en millisecondes ; la valeur par défaut est15, et la valeur pour générer la vidéo d’exemple complète est5000 ./run-shell-only.shsert à se connecter au conteneur avant l’exécution demaster_openworm.pypour inspecter ou modifier la base de code extraite et le système installé- Pour modifier les éléments d’installation, il faut éditer le
Dockerfile; pour modifier les éléments d’exécution, il faut éditermaster_openworm.py, puis exécuterbuild.shafin de reconstruire l’image locale - Par défaut, seules certaines images et vidéos sont exportées vers le système hôte ; pour récupérer la sortie complète de la simulation ou des données comme
worm_motion_log.txt, il faut les copier depuis le conteneur Docker - Comme
stop.shsupprime le conteneur et les fichiers associés, il ne faut pas l’exécuter avant d’avoir récupéré les données - Une documentation supplémentaire est disponible sur http://docs.openworm.org, et le dépôt contient des high-level issues et des milestones pour suivre l’ensemble du projet
1 commentaires
Avis sur Hacker News
302 neurones peuvent ne pas sembler impressionnants pour quelqu’un habitué aux réseaux neuronaux de 7+ milliards de paramètres
Mais le point commun entre ces réseaux et les neurones biologiques est à peu près comparable au point commun entre un vélo et un cheval. Les deux peuvent se déplacer assez vite, mais l’un a évolué au fil de plus d’un milliard d’années de sélection naturelle impitoyable, tandis que l’autre est une machine métallique finement réglée pour un objectif unique
Les neurones, eux aussi, sont des machines biologiques extrêmement sophistiquées, avec des milliards de paires de bases d’ADN qui contrôlent le comportement, et le comportement émergent des neurones est assez fascinant, aussi bien dans les systèmes biologiques que dans les systèmes d’IA
« Ces neurones ne déclenchent pas de potentiels d’action et n’expriment pas non plus de canaux sodiques voltage-dépendants » [1]
Ce qui rend le fait qu’une dépendance à la nicotine puisse exister encore plus intéressant
« C. elegans peut aussi servir à étudier la dépendance à la nicotine, car il présente des réponses comportementales à la nicotine similaires à celles des mammifères. Cela inclut les réponses aiguës, la tolérance, le sevrage et la sensibilisation » [1]
[1] https://en.m.wikipedia.org/wiki/Caenorhabditis_elegans
Ces circuits ressemblent par certains aspects à des réseaux neuronaux et, surtout, possèdent une mémoire et des états qui persistent sur des durées courtes comme longues. Chaque neurone est plus proche d’un organisme vivant capable d’apprentissage et de comportement que d’un paramètre dans un modèle
À l’inverse, un « neurone » virtuel est une abstraction mathématique très simple, dont la complexité de calcul est écrasamment inférieure à celle d’un neurone biologique. Le connectome n’est qu’une carte très grossière de la manière dont les neurones sont reliés entre eux, loin d’un schéma complet du « réseau neuronal »
On pourra peut-être modéliser un neurone biologique comme un sous-réseau neuronal avec état à l’intérieur d’un plus grand réseau neuronal, mais même en supposant une équivalence computationnelle, on ne sait absolument pas combien de « neurones » virtuels seraient nécessaires pour représenter l’ensemble des comportements computationnellement importants d’un neurone biologique
Donc un ver doté de 302 neurones biologiques pourrait, du point de vue computationnel, être équivalent à des milliards de neurones virtuels, ou non, on n’en sait vraiment rien
Le fait que les neurones aient une mémoire peut les faire paraître un peu similaires aux réseaux LSTM, et comme les réseaux biologiques ne sont pas un simple passage avant, ils sont certainement plus proches de réseaux neuronaux récurrents
C’est pour cela que les gens qui parlent de mind uploading me font rire. Je ne pourrai pas m’empêcher de rire tant qu’on ne saura pas comprendre et modéliser les comportements pertinents des neurones biologiques, et extraire les états exploitables dans des neurones vivants. Pour l’instant, c’est 100 % de la science-fiction, et ceux qui pensent qu’on pourra bientôt télécharger l’esprit ne comprennent pas la biologie
Si des principes similaires sont à l’œuvre, comment un ver peut-il produire de tels comportements avec si peu de ressources ? Par exemple, s’il s’avère que les caractéristiques détaillées du substrat ne sont pas essentielles aux capacités du ver, cela pourrait être une bonne nouvelle pour la recherche en IA
Dans les années 1990, j’ai eu l’occasion de faire de la programmation dans le laboratoire de Ralph Siegel, et il étudiait aussi ce type de modèle de connectome de ver
https://en.wikipedia.org/wiki/Ralph_Siegel_(scientist)
Il utilisait les équations de Hodgkin-Huxley pour simuler les réponses neuronales à partir du connectome. Quelqu’un m’avait expliqué que le modèle de Hodgkin-Huxley revenait un peu à modéliser une jambe humaine comme trois blocs rigides reliés par des charnières. C’est suffisamment utile pour de nombreux modèles, mais ce n’est pas une description complète
De plus, les neurones du ver ne produisent pas de spikes, alors que les équations HH décrivent des neurones qui génèrent des trains de spikes ; ce n’est donc peut-être pas un modèle adapté aux neurones du ver. Ce type de neurones existe dans des systèmes nerveux plus complexes
Les équations HH sont le modèle mathématique dont nous disposons, donc elles sont utilisées pour les simulations, et il semble qu’elles soient encore utilisées dans le projet OpenWorm. Les propriétés des neurones du ver, c’est quelque chose dont j’ai entendu parler il y a longtemps, donc l’information est peut-être obsolète
Que ce travail se poursuive est formidable, et cela pourrait apporter des éclairages sur le fonctionnement du système nerveux. Mais la difficulté est immense, et on progresse très lentement et péniblement dans un territoire immense d’inconnu
Sont-ils alors très différents des neurones humains ? J’aimerais comprendre comment cela fonctionne et où je pourrais en lire davantage
J’aime ce type d’approche bottom-up. Cela montre très bien à quel point nous ignorons encore beaucoup de choses sur la vie
On peut aussi mentionner ici le projet de cellule minimale syn3.0 de Craig Venter. Cette équipe a créé une cellule synthétique vivante composée de 473 gènes, en grande partie par tâtonnements, et la fonction de beaucoup de ces gènes reste encore inconnue
Une revue récente de la même équipe est disponible ici : https://doi.org/10.1016/j.cell.2022.06.046
L’idée consiste à voir quelles pièces on peut retirer sans que le système s’effondre
Le fait technique d’avoir synthétisé artificiellement le génome relève presque du showmanship, puisqu’il a quand même fallu l’insérer dans une cellule préexistante
C’est un peu comme copier une puce existante, retirer ou remplacer quelques bits, puis affirmer avoir construit une voiture à partir de zéro en disant « les clignotants ne marchent pas, mais globalement elle roule »
Noam Chomsky dit qu’il existe deux types d’IA
Le premier type de recherche en IA relève davantage de l’ingénierie, comme les voitures autonomes, la traduction de langues ou la reconnaissance d’objets
Le second type de recherche en IA vise à reproduire l’intelligence d’êtres vivants, par exemple des humains ou des vers, d’une manière cohérente avec les modèles des sciences cognitives
Par exemple, un système capable d’acquérir n’importe quelle langue humaine avec très peu de supervision, comme le font les enfants, relèverait de cette catégorie
OpenWorm semble plus proche du deuxième type. Si quelqu’un connaît des ressources intéressantes pour approfondir ce deuxième type d’IA, je suis preneur
[0]: https://youtu.be/TAP0xk-c4mk
J’avais regardé ça il y a quelques années, et j’ai toujours espéré qu’il y ait une part de vérité dans l’apocalyptisme à la Kurzweil
On commence par simuler C. elegans, puis il suffit d’augmenter l’échelle pour simuler un humain, et ensuite la singularité arrive
Après tout, à quel point cela peut-il être difficile de simuler un ver idiot ? On a le connectome et on connaît tous les neurones et leurs connexions, donc ça devrait être simple, pensais-je
Puis j’ai regardé ça de plus près et ça m’a sidéré. Ça ne marchait pas. Ils arrivaient à reproduire certains mouvements de base, mais une grande partie des comportements réels du ver restait mystérieuse. Même dans la documentation, on n’avait pas l’impression que quelqu’un allait percer ça rapidement, et quelques années plus tard, j’ai eu l’impression qu’ils avaient finalement abandonné
À ma connaissance, le projet européen d’émulation du cerveau, qui avait lui aussi été très survendu, a également été abandonné dans un contexte de soupçons de corruption
Nous ne comprenons absolument pas cela, et il semble que ce soit encore très lointain. Pour l’instant, il va sans doute falloir retourner à la science-fiction
Chaque synapse possède des neurotransmetteurs spécifiques, et la distance, la taille, la forme, le nombre de récepteurs ainsi que les cellules gliales associées influencent énormément la transmission. La distance et l’épaisseur des axones influencent aussi la force du signal transmis, et tout cela est très difficile à mesurer
Les neurones sont aussi très sensibles à l’intensité et au timing des signaux. Par exemple, une synapse inhibitrice fonctionne en ouvrant des pores dans la membrane cellulaire, ce qui laisse la charge s’échapper au fil du temps. Se tromper ne serait-ce qu’un peu sur cette vitesse peut modifier fortement le comportement de la cellule
Le connectome est, en quelque sorte, plus proche d’un modèle pré-entraîné d’une complexité folle, et chaque neurone a plusieurs poids qui décrivent non seulement sa réponse directe au signal, mais aussi son comportement dans le temps. Sans ces poids, on ne peut pas faire d’émulation
Ça me rappelle le premier épisode de Devs
https://www.imdb.com/title/tt8134186/
Il y a une scène où un ingénieur en IA montre une démo synchronisant les mouvements d’un nématode, puis prédisant ses mouvements futurs. Au passage, c’est vraiment une excellente série
L’idée d’extrapoler avec une très grande précision à partir d’informations est au cœur de cette série, mais je m’arrêterai là
Un modèle de connectome du cerveau de la drosophile a été publié récemment[1]
[1] https://hub.jhu.edu/2023/03/09/scientists-complete-first-map...
On est même encore loin de prouver que c’est possible
C’est pourquoi des projets comme neurokernel [1] paraissent un peu trop ambitieux. Cela dit, bonne chance à eux
[1] http://neurokernel.github.io/
Je suis allé il y a quelques années à Londres à ce qui ressemblait à une mini-conférence OpenWorm
Pendant plusieurs jours, on y a parlé du mouvement du ver. Je n’y connaissais absolument rien, ni sur les vers ni sur la locomotion animale en général, et comme je n’avais qu’un intérêt amateur pour la simulation du vivant, j’ai à peine compris de quoi il s’agissait
Mais c’était vraiment fascinant, et c’était formidable de rencontrer des gens passionnés par ce sujet
Si on arrête la simulation, est-ce qu’on tue le ver ?
En tant que membre fondateur d’OpenWorm, j’ai émulé le connectome et je l’ai appliqué à la robotique il y a presque 10 ans
https://youtu.be/YWQnzylhgHc
Dans cette expérience, chaque neurone était représenté par un programme, et la communication entre les programmes de neurones individuels se faisait par messages UDP. Il y avait plusieurs problèmes, mais le principal était que le connectome est très cyclique, ce qui produisait dans l’expérience un phénomène que nous appelions « UDP stacking ». Autrement dit, les messages UDP d’activation arrivaient plus vite que les programmes ne pouvaient les traiter
Je télécharge actuellement le connectome complet de Drosophila pour construire une émulation. J’explore des hypervecteurs pour émuler des neurones ou des neuropiles, mais j’en suis encore au stade de l’élaboration du concept
J’ai aussi essayé diverses idées, comme des matrices d’adjacence, la programmation fonctionnelle, etc. Chaque fonction représente alors une partie du système nerveux de l’animal ; pour C. elegans, par exemple, on peut voir les neurones sensoriels, les interneurones et les neurones moteurs comme trois fonctions et programmes distincts
L’émulation de C. elegans a aussi été implémentée sous la forme d’une seule application Python, puis portée dans plusieurs autres langages de programmation, et elle a montré des émulations nettes sur plusieurs robots. Des expériences d’ablation ont montré que le système nerveux émulé correspondait au système nerveux biologique à travers des comportements observables
Sur le continuum évolutif des systèmes nerveux, le cerveau du ver se trouve à une extrémité et le cerveau humain à l’autre. Mais même avec le seul système nerveux du ver, on peut clairement voir la porte d’entrée vers l’intelligence générale et l’AGI