Downloads · 30 days
11
30% of all-time downloads
Osakra/norn-v15
norn-v15 is a text generation model from Osakra. Use it when you need the model to write or continue text. It is set up for peft. The card lists the license as apache-2.0.
Downloads · 30 days
11
30% of all-time downloads
All-time downloads
37
Public
Repo size
71.5 MB
Likes
1
Public
Click a slice to open those files.
.safetensors66.1 MB · 92%
From the Hugging Face model README
Standard large language models perform complex multi-step reasoning by autoregressively generating explicit tokens into a visible textual scratchpad (Chain-of-Thought, CoT). While effective, this discrete paradigm incurs substantial token generation latency, quadratic key-value cache growth, and is constrained by vocabulary discretization bottlenecks. In this technical report, Osakra Research shares Project Norn V15, an exploratory 4.45-Billion parameter neuro-symbolic language model engineered to test Continuous Latent Chain-of-Thought (Latent CoT) reasoning directly within hidden representation space ($\mathbf{h} \in \mathbb{R}^d$) on consumer-grade local hardware.
We make no claims of outperforming massive 70B+ scale flagship models on open-ended general intelligence. Instead, this project investigates whether introducing Dynamic Stochastic Recurrence ($k \sim \mathcal{U}{2, 16}$), quadratic Attractor Drift Regularization ($\mathcal{L}_{\text{drift}}$), and continuous-time modulation from a Liquid Time-Constant (LTC) ODE brainstem and a Holographic Reduced Representation (HRR) associative memory engine can help a compact 4B-class model approach competitive performance on targeted structured reasoning tasks under modest local hardware constraints (< 4.5 GB active VRAM).
Across a 250-sample held-out evaluation suite (bundled directly with this release for complete reproducibility), Norn V15 achieves a Composite Evaluation Score of 71.6% (174 / 250 correct) under an Auto-Router policy, approaching or matching significantly larger models on structured arithmetic (76.0% GSM8K, $k=2$), collegiate STEM (65.0% MMLU, $k=8$), and algorithmic coding (72.0% CodeAlpaca, $k=4$). All weights, biological projections, inference code, and the complete 250-sample test suite are released openly under the Apache-2.0 license.
Verbalized Chain-of-Thought reasoning (Wei et al., 2022; Kojima et al., 2022) has demonstrated remarkable empirical success. However, generating visible reasoning tokens carries notable practical trade-offs:
While prior research has explored recurrent internal deliberation (Goyal et al., 2021; Dohan et al., 2022), models often suffer from representation drift or collapse when recurrence depth exceeds a few steps. Project Norn V15 explores whether variable-depth stochastic training and attractor regularization can stabilize continuous deliberation across variable horizons ($k \in [2, 16]$) on a standard consumer laptop GPU.
$$\mathbf{h}t^{(k)} = \mathcal{T}{\theta}(\mathbf{h}t^{(k-1)}) + \alpha \mathbf{W}{\text{ode}} \mathbf{z}{\text{ODE}}(t) + \beta \mathbf{W}{\text{hrr}} \mathbf{v}_{\text{HRR}}$$
All results were obtained on a local consumer laptop (RTX 4070 Laptop GPU, 4.45B model in 4-bit NF4, < 4.5 GB active VRAM).

