1 pontos por GN⁺ 2023-07-08 | 1 comentários | Compartilhar no WhatsApp
  • OpenWorm é um projeto que tem como objetivo construir um modelo computacional abrangente do nematódeo microscópico Caenorhabditis elegans (C. elegans)
  • A abordagem é uma modelagem bottom-up que simula dados obtidos em experimentos científicos realizados na última década para observar se o comportamento do verme emerge
  • O contêiner Docker reúne os principais componentes da simulação em um ambiente executado na máquina local
    • Executar o modelo do sistema nervoso c302
    • Executar em paralelo o modelo corporal 3D do verme Sibernetic usando a saída do modelo do sistema nervoso
    • Gerar gráficos do funcionamento dos modelos do sistema nervoso e do corpo
    • Gerar vídeos da saída do modelo corporal
  • O tempo de execução da simulação padrão é limitado para manter um tempo de execução razoável, e apenas uma saída parcial equivalente a cerca de 5% do tempo de execução é exibida em comparação com a saída de exemplo {p:5}
  • Os requisitos de execução são no mínimo 60GB de espaço livre, pelo menos 2GB de RAM, um ambiente capaz de clonar repositórios git e Docker instalado
  • O fluxo de execução consiste em git clone, ./build.sh opcional, ./run.sh, stop.sh ao terminar e verificação do diretório local output
  • Se você pular ./build.sh, a imagem Docker da versão mais recente será baixada do OpenWorm Docker hub
  • O argumento -d [num] permite alterar o tempo de simulação em milissegundos; o padrão é 15, e o valor para gerar o vídeo de exemplo completo é 5000
  • ./run-shell-only.sh serve para entrar no contêiner antes de executar master_openworm.py e inspecionar ou modificar a base de código em checkout e o sistema instalado
  • Para mudar itens de instalação, edite o Dockerfile; para mudar itens de execução, edite master_openworm.py; depois disso, é necessário executar build.sh para reconstruir a imagem local
  • A saída padrão exporta para o sistema hospedeiro apenas algumas figuras e vídeos; a saída completa da simulação ou dados como worm_motion_log.txt precisam ser copiados do contêiner Docker
  • stop.sh remove o contêiner e os arquivos relacionados, portanto não deve ser executado antes de extrair os dados
  • Documentação adicional é fornecida em http://docs.openworm.org, e o repositório inclui high-level issues e milestones para acompanhar o projeto como um todo

