FlyCore

FlyCore ist die Software, die das Fliegengehirn in Echtzeit rechnet, nativ und direkt im Browser. Alle Demos laufen darauf.

3D-Ansicht braucht WebGPU oder WebGL2.

Eingangsneuronengelesene Neuronen

Anforderungen

Das Netz hat 138.639 Neuronen und 15,09 Millionen vorzeichenbehaftete Verbindungen. Es wird je nach Modell 12- bis 50-mal pro Sekunde ausgewertet, und der Zustand wird von Schritt zu Schritt weitergeführt. Je Zeitschritt fällt ein dünn besetztes Matrix-Vektor-Produkt an, das in wenigen Millisekunden fertig sein muss, auch im Browser.

Aufbau

Der Kern ist in Rust geschrieben, ohne Standardbibliothek (no_std), ohne externe Abhängigkeiten und ohne unsafe-Code. Er enthält die gesamte Rechnung: das dünn besetzte Produkt, die Anschlüsse an die Maschine, die Zustandsaktualisierung und die Aufbereitung der Eingänge, einschließlich eigener Gleitkomma-Funktionen. Dadurch liefern alle Plattformen dieselben Ergebnisse.

Plattformspezifisch ist nur das dünn besetzte Produkt. Im Browser läuft es als WebGPU-Kernel, mit WebAssembly (SIMD) als Ausweichlösung.

Bitgenau wie im Training

Jede Modelldatei enthält einen aufgezeichneten Lauf aus dem Training. Die Engine rechnet ihn im Browser nach und trifft ihn bis auf Millionstel.

Ein Zeitschritt

24 Neuronen des Fliegengehirns in ihrer echten Gestalt, mit den gemessenen Orten ihrer Synapsen. Darüber läuft ein aufgezeichneter Lauf des Modells: Jedes Neuron leuchtet mit seiner Aktivität; wo gerade Signal fließt, läuft ein Impuls durch die Fortsätze des sendenden Neurons zur Synapse, die Synapse blitzt auf, und das Signal läuft weiter in das empfangende Neuron. Die Zellkörper sind zur Orientierung eingezeichnet; bei Insekten liegen sie an der Oberfläche des Gehirns, abseits des Signalwegs. Ein Klick auf einen Zellkörper oder einen Namen zeigt ein Neuron mit seinen Partnern.

erregendes Signalhemmendes Signal

Das Vorzeichen folgt dem Neurotransmitter, der für die sendende Zelle vorhergesagt ist (Eckstein et al. 2024), wie bei Shiu et al. 2024: Acetylcholin erregend, GABA und Glutamat hemmend. Jedes Neuron hat seine eigene Ruheaktivität und Zeitkonstante, wie echte Neuronen. Der Schaltplan zeichnet sie nicht auf, deshalb werden sie für jede Aufgabe gelernt.

Rhythmus

Die Neuronen der Fliege feuern nicht alle im Gleichtakt, und es kommt darauf an, wann sie relativ zueinander aktiv sind. Deshalb trägt in unserem Modell jedes Neuron neben seiner Aktivität eine Phase, und wie schnell sie sich dreht, wird gelernt.

Zustand je NeuronRealteil + ImaginärteilRekurrenter Schritt, WebGPU5,5 ms
ReizAktivität

Das Gehmodell nutzt diesen Rhythmus, um den Körper aufrecht zu halten.

Was die Demos laden

Jede Demo lädt eine Datei: die 15.091.983 Verbindungen des Fliegengehirns als dünn besetzte Matrix, Ruheaktivität und Zeitkonstante jedes Neurons, den Rhythmus, wo das Modell einen nutzt, und die Anschlüsse an die Maschine. In 32-Bit-Gleitkomma sind das 126 MB. Das gepackte Format speichert die Synapsenzahlen als Ganzzahlen und ist für die Verbindungen verlustfrei; damit sind es 40 bis 72 MB. Die Demos laden die Datei einmal und rechnen danach lokal.

Laufzeiten

Im Browser rechnet ein Schritt des Fliegengehirns in 4 bis 9 ms mit WebGPU, schnell genug für 50 Schritte pro Sekunde. Nativ braucht ein Schritt 2,4 ms auf zehn CPU-Kernen.

Neuronengruppen

Die Neuronen sind nach ihrer Funktion gruppiert: dort, wo das Gehirn seine Eingänge erhält, das Gehirn selbst und dort, wo das Gehirn gelesen wird. An diesen Stellen wird eine Maschine angeschlossen.

Eingänge18.669
  • Visuelle Afferenzen10.855CursorGazePlay
  • Mechano-/auditorische Afferenzen2.656
  • Riechsinneszellen (Antennen)2.279Cursor
  • Geschmack, Temperatur, Feuchte, andere562
  • Aufsteigend (Körperzustand)2.317CursorWalkPlay
Kern118.471
  • Zentralhirn32.379
  • Optische Loben86.092GazePlay
Ausgänge1.485
  • Absteigende Neuronen1.299CursorWalkPlay
  • Motorisch / endokrin186