The NeuroSynthetica Sentience Engine™ is a high-performance, real-time, headless neural network simulator with scalable capacity and temporal resolution. Ideal for research as well as deployment of sentience in embedded designs, internet appliances, and IoT, the Sentience Engine is a game-changing platform that is fueling the next generation of AI.
Simulations are created using NeuroSynthetica Workbench interactive graphical development environment, which is used to manage Server Sets, Models, and Deployment. The synthetic brain designer starts by creating a model using the NeuroSynthetica's SOMA™ modeling language, then directs the Workbench to compile and generate the compiled model on all the servers in the model's server set. With the simulation deployed to the servers, a NeuroSynthetica Workbench user may direct the servers in the server set to load, pause, restart, or checkpoint the simulation for restart at a later time. The servers in the server set may be configured to run a specified simulation immediately upon startup, supporting embedded sentient applications. Servers can host any number of checkpointed simulations, but may only run one simulation at a time.
Neurons are represented as Nodes, and each node in a simulation occupies a unique coordinate (x,y,z) in the 3D model space. Nodes have a base class, which is used to prescribe their behavior in a running simulation, including their dynamic simulation parameters, (i.e., PSP threshold, AP amplitude, and PSP pump rate).
Nodes may have links to other (efferent) nodes. Each link is characterized by a signal class specifying the signal to be transmitted to the link's efferent node, and a link strength, specifying the link's attenuation or amplification of the afferent node's action potential before reaching the efferent's receptors.
Node classes may specify any number of defined receptor classes as inputs, so that when a signal is transmitted to the node, it is processed by the node's receptors. Those receptors responsive to the signal are activated, and their dynamic simulation parameters determine how the node is affected.
Receptor classes specify which signals can activate the receptor, an action to be performed when the receptor is signaled, a Signal Conditioning Function (SCF) which processes the incoming signal, and how the receptor is triggered by the signal.
Up to 254 unique signals may be defined in the model to represent neurotransmitters. One predefined signal is driven by the Stimulator, a Homeostatic Regulation mechanism that stochastically selects nodes to be stimulated.
All servers in the simulation's server set operate using the same Epoch timebase, so that the simulation adapts to the environment with a stable simulation speed. Within each epoch, activated nodes are processed and their activated efferent nodes scheduled for delivery of action potentials on the following epoch. The epoch timebase is configurable down to 1ms, allowing it to operate at the same timing scale as biological brains. The epoch timebase may be increased to longer time intervals, up to 1000ms (one second), allowing the simulation to engage environments that do not operate at the speed of natural brain biology. For example, a simulation might be run at 10ms, increasing capacity at some cost in temporal fidelity. At 100ms or even 1000ms, a model might engage a virtual world, such as the Internet's webscape, seismic, weather or financial market data.
The server implements configurable Plasticity algorithms, configurable on a node class basis. Industry-standard Spike Timing Dependent Plasticity (STDP) and Synaptic Scaling are supported.
STDP automatically adjust link strengths based on spiking patterns between afferent and efferent nodes, and its frequency of operation is a configurable simulation parameter.
Synaptic Scaling levels all of a node's efferent links closer to a common baseline, so that STDP does not drive link strengths to maximum values. Its effect strength and frequency of operation are both configurable simulation parameters.
Homeostatic Regulation Mechanisms
The server implements configurable Homeostatic Regulation algorithms, with some configurable appropriately on a node class basis.
The Stimulator up-regulates the overall volume of excited nodes per epoch by stochastically selecting candidate nodes for unplanned stimulation, sending them a predefined signal that may be included in receptor class definitions so that nodes employing those receptors are stimulated by the Stimulator. The strength and frequency of stochastic node stimulation are configurable simulation parameters.
Pump Inhibition up-regulates the overall volume of excited nodes per epoch by inhibiting the PSP pump, which drains the PSP of all nodes over time. This effect causes the PSP to drain more slowly, which allows nodes have a PSP closer to their PSP Activation Threshold, and more likely to generate an Action Potential. The strength and frequency of pump inhibition are configurable simulation parameters.
IPSP Attenuation up-regulates the overall volume of excited nodes per epoch by stochastically attenuating the magnitude of signals which cause a receptor to produce an IPSP (Inhibitory PSP) action at the efferent node. The strength and frequency of IPSP attenuation are configurable simulation parameters.
The AP Stochastic Gate down-regulates the overall volume of excited nodes per epoch by stochastically denying the processing of an efferent node selected by the server to schedule an action potential. The strength and frequency of the AP stochastic gate are configurable simulation parameters.
The Energy Reservoir down-regulates the overall volume of excited nodes per epoch by keeping an accounting of overall energy used to perform action potentials on the server, with a cost of each action potential reducing the running simulation's overall energy reservoir level, and the passage of epochs (time) increasing the overall energey reservoir level. The strength and frequency of the energy reservoir mechanism are configurable simulation parameters.
As a part of its generated simulation, a server may make available Input Channels accessible to robot clients through network protocol. Input channels are mapped to nodes in the model space, and may be scalar, one-dimensional (linear), two-dimensional (surfaces), or three-dimensional (volumes). Robots enumerate a simulation's input channels and after going through an authentication process, connect with the input channels they serve, allowing them to send sensory data captured from the environment to the running simulation, causing the correct nodes to be stimulated. A scalar channel might be used to sense ambient light or indicate a battery-low condition. A channel mapped to a linear array might represent spectral audio from a DFT run on microphone data. A channel mapped to a two-dimensional surface might represent a moving image from a camera. A channel mapped to a three-dimensional image might represent tactile sensory data within the physical body of the robot.
Servers make Output Channels accessible to robot clients as well. Outputs are mapped to nodes in the model space, and may also be scalar, one-, two-, or three-dimensional. Robots enumerate a simulations's output channels and after going through their authentication process, can connect with the output channels they serve, allowing them to receive notifications from the server when the output channels they are monitoring are stimulated. A scalar channel might be used to move an actuator or flex an appendage. Three scalar channels might be used to form a vocal tract with volume, fundamental pitch, and mouth resonance levels defined by each channel.
Sentience Engine software is easily installed on any Linux distribution running on an x64-based PC host. The software, packaged as a single executable image, can be run as a user application either from the bash command line, or automatically on system boot as a Linux service for headless embedded operation. A quick installation step involves running the "server --INSTALL" command once, to set up the default path to its database of supported simulations and user authorization database. The server's use of system resources, such as RAM and CPUs, as well as default operation such as the epoch timebase, is configurable with command line switches at the time the server is run.
All clients, including users accessing the server via NeuroSynthetica Workbench, as well as robots accessing the server through environmental I/O channels, must authenticate with the server using usernames and passwords, which are sent as SHA3-256 digests for protection. The authorized users and passwords are established with the NeuroSynthetica UADMIN administration tool, which is executed from the Linux command line in user mode, via SSH on headless servers.
- Configurable Nodal Parameters - Activation Function, Action Potential Type, Supported Receptor Classes, Generated Signal Class, PSP Activation Threshold, Maximum PSP Value, Plasticity Wait Period, STDP Temporal Distance, PSP Pump Rate, AP Amplitude, Epochs Between Action Potentials (fixed rate), Minimum and Maximum Action Potential Delay (variable rate), and Action Potential Refractory Time.
- Action Potential Types - Analog, Fixed Interval Spiking, and Rate-Based Spiking.
- Nodal Activation Functions - Identity, Scaled, Exponential, Sine, Random, and Alternate Node.
- Configurable Receptor Parameters - Activating Signals, Activated Action, Signal Conditioning Function (SCF), Receptor Signal Type.
- Receptor Action Types - EPSP (excitatory), IPSP (inhibitory).
- Receptor Signal Conditioning Functions (SCF) - Identity, Constant, Linear, Quadratic, Exponential, Sine.
- Receptor Signal Type - Signal Amplitude, Signal Rate.
- User-Level Security - All network requests from robots and control consoles are validated with user-level security based on SHA3-256 digests. The system administrator may add, remove, or edit authorized users and define their capabilities/permissions with the UADMIN tool.
- UDP/IP Networking - For lowest-latency, best-effort delivery (retransmits would be more harmful than dropping a packet). Supports Ethernet, 802.11, and scales to any networking hardware supported by the Linux host, including Infiniband to go to speeds beyond gigabit Ethernet.
- Multiprocessing - Up to 255 CPU cores per host may be dedicated to the server with a command line option, to increase simulation capacity and enable higher temporal resolutions.
- Linux Clusters - Up to 255 Linux hosts may be configured to be a part of a server set, distributing a simulation's workload across servers to increase capacity and performance.
Architectural Model Limits
- Node Classes: 254
- Receptor Classes: 254
- Signal Classes: 254
- Simulation 3D Model Space: 65,536 x 65,536 x 65,536
- Node Capacity: 248 (~280 trillion nodes)
- Efferent Links/Node: 211-213 (2048-8192 links)
- Environmental Inputs: 256 channels
- Environmental Outputs: 256 channels
- Simultaneous Sessions: 256 users
- Simulations Per Server: Unlimited
- Simulation Connections: 64 robots and Workbench clients
- Authorized Users: No limit
- Processor Type: 64-bit X64
- Processor Cores: 1-255
- Usable RAM: 1GB - 1TB
- File Storage: 1GB - 1PB (1,000TB)
- Network: UDP/IP over Ethernet, 802.11, Infiniband
- Linux Distribution: Any
Simulator Configuration and Execution
- User Security Administration: UADMIN command line tool
- Installation: "--INSTALL" command line switch
- Epoch Timebase: Command line parameter (1ms-1000ms)
- Autoloaded Simulation Name: Command line switch
- Interactive Execution: Linux Command Line
- Embedded Execution: Linux Service