1 puntos por GN⁺ 2023-07-08 | 1 comentarios | Compartir por WhatsApp
  • 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.sh opcional, ./run.sh, stop.sh al terminar y revisar el directorio local output
  • 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 es 15 y el valor para generar el video completo de ejemplo es 5000
  • ./run-shell-only.sh sirve para iniciar sesión en el contenedor antes de ejecutar master_openworm.py y 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 modifica master_openworm.py; después será necesario ejecutar build.sh para 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.txt deben copiarse desde el contenedor Docker
  • stop.sh elimina 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

 
GN⁺ 2023-07-08
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

    • Además, estas neuronas también son bastante distintas de las de los mamíferos
      “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
    • Dije “miles de millones de pares de bases de ADN que controlan el comportamiento”, pero el genoma completo de C. elegans tiene 100 millones de pares de bases
    • La mejor forma de verlo es que una sola neurona biológica es en sí misma una máquina compleja llena de circuitos de control genético
      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
    • Suena impresionante en la medida en que las neuronas biológicas se parecen a las del aprendizaje automático. Probablemente ahí esté el interés de investigación
      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

    • Es la primera vez que leo que las neuronas del gusano no producen spikes, y de verdad me parece fascinante
      Entonces, ¿son muy distintas de las neuronas humanas? Me pregunto cómo funcionan y dónde podría leer más al respecto
    • Pregunto por curiosidad si esta investigación tenía algún uso comercial como objetivo
  • 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

    • No estoy seguro de que se le pueda llamar un enfoque de abajo hacia arriba. Así es como lo promocionan, pero en realidad se parece más a Jenga
      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
    • Acaba de publicarse un artículo que sigue la evolución de 2 mil generaciones de esta célula mínima: https://www.nature.com/articles/s41586-023-06288-x
  • 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

    • Dices que “tenemos el conectoma y conocemos todas las neuronas y sus conexiones”, pero no es así
      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

    • Se volvió todavía mejor por haber salido antes de que los LLM entraran en la conciencia popular
      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...

    • Está genial, pero el conectoma de C. elegans se publicó en 1989, y con solo revisar un poco el proyecto enlazado queda claro que ni de cerca han logrado hacer que el conjunto completo de comportamientos de C. elegans emerja desde una simulación neuronal
      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?

    • No, si guardaste su estado en algún lado
  • 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