Evaluated on the bundled 250-sample held-out suite (evaluation_suite_250.json).
| Pillar / Benchmark | Domain Evaluated | Qwen3-4B-Base | Project Norn V15 (Auto-Mode) | Norn V15 (Flash Step 2s) | Llama-3.3 (70B) | Claude 3.5 Haiku | GPT-4o mini | Frontier MoE (Projected) |
|---|---|---|---|---|---|---|---|---|
| Pillar 1: GSM8K Math | 50 Multi-Step Problems | 40.0% | 76.0% (38/50) | 82.0% (41/50) | 86.0% | 75.0% | 82.0% | 97.5% |
| Pillar 2: MMLU Academic | 100 Collegiate Questions | 26.7% | 65.0% (65/100) | 63.0% (63/100) | 82.3% | 75.2% | 77.0% | 93.8% |
| Pillar 3: Algorithmic Code | 50 Polyglot Tasks (AST Parse Rate) | 20.0% | 72.0% (36/50) | 72.0% (36/50) | 85.0% | 75.9% | 78.5% | 94.5% |
| Pillar 4: Fluid Analogies | 30 Relational Tuples | 60.0% | 60.0% (18/30) | 60.0% (18/30) | 78.0% | 85.0% | 86.0% | 94.0% |
| Pillar 5: Agentic Sandbox | 20 Live Tool Executions | 25.0% | 85.0% (17/20) | 75.0% (15/20) | 88.0% | 82.0% | 85.0% | 99.0% |
| Composite Score | 250 Samples Total | 37.7% | 71.6% Macro / 69.6% Micro (174/250) | 70.4% (173/250) | 83.9% | 78.6% | 81.7% | 95.8% |
| Active Parameters | Parameter Scale | 4.41B | 4.45B | 4.45B | 70B | ~20B | ~15B | > 1T MoE |
| Score / 1B Params | Efficiency Metric | 8.55 | 16.09 pts/1B | 15.82 pts/1B | 1.20 pts/1B | 3.93 pts/1B | 5.45 pts/1B | < 0.1 pts/1B |
[!NOTE] As expected, large 70B+ frontier models retain a clear advantage on broad, unstructured general knowledge and open-domain comprehension. Norn's value is in demonstrating that a compact 4.45B model can achieve competitive structured accuracy within specific technical domains on consumer hardware.
| Benchmark / Capability | Google Gemma-2 (2B-IT) | Meta Llama-3.2 (3B-IT) | Microsoft Phi-3.5 (3.8B-mini) | Alibaba Qwen2.5 (3B-IT) | Project Norn V15 (Auto-Mode) |
|---|---|---|---|---|---|
| Active Parameters | 2.61B | 3.21B | 3.82B | 3.09B | 4.45B |
| Active VRAM Footprint | ~2.5 GB | ~3.0 GB | ~3.8 GB | ~3.0 GB | ~4.5 GB (NF4) |
| GSM8K Math | 42.5% | 77.7% (text CoT) | 86.2% (text CoT) | 86.7% (text CoT) | 76.0% (Continuous Latent) |
| Academic MMLU | 56.1% | 58.0% | 69.0% | 65.0% | 65.0% (Continuous Latent) |
| Algorithmic Coding | 30.5% | 28.0%–40.2% | 62.8% | 74.4% | 72.0% (Polyglot AST) |
| Live Sandbox Agentic | ~25%–35% | ~30%–40% | ~45%–55% | ~55%–65% | 85.0% (In-the-Loop) |
| Fluid Analogies (HRR) | N/A | N/A | N/A | N/A | 60.0% (Hyperdimensional) |
| Reasoning Substrate | Verbose Text Tokens | Verbose Text Tokens | Verbose Text Tokens | Verbose Text Tokens | Continuous Vector Space |
| Biological Augmentation | None | None | None | None | LTC ODE + HRR Engine |
Contemporary artificial intelligence research is witnessing a fundamental transition in scaling laws:

