- OpenWorm ist ein Projekt mit dem Ziel, ein umfassendes Rechenmodell des mikroskopischen Nematoden Caenorhabditis elegans (C. elegans) zu erstellen
- Der Ansatz ist Bottom-up-Modellierung: Daten aus wissenschaftlichen Experimenten der letzten zehn Jahre werden simuliert, um zu beobachten, ob daraus das Verhalten des Wurms entsteht
- Der Docker-Container bündelt die Hauptkomponenten der Simulation und stellt eine Umgebung bereit, die auf einer lokalen Maschine ausgeführt werden kann
- Ausführen des Nervensystemmodells c302
- Paralleles Ausführen des 3D-Wurmkörpermodells Sibernetic unter Verwendung der Ausgabe des Nervensystemmodells
- Erzeugen von Verhaltensgraphen für Nerven- und Körpermodell
- Erzeugen eines Ausgabevideos des Körpermodells
- Die Standardlaufzeit der Simulation ist auf eine sinnvolle Ausführungszeit begrenzt; im Vergleich zur Beispielausgabe wird nur eine Teilausgabe angezeigt, die etwa 5 % der Laufzeit entspricht {p:5}
- Die Ausführungsanforderungen sind mindestens 60 GB freier Speicherplatz, mindestens 2 GB RAM, eine Umgebung, in der ein Git-Repository geklont werden kann, sowie eine installierte Docker-Umgebung
- Der Ablauf besteht aus
git clone, optional./build.sh,./run.sh, nach Abschlussstop.shund dem Prüfen des lokalen Verzeichnissesoutput - Wenn
./build.shübersprungen wird, wird das Docker-Image der neuesten Release von OpenWorm Docker hub heruntergeladen - Mit dem Argument
-d [num]kann die Simulationszeit in Millisekunden geändert werden; der Standardwert ist15, für die Erzeugung des vollständigen Beispielvideos ist der Wert5000 ./run-shell-only.shdient dazu, sich vor dem Ausführen vonmaster_openworm.pyim Container anzumelden, um die ausgecheckte Codebasis und das installierte System zu prüfen oder zu ändern- Um installierte Komponenten zu ändern, wird die
Dockerfileangepasst; um auszuführende Komponenten zu ändern, wirdmaster_openworm.pyangepasst. Danach ist zur Neuerstellung des lokalen Images die Ausführung vonbuild.sherforderlich - Die Standardausgabe exportiert nur einige Bilder und Videos auf das Host-System; die vollständige Simulationsausgabe oder Daten wie
worm_motion_log.txtmüssen aus dem Docker-Container kopiert werden stop.shentfernt den Container und zugehörige Dateien, daher sollte es nicht ausgeführt werden, bevor die Daten herauskopiert wurden- Zusätzliche Dokumentation ist unter http://docs.openworm.org verfügbar, und das Repository enthält High-Level-Issues und Milestones zur Nachverfolgung des Gesamtprojekts
1 Kommentare
Hacker-News-Kommentare
302 Neuronen mögen für jemanden, der an neuronale Netze mit über 7 Milliarden Parametern gewöhnt ist, nicht besonders beeindruckend wirken.
Aber die Gemeinsamkeiten zwischen solchen neuronalen Netzen und biologischen Neuronen entsprechen eher den Gemeinsamkeiten zwischen einem Fahrrad und einem Pferd. Beide können sich ziemlich schnell fortbewegen, aber das eine hat sich durch mehr als eine Milliarde Jahre harter natürlicher Selektion entwickelt, das andere ist eine für einen einzigen Zweck fein abgestimmte Metallmaschine.
Ähnlich ist es bei Neuronen: Sie sind hochentwickelte biologische Maschinen mit Milliarden von DNA-Basenpaaren, die Verhalten steuern, und das emergente Verhalten von Neuronen ist sowohl in biologischen Systemen als auch in KI-Systemen ziemlich interessant.
„Diese Neuronen feuern keine Aktionspotenziale und exprimieren keine spannungsabhängigen Natriumkanäle“ [1]
Umso interessanter ist, dass sie eine Nikotinabhängigkeit entwickeln können.
„C. elegans kann auch zur Untersuchung der Nikotinabhängigkeit verwendet werden, weil es nikotinbezogene Verhaltensreaktionen zeigt, die denen von Säugetieren ähneln. Dazu gehören akute Reaktionen, Toleranz, Entzug und Sensibilisierung“ [1]
[1] https://en.m.wikipedia.org/wiki/Caenorhabditis_elegans
Diese Schaltkreise ähneln in mancher Hinsicht neuronalen Netzen und haben vor allem Erinnerungen und Zustände, die über kurze und lange Zeiträume bestehen bleiben. Jedes Neuron ist eher ein lebendes Individuum, das lernen und handeln kann, als ein Parameter in einem Modell.
Ein virtuelles „Neuron“ dagegen ist eine sehr einfache mathematische Abstraktion und hat eine im Vergleich zu einem biologischen Neuron verschwindend geringe rechnerische Komplexität. Das Konnektom ist nur eine sehr grobe Karte davon, wie Neuronen verbunden sind, und weit entfernt von einem vollständigen Schaltplan des „neuronalen Netzes“.
Vielleicht kann man biologische Neuronen als zustandsbehaftete Teil-Netze innerhalb eines größeren neuronalen Netzes modellieren, aber selbst wenn man rechnerische Äquivalenz annimmt, wissen wir überhaupt nicht, wie viele virtuelle „Neuronen“ nötig wären, um das gesamte rechnerisch relevante Verhalten eines biologischen Neurons abzubilden.
Deshalb könnte ein Wurm mit 302 biologischen Neuronen rechnerisch Milliarden virtuellen Neuronen entsprechen – wir wissen es schlicht nicht.
Da Neuronen Gedächtnis haben, wirken sie in gewisser Weise ein wenig wie LSTM-Netze, und weil biologische neuronale Netze keine einfache reine Feedforward-Struktur sind, sind sie eindeutig eher rekurrenten neuronalen Netzen ähnlich.
Aus diesen Gründen muss ich lachen, wenn Leute von Mind Uploading sprechen. Ich werde damit nicht aufhören können, bis wir das relevante Verhalten biologischer Neuronen verstehen und modellieren können und in der Lage sind, den verfügbaren Zustand aus lebenden Neuronen zu extrahieren. Im Moment ist das zu 100 % Science-Fiction, und wer glaubt, dass wir demnächst unseren Geist hochladen können, versteht nichts von Biologie.
Wenn sie nach ähnlichen Prinzipien arbeiten: Wie schafft es der Wurm, mit so geringen Ressourcen ein solches Verhalten zu zeigen? Wenn sich etwa herausstellen würde, dass die Details des Substrats für die Fähigkeiten des Wurms nicht wesentlich sind, könnte das eine gute Nachricht für die KI-Forschung sein.
In den 1990er-Jahren hatte ich die Gelegenheit, im Labor von Ralph Siegel zu programmieren, und er arbeitete ebenfalls an dieser Art von Konnektom-Modellen für Würmer.
https://en.wikipedia.org/wiki/Ralph_Siegel_(scientist)
Er verwendete die Hodgkin-Huxley-Gleichungen, um Neuronenreaktionen auf dem Konnektom zu simulieren. Wie mir jemand erklärte, ist das Hodgkin-Huxley-Modell ungefähr so, als würde man ein menschliches Bein als drei starre Blöcke modellieren, die durch Scharniere verbunden sind. Für viele Modelle nützlich genug, aber keine vollständige Erklärung.
Außerdem feuern Wurmneuronen keine Spikes, und die HH-Gleichungen beschreiben Neuronen, die Spike-Züge erzeugen, daher sind sie für Wurmneuronen möglicherweise nicht das passende Modell. Solche Neuronen gibt es in komplexeren Nervensystemen.
Die HH-Gleichungen werden verwendet, weil sie das mathematische Modell sind, das wir haben, und anscheinend werden sie auch im OpenWorm-Projekt noch eingesetzt. Was die Eigenschaften von Wurmneuronen betrifft, habe ich das vor langer Zeit gehört, daher könnten die Informationen veraltet sein.
Es ist großartig, dass diese Arbeit weitergeht, und sie könnte Einblicke in die Funktionsweise des Nervensystems liefern. Aber der Schwierigkeitsgrad ist enorm, und man bewegt sich nur sehr langsam und mühsam durch ein riesiges unbekanntes Gebiet voran.
Sind sie dann sehr anders als menschliche Neuronen? Ich frage mich, wie sie funktionieren und wo man darüber nachlesen kann.
Ich mag diesen Bottom-up-Ansatz, weil er sehr gut zeigt, wie viel wir über das Leben noch nicht wissen.
In diesem Zusammenhang ist auch Craig Venters Minimalzell-Projekt syn3.0 erwähnenswert. Das Team hat eine lebende synthetische Zelle aus 473 Genen geschaffen; ein großer Teil davon beruhte auf Trial and Error, und die Funktionen vieler dieser Gene sind bis heute unbekannt.
Ein aktuelles Review desselben Teams findet sich unter https://doi.org/10.1016/j.cell.2022.06.046.
Man schaut, welche Teile man entfernen kann, ohne dass das System zusammenbricht.
Die technische Tatsache, dass das Genom künstlich synthetisiert wurde, ist eher eine Art Showmanship; am Ende musste es ohnehin in eine vorhandene Zelle eingesetzt werden.
Das ist ungefähr so, als würde man einen bestehenden Chip kopieren, nur ein paar Bits weglassen und austauschen und dann behaupten, man habe ein Auto von Grund auf gebaut, während man sagt: „Die Blinker funktionieren nicht, aber fahren kann es so ungefähr.“
Noam Chomsky sagt, es gebe zwei Arten von KI
Die erste Art der KI-Forschung sei eher Ingenieurwesen, etwa selbstfahrende Autos, Sprachübersetzung oder Objekterkennung
Die zweite Art der KI-Forschung versuche, die Intelligenz von Lebewesen, etwa Menschen oder Würmern, auf eine Weise zu replizieren, die mit den Modellen von Kognitionswissenschaftlern konsistent ist
Ein Beispiel wäre ein System, das wie Kinder mit sehr wenig Anleitung jede menschliche Sprache erwerben kann
OpenWorm scheint eher in Richtung Nr. 2 zu gehen. Ich würde gern interessante Materialien kennenlernen, mit denen man diese KI des Typs 2 weiter erkunden kann
[0]: https://youtu.be/TAP0xk-c4mk
Ich habe mir das vor ein paar Jahren angesehen und immer gehofft, dass an der Kurzweil’schen Untergangsprophetie etwas dran ist
Also zuerst C. elegans simulieren, dann einfach nur hochskalieren und schon kann man auch Menschen simulieren, und dann kommt die Singularität
Denn wie schwer kann es schon sein, einen dummen Wurm zu simulieren? Man hat das Konnektom und kennt alle Neuronen und Verbindungen, also sollte es leicht sein
Als ich es mir dann ansah, war ich schockiert. Es funktionierte nicht. Einige grundlegende Bewegungen konnten reproduziert werden, aber vieles von dem, was ein echter Wurm tut, war weiterhin ein Rätsel. Auch in der Dokumentation sah es nicht so aus, als würden die Leute das bald herausfinden, und ein paar Jahre später wirkte es so, als hätten sie letztlich aufgegeben
Soweit ich weiß, wurde auch das überhypte europäische Projekt zur Gehirn-Emulation unter Korruptionsvorwürfen eingestellt
Wir verstehen das überhaupt nicht und scheinen noch sehr weit davon entfernt zu sein. Fürs Erste müssen wir wohl zur Science-Fiction zurückkehren
Jede Synapse hat bestimmte Neurotransmitter, und Abstand, Größe, Form, Anzahl der Rezeptoren sowie beteiligte Gliazellen haben einen sehr großen Einfluss auf die Übertragung. Auch Abstand und Dicke der Axone beeinflussen die Stärke des übertragenen Signals, und all das ist sehr schwer zu messen
Neuronen reagieren außerdem sehr empfindlich auf Signalstärke und Timing. Eine inhibitorische Synapse funktioniert zum Beispiel, indem sie Löcher in der Zellwand öffnet, sodass Ladung mit der Zeit entweichen kann. Wenn diese Geschwindigkeit nur leicht falsch ist, kann sich das Verhalten der Zelle stark verändern
Ein Konnektom ist gewissermaßen eher ein wahnsinnig komplexes vortrainiertes Modell, und jedes Neuron hat mehrere Gewichte, die nicht nur die direkte Reaktion auf Signale, sondern auch das Verhalten über die Zeit beschreiben. Ohne diese Gewichte kann man es nicht emulieren
Das erinnert mich an die erste Folge von Devs
https://www.imdb.com/title/tt8134186/
Es gibt eine Szene, in der ein KI-Ingenieur eine Demo zeigt, bei der die Bewegungen eines Fadenwurms synchronisiert werden und anschließend seine künftigen Bewegungen vorhergesagt werden. Nebenbei: wirklich eine sehr gute Serie
Die Idee, auf Basis von Informationen sehr genau zu extrapolieren, ist zentral für diese Serie, aber mehr sage ich dazu nicht
Ein Konnektom-Modell des Gehirns der Fruchtfliege wurde kürzlich veröffentlicht[1]
[1] https://hub.jhu.edu/2023/03/09/scientists-complete-first-map...
Selbst davon zu beweisen, dass das überhaupt möglich ist, ist man noch weit entfernt
Deshalb wirken Projekte wie neurokernel [1] etwas überambitioniert. Trotzdem viel Glück
[1] http://neurokernel.github.io/
Vor ein paar Jahren war ich in London bei einer Art OpenWorm-Mini-Konferenz
Dort ging es mehrere Tage lang um Wurm-Lokomotion. Ich wusste nichts über Würmer oder Tierbewegung im Allgemeinen und war als völliger Laie nur amateurhaft an Lebenssimulation interessiert, daher habe ich kaum etwas verstanden
Trotzdem war es wirklich faszinierend, und es war großartig, Menschen zu treffen, die für dieses Thema brennen
Tötet man den Wurm, wenn man die Simulation beendet?
Als Gründungsmitglied von OpenWorm habe ich vor fast zehn Jahren das Konnektom emuliert und in der Robotik eingesetzt
https://youtu.be/YWQnzylhgHc
In diesem Experiment wurde jedes Neuron als eigenes Programm dargestellt, und für die Kommunikation zwischen den einzelnen Neuronenprogrammen wurden UDP-Nachrichten verwendet. Es gab mehrere Probleme, das größte war, dass das Konnektom sehr zyklisch ist und es in dem Experiment zu dem kam, was wir „UDP Stacking“ nannten. Das heißt, UDP-Nachrichten als Aktivierungssignale gingen schneller ein, als die Programme sie verarbeiten konnten
Derzeit lade ich das fertiggestellte Drosophila-Konnektom herunter und baue eine Emulation. Ich erkunde Hypervektoren zur Emulation von Neuronen oder Neuropilen, bin aber noch dabei, das Konzept auszuarbeiten
Ich habe auch verschiedene andere Ideen ausprobiert, etwa Adjazenzmatrizen und funktionale Programmierung. Dabei steht jede Funktion für einen Teil des Nervensystems eines Tieres; bei C. elegans würde man etwa sensorische Neuronen, Interneuronen und Motoneuronen als drei getrennte Funktionen und Programme betrachten
Die C.-elegans-Emulation wurde sowohl als einzelne Python-App implementiert als auch in mehrere andere Programmiersprachen portiert und zeigte auf mehreren Robotern eine deutliche Emulation. Ablationsexperimente zeigten, dass das emulierte Nervensystem anhand beobachtbaren Verhaltens mit dem biologischen Nervensystem übereinstimmt
Auf dem evolutionären Kontinuum des Nervensystems liegt am einen Ende das Gehirn des Wurms und am anderen das menschliche Gehirn. Doch schon im Nervensystem des Wurms ist das Tor zu allgemeiner Intelligenz und AGI klar zu erkennen