- OpenWorm es un proyecto cuyo objetivo es construir un modelo computacional integral del nematodo microscópico Caenorhabditis elegans (C. elegans)
- Su enfoque es el modelado ascendente, que simula datos obtenidos de experimentos científicos realizados durante la última década para observar si emerge el comportamiento del gusano
- El contenedor de Docker reúne los componentes principales de la simulación en un entorno que puede ejecutarse en una máquina local
- Ejecuta el modelo del sistema nervioso c302
- Ejecuta en paralelo el modelo corporal 3D del gusano Sibernetic usando la salida del modelo del sistema nervioso
- Genera gráficas del funcionamiento del sistema nervioso y del modelo corporal
- Genera videos de salida del modelo corporal
- El tiempo de ejecución de la simulación básica está limitado para mantener un tiempo de ejecución razonable, y solo se muestra una salida parcial equivalente a aproximadamente 5% del tiempo de ejecución en comparación con la salida de ejemplo {p:5}
- Los requisitos mínimos para ejecutarlo son 60 GB de espacio libre, al menos 2 GB de RAM, un entorno capaz de clonar repositorios git y Docker instalado
- El flujo de ejecución consiste en
git clone,./build.shopcional,./run.sh,stop.shal terminar y revisar el directorio localoutput - Si se omite
./build.sh, se descargará la imagen Docker de la versión más reciente desde OpenWorm Docker hub - Con el argumento
-d [num]se puede cambiar el tiempo de simulación en milisegundos; el valor predeterminado es15y el valor para generar el video completo de ejemplo es5000 ./run-shell-only.shsirve para iniciar sesión en el contenedor antes de ejecutarmaster_openworm.pyy revisar o modificar el código descargado y el sistema instalado dentro del contenedor- Para cambiar elementos de la instalación se modifica el
Dockerfile, y para cambiar elementos de la ejecución se modificamaster_openworm.py; después será necesario ejecutarbuild.shpara reconstruir la imagen local - La salida predeterminada solo exporta algunas imágenes y videos al sistema anfitrión; la salida completa de la simulación o datos como
worm_motion_log.txtdeben copiarse desde el contenedor Docker stop.shelimina el contenedor y los archivos relacionados, por lo que no debe ejecutarse antes de extraer los datos- La documentación adicional está disponible en http://docs.openworm.org, y el repositorio incluye high-level issues y milestones para dar seguimiento general al proyecto
1 comentarios
Comentarios de Hacker News
302 neuronas puede que no parezcan gran cosa para alguien acostumbrado a redes neuronales de más de 7 mil millones de parámetros
Pero lo que esas redes neuronales tienen en común con las neuronas biológicas se parece más a lo que tienen en común una bicicleta y un caballo. Ambos pueden moverse bastante rápido, pero uno evolucionó a través de más de mil millones de años de dura selección natural y el otro es una máquina de metal afinada con precisión para un solo propósito
Lo mismo pasa con las neuronas: son máquinas biológicas muy sofisticadas, con miles de millones de pares de bases de ADN que controlan el comportamiento, y el comportamiento emergente de las neuronas es bastante interesante tanto en sistemas biológicos como en sistemas de IA
“Estas neuronas no disparan potenciales de acción ni expresan canales de sodio dependientes de voltaje” [1]
Por eso resulta aún más interesante que pueda existir adicción a la nicotina
“C. elegans también puede usarse para estudiar la dependencia a la nicotina, ya que muestra respuestas conductuales a la nicotina similares a las de los mamíferos. Estas incluyen respuestas agudas, tolerancia, abstinencia y sensibilización” [1]
[1] https://en.m.wikipedia.org/wiki/Caenorhabditis_elegans
En cierto sentido, estos circuitos se parecen a redes neuronales y, sobre todo, tienen memoria y estado que persisten a corto y largo plazo. Cada neurona se parece más a un organismo vivo capaz de aprender y comportarse que a un parámetro dentro de un modelo
En cambio, una “neurona” virtual es una abstracción matemática muy simple, y su complejidad computacional es abrumadoramente menor que la de una neurona biológica. El conectoma es apenas un mapa muy tosco de cómo se conectan las neuronas, lejos de ser un diagrama completo de una “red neuronal”
Tal vez se pueda modelar una neurona biológica como una subred neuronal con estado dentro de una red neuronal más grande, pero incluso si asumimos equivalencia computacional, no sabemos en absoluto cuántas “neuronas” virtuales harían falta para representar todo el comportamiento computacionalmente importante de una neurona biológica
Así que un gusano con 302 neuronas biológicas podría ser computacionalmente equivalente a decenas de miles de millones de neuronas virtuales, o no; realmente no lo sabemos
Como las neuronas tienen memoria, podría parecerse un poco a una red LSTM, y como las redes neuronales biológicas no son simple propagación hacia adelante, definitivamente están más cerca de una red neuronal recurrente
Por eso me da risa cuando veo a gente hablar de subir la mente. No voy a dejar de reírme hasta que podamos entender y modelar el comportamiento relevante de las neuronas biológicas, y extraer de neuronas vivas el estado utilizable. Por ahora es 100% ciencia ficción, y quienes creen que pronto podremos subir la mente simplemente no entienden biología
Si funcionan con principios similares, ¿cómo puede un gusano hacer ese tipo de comportamiento con recursos tan pequeños? Por ejemplo, si se descubriera que las propiedades detalladas del sustrato no son esenciales para las capacidades del gusano, eso podría ser una buena noticia para la investigación en IA
En los años 90 tuve la oportunidad de hacer trabajo de programación en el laboratorio de Ralph Siegel, y él también investigaba este tipo de modelos de conectoma de gusanos
https://en.wikipedia.org/wiki/Ralph_Siegel_(scientist)
Usaba las ecuaciones de Hodgkin-Huxley para simular respuestas neuronales sobre el conectoma. Según me explicó alguien, el modelo de Hodgkin-Huxley se parece a modelar una pierna humana como tres bloques rígidos conectados por bisagras. Es suficientemente bueno como para ser útil en muchos modelos, pero no es una descripción completa
Además, las neuronas del gusano no producen spikes, y las ecuaciones HH describen neuronas que generan trenes de spikes, así que quizá no sean un modelo adecuado para las neuronas del gusano. Ese tipo de neuronas sí existe en sistemas nerviosos más complejos
Las ecuaciones HH se usan en simulaciones porque son el modelo matemático que tenemos, y parece que en el proyecto OpenWorm todavía se usan. Lo que escuché sobre las propiedades de las neuronas del gusano fue hace mucho tiempo, así que la información podría estar desactualizada
Es excelente que este trabajo continúe, y podría dar ideas sobre cómo funciona el sistema nervioso. Pero la dificultad es enorme, y se está avanzando muy lenta y trabajosamente en un territorio inmenso de desconocimiento
Entonces, ¿son muy distintas de las neuronas humanas? Me pregunto cómo funcionan y dónde podría leer más al respecto
Me gusta este enfoque de abajo hacia arriba. Porque muestra muy bien cuánto seguimos sin saber sobre la vida
Aquí también vale la pena mencionar el proyecto de célula mínima syn3.0 de Craig Venter. Este equipo creó una célula sintética viva compuesta por 473 genes, en gran parte mediante prueba y error, y todavía se desconoce la función de muchos de esos genes
Una reseña reciente del mismo equipo está en https://doi.org/10.1016/j.cell.2022.06.046
El método consiste en ver qué piezas se pueden quitar sin que el sistema colapse
El hecho técnico de haber sintetizado artificialmente el genoma es casi una especie de espectáculo, porque al final hubo que meterlo dentro de una célula existente
Es parecido a copiar un chip existente, quitarle o cambiarle unos pocos bits, y luego decir “las direccionales no funcionan, pero más o menos se puede manejar” mientras afirmas que construiste el auto desde cero
Noam Chomsky dice que hay dos tipos de IA
El primer tipo de investigación en IA es la que está más cerca de la ingeniería, como los autos autónomos, la traducción de idiomas y el reconocimiento de objetos
El segundo tipo de investigación en IA busca replicar la inteligencia de organismos vivos, por ejemplo humanos o gusanos, de una manera consistente con los modelos que tienen los científicos cognitivos
Por ejemplo, un sistema que pueda adquirir cualquier lenguaje humano con muy poca supervisión, como lo hacen los niños, sería de ese tipo
OpenWorm parece estar más cerca del segundo. Me gustaría saber si hay material interesante para explorar más este segundo tipo de IA
[0]: https://youtu.be/TAP0xk-c4mk
Revisé esto hace algunos años, y siempre esperé que el apocalipticismo al estilo Kurzweil tuviera algo de validez
La idea sería primero simular a C. elegans, luego simplemente escalar eso para poder simular a un humano, y entonces llegaría la singularidad
En realidad, ¿qué tan difícil podría ser simular a un gusano tonto? Ya tenemos el conectoma y conocemos todas las neuronas y sus conexiones, así que debería ser fácil
Pero cuando lo revisé me llevé una sorpresa. No funcionaba. Podían reproducir algunos movimientos básicos, pero muchos de los comportamientos reales del gusano seguían siendo un misterio. Ni siquiera en la documentación parecía que fueran a resolverlo pronto, y cuando volví a ver años después, parecía que al final lo habían abandonado
Hasta donde sé, el proyecto europeo tan publicitado de emulación cerebral también terminó cancelado entre sospechas de corrupción
No entendemos esto en absoluto, y parece que todavía estamos muy lejos. Por ahora, supongo que habrá que volver a la ciencia ficción
Cada sinapsis tiene neurotransmisores específicos, y la distancia, el tamaño, la forma, la cantidad de receptores y las células gliales involucradas afectan muchísimo la transmisión. La distancia y el grosor del axón también influyen en la intensidad de la señal transmitida, y todo eso es muy difícil de medir
Las neuronas también son muy sensibles a la intensidad y al timing de la señal. Por ejemplo, una sinapsis inhibitoria funciona abriendo agujeros en la membrana celular para que la carga se fugue con el tiempo. Si te equivocas un poco en esa velocidad, el comportamiento de la célula puede cambiar mucho
El conectoma es, por decirlo de alguna manera, más parecido a un modelo previo al entrenamiento absurdamente complejo, y cada neurona tiene varios pesos que describen no solo su respuesta directa a una señal, sino también su comportamiento a lo largo del tiempo. Sin esos pesos no puedes hacer una emulación
Me recuerda al primer episodio de Devs
https://www.imdb.com/title/tt8134186/
Hay una escena donde un ingeniero de IA muestra una demo en la que sincroniza el movimiento de un nematodo y luego predice sus movimientos futuros. Por cierto, es una serie realmente buena
La idea de extrapolar con muchísima precisión a partir de información es central en la serie, y hasta ahí lo dejo
Hace poco se publicó un modelo de conectoma del cerebro de la mosca de la fruta[1]
[1] https://hub.jhu.edu/2023/03/09/scientists-complete-first-map...
Ni siquiera estamos cerca todavía de demostrar que eso sea posible
Por eso proyectos como neurokernel [1] parecen un poco demasiado ambiciosos. Aun así, les deseo suerte
[1] http://neurokernel.github.io/
Hace algunos años fui en Londres a algo así como una mini conferencia de OpenWorm
Fueron varios días hablando sobre la locomoción del gusano. Yo no sabía nada sobre gusanos ni sobre locomoción animal en general, y como completo profano con apenas un interés amateur en la simulación de vida, entendí muy poco
Aun así, fue realmente interesante, y estuvo muy bien conocer a personas apasionadas por este tema
Si terminas la simulación, ¿matas al gusano?
Como miembro fundador de OpenWorm, hace casi 10 años emulé el conectoma y lo apliqué a robótica
https://youtu.be/YWQnzylhgHc
En este experimento, cada neurona se representaba como un programa, y la comunicación entre programas de neuronas individuales usaba mensajes UDP. Hubo varios problemas, pero el más grande fue que el conectoma es muy cíclico, así que en el experimento aparecía un fenómeno que llamamos “apilamiento de UDP”: es decir, los mensajes UDP de activación llegaban más rápido de lo que los programas podían procesarlos
Ahora estoy descargando el conectoma de Drosophila ya completado para crear una emulación. Estoy explorando hipervectores para emular neuronas o neuropilos, pero todavía estoy afinando el concepto
También he probado ideas como matrices de adyacencia, programación funcional, etc. La idea es que cada función represente una parte del sistema nervioso del animal; en C. elegans, por ejemplo, serían tres funciones y programas separados para neuronas sensoriales, interneuronas y neuronas motoras
La emulación de C. elegans también se implementó como una sola app de Python y se portó a varios otros lenguajes de programación, y mostró emulaciones claras en varios robots. Los experimentos de ablación mostraron que el sistema nervioso emulado coincide con el sistema nervioso biológico a través de comportamientos observables
En el continuo evolutivo del sistema nervioso, en un extremo está el cerebro del gusano y en el otro el cerebro humano. Pero incluso solo con el sistema nervioso del gusano puede verse claramente la puerta de entrada hacia la inteligencia general y la AGI