Skip to main content

Modular brain-inspired cognitive augmentation layers for neural networks

Project description

Cognitive Augmentation Layers (cognitive_aug)

Modular, brain-inspired cognitive augmentation layers for neural networks, built atop PyTorch.

This library provides plug-and-play components to endow existing deep learning architectures with biologically inspired capabilities, starting with Global Workspace Theory (GWT) mechanisms for attention, integration, and broad dynamic routing.


Features (Phase v0.1 MVP)

  • Module Registry: Track and coordinate active neural networks acting as specialized cognitive modules.
  • Data Flow Manager: High-performance, framework-integrated routing of latent representations across dynamic computation cycles.
  • Global Workspace Theory (GWT) Layer:
    • Configurable single-slot (high biological fidelity) and multi-slot (engineering focus) workspace bottleneck.
    • Pluggable AttentionSelector supporting Top-Down Key-Query matching and Bottom-Up salience selection.
    • Dynamic Ignition: Non-linear, threshold-gated attentional selection where only highly active features are broadcast.
    • BroadcastEngine that distributes unified cognitive states back to all modules as context.
  • Non-Intrusive Wrappers: ModuleAdapter wraps standard PyTorch nn.Modules using forward/backward hooks without polluting or altering original model classes.

Installation

To install in editable mode with development dependencies:

pip install -e ".[dev]"

Quickstart Example

Here is a simple example showing how to register an image classification module and a text processing module, enabling them to communicate via a shared Global Workspace:

import torch
import torch.nn as nn
from cognitive_aug import CognitiveAugEngine, GlobalWorkspace, ModuleAdapter

# 1. Define your standard PyTorch modules
class VisualModule(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv = nn.Conv2d(3, 16, 3, padding=1)
        self.fc = nn.Linear(16 * 8 * 8, 256)
    def forward(self, x):
        features = torch.relu(self.conv(x))
        features = features.view(features.size(0), -1)
        return self.fc(features)

class TextModule(nn.Module):
    def __init__(self):
        super().__init__()
        self.emb = nn.Embedding(1000, 64)
        self.lstm = nn.LSTM(64, 128, batch_first=True)
        self.fc = nn.Linear(128, 256)
    def forward(self, x):
        emb = self.emb(x)
        out, _ = self.lstm(emb)
        return self.fc(out[:, -1, :])

# 2. Instantiate modules
vis_mod = VisualModule()
txt_mod = TextModule()

# 3. Create the Cognitive Engine and Register Modules
engine = CognitiveAugEngine()

# Register modules with their latent dimensions (must match workspace target or be mapped)
vis_adapter = engine.register_module(
    name="vision",
    module=vis_mod,
    latent_dim=256
)

txt_adapter = engine.register_module(
    name="text",
    module=txt_mod,
    latent_dim=256
)

# 4. Instantiate Global Workspace
workspace = GlobalWorkspace(
    latent_dim=256,
    attention_type="key-query",
    ignition_threshold=0.5,
    workspace_slots=1  # Biological single-slot GWT bottleneck
)

# Attach workspace to the engine
engine.attach_workspace(workspace)

# 5. Run standard forward propagation
# Adapters will automatically capture latent representations via PyTorch forward hooks!
dummy_img = torch.randn(4, 3, 8, 8)
dummy_txt = torch.randint(0, 1000, (4, 10))

# Forward pass as usual
vis_out = vis_mod(dummy_img)
txt_out = txt_mod(dummy_txt)

# Perform GWT cycle: Selection & Global Broadcast!
workspace_state = engine.step()

print("Global Workspace broadcast vector shape:", workspace_state.shape)

License

This project is licensed under the MIT License - see the LICENSE details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cognitive_aug-0.1.0.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cognitive_aug-0.1.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file cognitive_aug-0.1.0.tar.gz.

File metadata

  • Download URL: cognitive_aug-0.1.0.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for cognitive_aug-0.1.0.tar.gz
Algorithm Hash digest
SHA256 95ab795ce52c2c357b938253ceb22e2bcf0f6e4dd2f8fb4c0c108bf115c6dde4
MD5 4d2f2539f7bf58d068a3ddbb59b5166e
BLAKE2b-256 3ea3f51371d76ffcf9e88b5693c078b49d36204c3b51ad2a55345630c8039619

See more details on using hashes here.

File details

Details for the file cognitive_aug-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: cognitive_aug-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for cognitive_aug-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 12645cc5e8d764f4e54e4c5e68a19f1889b810aed8b3a6918f5fe958f7b5288d
MD5 848847345b0f2146c346c533ad5b87cc
BLAKE2b-256 9f35cb9a5e96f4e54b6f502df9d1691bb22710399ecb71266a7bd798ebe3f10f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page