1 comentários

 
GN⁺ 2023-07-08
Comentários do Hacker News
  • 302 neurônios podem não parecer impressionantes para quem está acostumado com redes neurais de 7 bilhões+ de parâmetros
    Mas a semelhança entre essas redes neurais e neurônios biológicos é mais ou menos como a semelhança entre uma bicicleta e um cavalo. Ambos podem se mover bem rápido, mas um evoluiu ao longo de mais de 1 bilhão de anos de seleção natural brutal, e o outro é uma máquina de metal ajustada com precisão para um único propósito
    O mesmo vale para os neurônios: são máquinas biológicas extremamente sofisticadas, com bilhões de pares de bases de DNA que controlam o comportamento, e o comportamento emergente dos neurônios, tanto em sistemas biológicos quanto em sistemas de IA, é bastante interessante

    • Além disso, esses neurônios também são bem diferentes dos neurônios de mamíferos
      “Esses neurônios não disparam potenciais de ação, nem expressam canais de sódio dependentes de voltagem” [1]
      Por isso, o fato de poder haver vício em nicotina fica ainda mais interessante
      “C. elegans também pode ser usado para estudar dependência de nicotina, porque apresenta respostas comportamentais à nicotina semelhantes às de mamíferos. Isso inclui resposta aguda, tolerância, abstinência e sensibilização” [1]
      [1] https://en.m.wikipedia.org/wiki/Caenorhabditis_elegans
    • Foi dito “bilhões de pares de bases de DNA que controlam o comportamento”, mas o genoma completo do C. elegans tem 100 milhões de pares de bases
    • A melhor forma de ver isso é que um único neurônio biológico, por si só, é uma máquina complexa cheia de circuitos de controle genético
      Em certo sentido, esses circuitos se parecem com redes neurais e, acima de tudo, têm memória e estado que persistem ao longo de períodos curtos e longos. Cada neurônio está mais próximo de um organismo vivo capaz de aprender e agir do que de um parâmetro dentro de um modelo
      Em contraste, um “neurônio” virtual é uma abstração matemática muito simples, com complexidade computacional esmagadoramente menor do que a de um neurônio biológico. O conectoma é apenas um mapa muito grosseiro de como os neurônios se conectam, bem longe de ser o diagrama completo de uma “rede neural”
      Talvez seja possível modelar um neurônio biológico como uma sub-rede neural com estado dentro de uma rede neural maior, mas mesmo assumindo equivalência computacional, não sabemos nem de longe quantos “neurônios” virtuais seriam necessários para representar todo o comportamento computacionalmente relevante de um neurônio biológico
      Então um verme com 302 neurônios biológicos pode ser computacionalmente equivalente a dezenas de bilhões de neurônios virtuais, ou não; simplesmente não sabemos
      Nesse sentido, pode parecer um pouco com uma rede LSTM, já que o neurônio tem memória, e como redes neurais biológicas não são simples feedforward, elas certamente estão mais próximas de redes neurais recorrentes
      É por isso que eu rio quando vejo gente falando de upload da mente. Não vou parar de rir até que consigamos entender e modelar o comportamento relevante dos neurônios biológicos e extrair o estado utilizável de neurônios vivos. No momento isso é 100% ficção científica, e quem acha que vamos conseguir fazer upload da mente em breve não entende de biologia
    • É impressionante na medida em que neurônios biológicos se parecem com os neurônios do aprendizado de máquina. Provavelmente é aí que está o interesse da pesquisa
      Se funcionam por princípios parecidos, como o verme consegue ter esse comportamento com tão poucos recursos? Por exemplo, se ficar claro que características detalhadas do substrato não são essenciais para as capacidades do verme, isso pode ser uma boa notícia para a pesquisa em IA
  • Nos anos 1990, tive a chance de fazer programação no laboratório de Ralph Siegel, e ele também pesquisava esse tipo de modelo de conectoma de vermes
    https://en.wikipedia.org/wiki/Ralph_Siegel_(scientist)
    Ele usava as equações de Hodgkin-Huxley para simular respostas neurais sobre o conectoma. Alguém me explicou que o modelo de Hodgkin-Huxley é parecido com modelar uma perna humana como três blocos rígidos conectados por dobradiças. É suficiente para ser útil em muitos modelos, mas não é uma descrição completa
    Além disso, neurônios de vermes não geram spikes, e as equações HH descrevem neurônios que produzem trens de spikes, então talvez não sejam um modelo adequado para neurônios de vermes. Esses neurônios existem em sistemas nervosos mais complexos
    As equações HH são o modelo matemático que temos, então acabam sendo usadas em simulações, e parece que ainda são usadas no projeto OpenWorm. O que ouvi sobre as propriedades dos neurônios de vermes foi há muito tempo, então a informação pode estar desatualizada
    É ótimo que esse trabalho continue, e ele pode trazer insights sobre o funcionamento do sistema nervoso. Mas a dificuldade é enorme, e estamos avançando de forma muito lenta e penosa em um território gigantesco de desconhecido

    • Foi a primeira vez que li que neurônios de vermes não geram spikes, e achei isso realmente fascinante
      Nesse caso, eles são muito diferentes dos neurônios humanos? Tenho curiosidade sobre como funcionam e onde posso ler mais sobre isso
    • Pergunto por curiosidade: havia alguma aplicação comercial que essa pesquisa pretendia atingir?
  • Gosto dessa abordagem bottom-up. Porque ela mostra muito bem o quanto ainda não sabemos sobre a vida
    Aqui também vale mencionar o projeto de célula mínima syn3.0, de Craig Venter. Essa equipe criou uma célula sintética viva composta por 473 genes, e boa parte disso foi feita por tentativa e erro, sendo que a função de muitos desses genes ainda é desconhecida
    Uma revisão recente da mesma equipe está em https://doi.org/10.1016/j.cell.2022.06.046

    • Não sei se dá para chamar isso de abordagem bottom-up. É assim que divulgam, mas na prática é mais parecido com Jenga
      É uma forma de ver quais peças você consegue remover sem que o sistema desmorone
      O fato técnico de o genoma ter sido sintetizado artificialmente é mais um tipo de exibicionismo, já que no fim ainda precisaram colocá-lo dentro de uma célula já existente
      É como copiar um chip existente, trocar algumas peças tirando alguns bits e depois dizer que você construiu um carro do zero porque “a seta não funciona, mas no geral ele anda”
    • Acabou de ser publicado um artigo que acompanha a evolução por 2 mil gerações dessa célula mínima: https://www.nature.com/articles/s41586-023-06288-x
  • Noam Chomsky diz que existem dois tipos de IA
    O primeiro tipo de pesquisa em IA é mais próximo da engenharia, como carros autônomos, tradução de idiomas e reconhecimento de objetos
    O segundo tipo de pesquisa em IA busca replicar a inteligência de organismos, como humanos ou vermes, de uma forma consistente com os modelos que os cientistas cognitivos têm
    Por exemplo, um sistema que adquire qualquer linguagem humana com muito pouca supervisão, como as crianças, seria desse tipo
    O OpenWorm parece mais próximo do segundo tipo. Gostaria de conhecer materiais interessantes para explorar mais esse tipo 2 de IA
    [0]: https://youtu.be/TAP0xk-c4mk

  • Olhei para isso há alguns anos e sempre esperei que houvesse alguma validade no apocalipticismo ao estilo Kurzweil
    A ideia era: primeiro simular o C. elegans, depois só aumentar a escala para simular humanos também, e então viria a singularidade
    Na prática, quão difícil poderia ser simular um verme tão simples? Já temos o conectoma, conhecemos todos os neurônios e conexões, então parecia que deveria ser fácil
    Mas quando fui ver, fiquei chocado. Não funcionava. Era possível reproduzir parte do movimento básico, mas muitos comportamentos do verme real ainda eram um mistério. Mesmo na documentação, não parecia que as pessoas estavam perto de descobrir isso e, alguns anos depois, vi que aparentemente acabaram desistindo
    Até onde eu sei, o projeto europeu superbadalado de emulação cerebral também foi encerrado em meio a suspeitas de corrupção
    Não entendemos isso de forma alguma, e parece que ainda estamos muito longe. Por enquanto, acho que é melhor voltar para a ficção científica

    • Você disse “temos o conectoma e conhecemos todos os neurônios e conexões”, mas não é bem assim
      Cada sinapse tem neurotransmissores específicos, e distância, tamanho, forma, número de receptores e a glia associada influenciam enormemente a transmissão. A distância e a espessura do axônio também afetam a força do sinal transmitido, e tudo isso é muito difícil de medir
      Os neurônios também são extremamente sensíveis à intensidade e ao timing do sinal. Por exemplo, sinapses inibitórias funcionam abrindo poros na membrana celular, fazendo a carga vazar com o tempo. Se você errar um pouco essa velocidade, o comportamento da célula pode mudar bastante
      O conectoma é, por assim dizer, algo mais próximo de um modelo pré-treinado absurdamente complexo, e cada neurônio tem vários pesos que descrevem não só a resposta direta ao sinal, mas também seu comportamento ao longo do tempo. Sem esses pesos, não dá para emular
  • Isso me lembra o primeiro episódio de Devs
    https://www.imdb.com/title/tt8134186/
    Há uma cena em que um engenheiro de IA mostra uma demonstração sincronizando o movimento de um nematódeo e depois prevendo seus movimentos futuros. Aliás, é uma série realmente muito boa

    • Ficou ainda melhor por ter saído antes de LLMs entrarem na consciência popular
      A ideia de extrapolar com altíssima precisão com base em informação é central na série, então vou parar por aqui
  • Um modelo de conectoma do cérebro da mosca-da-fruta foi publicado recentemente[1]
    [1] https://hub.jhu.edu/2023/03/09/scientists-complete-first-map...

    • É algo legal, mas o conectoma de C. elegans foi publicado em 1989, e basta olhar um pouco para o projeto linkado para ver que ele nem chegou perto de fazer todo o repertório comportamental do C. elegans emergir de uma simulação neuronal
      Ainda estamos longe até de provar que isso é possível
      Por isso, projetos como o neurokernel [1] parecem um pouco ambiciosos demais. Ainda assim, boa sorte para eles
      [1] http://neurokernel.github.io/
  • Fui a algo parecido com uma mini conferência do OpenWorm em Londres alguns anos atrás
    Foram alguns dias falando sobre locomoção do verme. Eu não sabia nada sobre vermes nem sobre locomoção animal em geral e era um completo leigo, com apenas um interesse amador em simulação de vida, então quase não entendi nada
    Mesmo assim, foi realmente fascinante, e foi muito legal conhecer pessoas tão apaixonadas por esse tema

  • Se você encerrar a simulação, matou o verme?

    • Não, se tiver salvo o estado em algum lugar
  • Como membro fundador do OpenWorm, há quase 10 anos emulei o conectoma e o apliquei à robótica
    https://youtu.be/YWQnzylhgHc
    Nesse experimento, cada neurônio era representado como um programa, e mensagens UDP eram usadas para a comunicação entre os programas de neurônios individuais. Houve vários problemas, mas o maior foi que o conectoma é muito cíclico, então ocorreu um fenômeno que chamamos no experimento de “UDP stacking”. Ou seja, as mensagens UDP de ativação chegavam mais rápido do que os programas conseguiam processar
    Atualmente estou baixando o conectoma de Drosophila concluído para criar uma emulação. Estou explorando hipervetores para emular neurônios ou neurópilos, mas ainda estou refinando o conceito
    Também tentei várias ideias, como matriz de adjacência, programação funcional etc. Cada função representaria uma parte do sistema nervoso do animal; no caso de C. elegans, por exemplo, seria como ter neurônios sensoriais, interneurônios e neurônios motores como três funções e programas separados
    A emulação de C. elegans também já foi implementada como um único app em Python e portada para várias outras linguagens de programação, além de ter mostrado emulações claras em vários robôs. Experimentos de ablação mostraram que o sistema nervoso emulado correspondia ao sistema nervoso biológico em termos de comportamento observável
    No contínuo evolutivo do sistema nervoso, em uma ponta está o cérebro do verme e na outra está o cérebro humano. Mas mesmo só com o sistema nervoso do verme já dá para ver claramente o caminho até a inteligência geral e a AGI