Pythia 1.4B -- 16,750 Facts via Direct Neural Programming

This model has 16,750 facts written directly into its weights using jBlaze's Direct Neural Programming (DNP). This is a capacity stress test -- how far can a tiny 1.4B model go before it breaks?

The facts are sourced from CounterFact-Tracing (Wikidata relation types -- locations, citizenships, languages, genres, and more). The full training corpus is included in this repo as facts_maxout.json.

The Answer: It Didn't Break

Metric Baseline (0 facts) After 16,750 Facts
General Capability 60.0% 55.0%
Perplexity 13.3 18.3
Direct Recall -- 49.8%
Paraphrase Recall -- 49.3%

After absorbing 16,750 facts, the model lost only 5 percentage points of general capability and perplexity increased by just 5 points. The model still produces coherent, natural English. It still reasons. It still works.

Nearly half of all 16,750 facts are directly retrievable -- on a model with only 1.4 billion parameters. That is approximately one retrievable fact per 170,000 parameters.

For Comparison

Gradient-based training destroyed this same architecture at 50 facts (LoRA v1) or 125 facts (LoRA v2 with maximum conservative settings). DNP loaded 335x more facts than gradient training's breaking point, and the model is still functional.

Method Facts General Cap Perplexity Model Status
Gradient (LoRA v1) 50 10.0% 459.6 Dead
Gradient (LoRA v2) 125 35.0% 96.5 Dead
DNP (5,000 facts) 5,000 70.0% 13.3 Alive, improved
DNP (this model) 16,750 55.0% 18.3 Alive

Cohort Recall

Facts are loaded in batches. Earlier cohorts get partially overwritten as new facts compete for the same weight capacity. This is expected behavior -- the model has a finite number of parameters.

Cohort Recall
1-1,000 54.0%
1,001-1,500 50.0%
1,501-2,000 56.0%
2,001-2,500 60.0%
2,501-3,000 46.0%

Recall is distributed across all cohorts -- the model didn't just memorize the last batch and forget everything else. Knowledge is genuinely distributed through the weights.

See Also

Technology

Built with jBlaze -- Direct Neural Programming for large language models.

Usage

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("ApolloRaines/Pythia-1.4B-DNP-16750-Facts")
tokenizer = AutoTokenizer.from_pretrained("ApolloRaines/Pythia-1.4B-DNP-16750-Facts")
Downloads last month
326
Safetensors
Model size
1B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ApolloRaines/Pythia-1.4B-DNP-16750-Facts

Finetuned
(75)
this model

Collection including ApolloRaines/Pythia-1.4B-DNP-16750-Facts