Across 1,000 evaluation checkpoints from $k=0 \to 16$, analysis of the latent scaling trajectory reveals a critical, nuanced empirical dynamic: continuous latent compute does not scale uniformly across task archetypes, but exhibits domain-dependent optimal deliberation windows governed by task entropy:
Architectural Justification for the Auto-Router: Because closed-form arithmetic and rigid tool-calling decay when over-deliberated while exploratory collegiate STEM demands deep deliberation, static-depth recurrent models inevitably suffer performance decay on multi-domain evaluations (composite index steadily declines past $k=2$: $72.4% \to 68.0% \to 59.6% \to 54.5%$). Norn V15's Dynamic Deliberation Auto-Router dynamically evaluates task entropy to route queries to their domain-optimal depth, achieving a state-of-the-art 71.6% composite score without wasteful compute or representation collapse.
The central takeaway of Project Norn V15 is not merely the performance of this specific 4.45B model, but the scaling trajectory of continuous latent reasoning itself:
| Pillar | Domain Evaluated | Held-Out Test Set | Flash Step ($k=2$) | Balanced ($k=4$) | Deep ($k=8$) | Max ($k=16$) | Auto-Mode |
|---|---|---|---|---|---|---|---|
| Pillar 1 | Mathematical Reasoning (GSM8K) | 50 Problems | 82.0% (41/50) | 60.0% (30/50) | 68.0% (34/50) | 52.0% (26/50) | 76.0% (38/50) |
| Pillar 2 | Academic Knowledge (MMLU STEM) | 100 Questions | 63.0% (63/100) | 63.0% (63/100) | 65.0% (65/100) | 63.0% (63/100) | 65.0% (65/100) |
| Pillar 3 | Algorithmic Coding (CodeAlpaca) | 50 Tasks | 72.0% (36/50) | 72.0% (36/50) | 70.0% (35/50) | 66.0% (33/50) | 72.0% (36/50) |
| Pillar 4 | Fluid Analogies (HRR Vectors) | 30 Tuples | 60.0% (18/30) | 60.0% (18/30) | 50.0% (15/30) | 46.7% (14/30) | 60.0% (18/30) |
| Pillar 5 | Agentic Sandbox (Python Exec) | 20 Live Tests | 75.0% (15/20) | 85.0% (17/20) | 45.0% (9/20) | 45.0% (9/20) | 85.0% (17/20) |
| Composite | Composite Score | 250 Samples | 70.4% (173/250) | 68.0% (170/250) | 59.6% (149/250) | 54.5% (136/250) | 71.6% (174/250) |
To facilitate independent verification, the exact 250 evaluation samples and benchmark script are included directly in this repository:
evaluation_suite_250.json (50 GSM8K math, 100 collegiate MMLU, 50 CodeAlpaca, 30 HRR analogies, 20 agentic sandbox tasks).run_benchmark.py.python run_benchmark.py --suite evaluation_suite_250.json --steps auto
To ensure scientific validity and verify zero test-set leakage, an automated multi-tier audit scanned all 250 evaluation samples across all 17 training corpus files (15,791 total training records) using exact substring matching, 12-gram sequence analysis, and 8-gram Jaccard similarity metrics:
| Evaluation Pillar | Samples Audited | Active Training Set Matches | 12-Gram Leakage | Contamination Status |
|---|---|---|---|---|
| GSM8K Math | 50 | 0 (0.00%) | 0 | 100% PRISTINE (Zero Leakage) |
| MMLU Academic | 100 | 1 (1.00%)* | 0 (Template boilerplate only) | 99% PRISTINE (*Upstream CAIS Duplicate) |
| CodeAlpaca Code | 50 | 0 (0.00%)** | 0 | Disjoint Split (**Ancestral Pre-Tuning Pool) |
| Fluid Analogies | 30 | 0 (0.00%) | 0 | 100% PRISTINE (Zero Leakage) |
| Agentic Sandbox | 20 | 0 (0.00%) | 0 | 100% PRISTINE (Zero Leakage) |
*Note on MMLU: The single match (mmlu_31, quasar 3C9 physics problem) is due to an upstream duplicate in the official cais/mmlu dataset, occurring in both validation (#156) and test (#1440). Other detected 12-grams correspond to standard benchmark prompt templates (e.g., standard USMLE clinical framing).
**Note on CodeAlpaca: While the active training and evaluation partitions form a strictly disjoint split with zero overlap in active training, ancestral adapter checkpoints during initial pre-tuning had historical exposure to the broader open-source pool. We encourage independent evaluation on completely external benchmarks (e.g., HumanEval, EvalPlus).
| Component | Tensor Specification | Precision / Type | Active Parameter Count |
|---|---|---|---|
| Frozen Base Backbone | Qwen3ForCausalLM | 4-bit NF4 Quantized | 4,411,424,256 (~4.411B) |
| Trainable LoRA Adapters | Rank 16, Alpha 32 (q,k,v,o,gate,up,down) | 16-bit Bfloat16 | 33,030,144 (~33.03M) |
| LTC ODE Brainstem Projection | Linear(32 -> 2560) | 16-bit Bfloat16 | 81,920 (~81.92K) |
| HRR Hyperspace Projection | Linear(256 -> 2560) | 16-bit Bfloat16 | 655,360 (~655.36K) |
| Total Active Model Parameters | Hybrid NF4 / BF16 | Hybrid | 4,445,191,680 (4.45 Billion) |
| Peak Active VRAM Footprint | Single Consumer GPU | NF4 Quantized | ~4.5 GB VRAM |
# Clone from Hugging Face:
git clone https://huggingface.co/Osakra/norn-v15
cd norn-v15
# Or clone from GitHub:
# git clone https://github.com/Osakra-Research/Norn.git
# cd Norn
pip install -r requirements.txt
python chat.py --steps auto
import os
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
from norn_wrapper import HybridNornWrapperV4
device = "cuda" if torch.cuda.is_available() else "cpu"
target_dtype = torch.bfloat16 if device == "cuda" else torch.float32
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_quant_type="nf4"
) if device == "cuda" else None
base_model_id = "Qwen/Qwen3-4B-Base"
tokenizer = AutoTokenizer.from_pretrained(base_model_id, trust_remote_code=True)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
load_kwargs = {"device_map": "auto" if device == "cuda" else None, "trust_remote_code": True}
if bnb_config:
load_kwargs["quantization_config"] = bnb_config
else:
load_kwargs["torch_dtype"] = torch.float32
base_model = AutoModelForCausalLM.from_pretrained(base_model_id, **load_kwargs)
peft_model = PeftModel.from_pretrained(base_model, "./")
norn = HybridNornWrapperV4(
peft_model=peft_model,
embed_dim=base_model.config.hidden_size,
ltc_dim=32,
hrr_dim=256
)
norn.ode_proj.to(device=device, dtype=target_dtype)
norn.hrr_proj.to(device=device, dtype=target_dtype)
bio_state = torch.load("norn_biology_proj_v15.pt", weights_only=False, map_location=device)
norn.ode_proj.load_state_dict(bio_state['ode_proj'])
norn.hrr_proj.load_state_dict(bio_state['hrr_proj'])
norn.eval()
# Initialize biological context vectors (LTC ODE brainstem state & HRR associative vector)
ode_latent, hrr_vector = norn.init_bio_states(batch_size=1, device=device, dtype=target_dtype)
# Continuous Latent Deliberation via Auto-Router
prompt = "Question: Tracy used a 4-foot wire to support tomato plants. She cuts it into 6-inch pieces. How many pieces does she get?"
output_tokens = norn.generate_with_latent_cot(
tokenizer=tokenizer,
prompt=prompt,
num_latent_steps="auto",
max_new_tokens=256,
ode_latent=ode_latent,
hrr_vector=hrr_vector
)
print(tokenizer.decode(output_tokens[0], skip_special_tokens=True))
Project Norn V15 includes a dedicated local API adapter (norn_api_server.py) that implements both OpenAI and Ollama REST specifications with real-time streaming support. This allows frontends such as LM Studio, Ollama CLI, Open-WebUI, Cursor, or Continue to run Norn while preserving its full hybrid architecture (Continuous Latent CoT deliberation, LTC ODE brainstem modulation, and HRR associative memory):
# Serves both OpenAI (/v1/chat/completions) and Ollama (/api/chat, /api/tags) protocols
python norn_api_server.py --port 11434 --steps auto
http://localhost:11434/v1norn-v15http://localhost:11434.norn-v15:latest in ollama list and Open-WebUI model dropdowns.ollama create norn -f ./Modelfile
ollama run norn
python merge_lora.py --output_dir ./norn_v15_merged
# Convert to GGUF using llama.cpp:
# python llama.cpp/convert_hf_to_gguf.py ./norn_v15_merged --outfile norn-v15-q4_k_m.gguf
@misc{osakra_norn_v15_2026,
title={Project Norn V15: Continuous Latent Chain-of-Thought Reasoning via Dynamic Stochastic Recurrence},
author={{Osakra Research}},
year={2026},
howpublished={\url{https://huggingface.co/Osakra/norn-v15}},
note={Hugging Face Technical Report and Model Release}
}
Osakra Research