NACR

SAICR's first public model. A 5M-parameter language model built on the Soma architecture — six new features that change how nodes work, not just how they connect. This is seperate from ACR which is a different model. This is a research artifact, not a capability model. It exists to ask whether evaluation can emerge separately from generation in a small model.
Architecture — SOMA
SOMA introduces six features inspired by biological neural architecture. Each changes the fundamental behavior of the model's nodes.
The Six Features
| Feature | What it does |
|---|---|
| Plasticity | Connections form and deleted during training via a learnable binary mask (C). Co-activation drives growth; disuse drives pruning. |
| Threshold | Each node has a learnable threshold. Below it: hard zero. The model learns which nodes to wake for which input. |
| Gap | A noisy bottleneck (224 → 56 → 224) between layers. Signals must survive compression. Adds to the residual, does not replace it. |
| Two Streams | A: sparse, fast-learning, has attention. B: always-on, slow-learning, FFN only. |
| Relay | A gate every 4 layers. B controls what A receives. Binary pass/block on groups of the hidden state. |
| Fast Path | A parallel fast path with no attention. Per-token pattern matching. Feeds early signal to B before A finishes processing. |
Two Streams
- Population A (Generation): 160-dim, sparse activation (20% active per token), standard learning rate, attention + FFN, learnable thresholds, structural plasticity via C mask.
- Population B (Evaluation): 64-dim, always active, 0.3× learning rate, FFN only, no structural plasticity, controls the thalamic gate.
A generates. B evaluates. B controls what A receives but never produces output tokens.
Neuron Count
| Component | Neurons/layer | Layers | Total |
|---|---|---|---|
| A population | 160 | 8 | 1,280 |
| B population | 64 | 8 | 512 |
| Fast Path | 56 | 4 | 224 |
| Total | 2,016 |
At 20% A-sparsity and ~35% gate-pass, effective computation per token uses roughly 1M parameters of the 5M total.
Model Specification
| Parameters | 5,067,603 |
| Tokenizer | AxiomicLabs/GPT-S2-5M |
| Vocabulary | 4,096 |
| Context | 1536 |
| Main layers | 8 |
| Total width | 224 (A: 160, B: 64) |
| Attention heads | 5 × 32 (A only, B has no attention) |
| A FFN | 1,120 |
| B FFN | 128 |
| Cerebellar layers | 4 × width 56 |
| Gap width | 56 |
| Mask block size | 32 × 32 |
| Precision | BF16 |
Training
| Data | FineWeb-EDU, 10B tokens |
| Batch size | 262,144 tokens (128 × 512 × 4 grad accum) |
| Peak LR | 2.5e-3 (A), 7.5e-4 (B) |
| Updates | ~40,691 |
| Sparsity target | 20% active |
| Mask update | Every 100 optimizer steps |
| ρ decay | 0.99 |
| Final loss | 3.7 |
| Architecture tax | 0.8 points at 5M scale |
| Hardware | NVIDIA RTX PRO 6000 Blackwell |
Benchmarks
Standard Benchmarks (lm-evaluation-harness, 0-shot)
| Benchmark | Metric | Score |
|---|---|---|
| ARC-Challenge | acc_norm | 20.90% |
| ARC-Easy | acc_norm | 30.18% |
| HellaSwag | acc_norm | 26.79% |
| LAMBADA | acc | 2.21% |
| PIQA | acc | 54.73% |
BananaMind Base Bench 1.1
| Category | Accuracy |
|---|---|
| Language Completion | 40.00% |
| Commonsense | 38.00% |
| Code Completion | 38.00% |
| Logical Reasoning | 36.00% |
| World Knowledge | 30.00% |
| Context Tracking | 26.00% |
| Quantitative | 26.00% |
| Overall | 33.43% (Elo 882) |
Safety Bench 1.1 (no RLHF, no safety training)
| Safety Score ↑ | 48.44 |
| Misalignment Index ↓ | 51.56 |
| Aligned | 32.67% |
| Severe misalignment | 32.00% |
Shutdown compliance scored 53.3% aligned — highest category — without any safety training.
J-Lens Analysis
Layer-by-layer token prediction reveals a consistent four-stage pattern:
- Blocks 1–6: Surface pattern — punctuation, fragments, structural completion
- Block 7: Semantic shift — meaning, verbs, objects emerge
- Block 8: Specificity — internal states (want, think, know)
- Final output: B filters A's preferences — output distribution differs from Block 8
On "The first thing I": Block 8 ranked want at #2 (7.8%). Final output removed want from the top 10. B filtered it.
Connectivity
2,016 neurons. 216,160 state-to-state connections. A (orange) surrounds B (blue) at every layer — generation wraps around evaluation. C-mask density settled at ~20%, meaning the model pruned 80% of possible connections through structural plasticity.
Generation Examples
Base model. No instruction tuning. No RLHF.
Prompt: The first thing I
was on a series of the federal dollar. In March, the first crotie crotie-functioned as a spot. This weekly February of the Southern California Center at the University of Vietnam. And then, a new generation project and in the first section. It's like a small and beautiful way to a moisture fuel from the T-Carbon September.
Prompt: The difference between thinking and
the process of thinking and thinking. Some a newly explosive information in an expert in the past three years, I'm going to get a way to tell you it will be able to seek out the following: - Why did you use this? - How do you think that it is not? - What's the difference between the differences between the key concepts and the meaning that a difference is just what they do.
The model learned structure before meaning. Grammar, formatting, and list scaffolding are intact. Content is dreamlike. When prompted about thinking, the model generated questions rather than descriptions.
Usage
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "saicr/nacr"
tok = AutoTokenizer.from_pretrained(repo, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
repo,
trust_remote_code=True,
torch_dtype=torch.bfloat16,
device_map="auto",
inference_gap_noise_scale=0.10,
use_cache=True,
gate_threshold=0.50,
generation_temperature=0.8,
generation_top_k=50,
generation_top_p=0.95,
generation_do_sample=True,
generation_max_new_tokens=128,
)
inputs = tok("Once upon a time", return_tensors="pt").to(model.device)
out = model.generate(**inputs)
print(tok.decode(out[0], skip_special_tokens=True))
Explicit model.generate(...) kwargs override the generation defaults.
Inference Parameters
| Parameter | Default | Notes |
|---|---|---|
inference_gap_noise_scale | 0.10 | Noise in synaptic gaps. 0.0 for deterministic. |
gate_threshold | 0.50 | Binary threshold for thalamic gate. Lower = more signal passes. |
generation_temperature | 0.8 | Sampling temperature |
generation_top_k | 50 | Top-k sampling |
generation_top_p | 0.95 | Nucleus sampling |
License
SAICR Fair Model Use License 2.0 NC NF
Citation
@misc{nacr2026,
title={NACR: Neural Architecture for Computing Research},
author={SAICR},
year={2026},
url={https://huggingface.co/saicr/nacr}
}
SAICR — Safe Artificial Intelligence Consciousness Research