One person · No team · No cluster

I train language models
from random noise.

UltraLabs is a solo AI lab. Not prompt engineering, not fine-tuning someone else's checkpoint — every parameter in these models started as static and got there through a tokenizer, a data pipeline, and a training run I wrote myself. 21 of them are public on Hugging Face. Some run entirely offline on a phone.

21Public models
707MLargest from scratch
22.4BPretraining tokens
$195Total compute cost
Flagship

AuroraGPT-700M

A 707-million-parameter language model trained from scratch for less than the price of a phone — then taught to reason and to call tools. It fits in 805 MB and runs fully offline on an Android device.

Not a fine-tune
Every weight started as noise.

Custom tokenizer, custom data mix, 22.36 B pretraining tokens, then ~2 B tokens of instruction tuning. Shipped with a full eval suite, raw transcripts, and the failures written down instead of hidden.

707MParameters
22.36BTokens seen
805MBQuantized (GGUF)
$195Cost to train
OfflineRuns on a phone
The lineup

Small models, built end to end.

From a 100-thousand-parameter character model up to a billion. Each one is a complete pipeline — tokenizer, corpus, training loop, evaluation, quantization — not a checkpoint someone handed me.

Research

Ideas I'm testing, not just models I'm shipping.

Training small models on a budget forces you to actually ask why the standard recipe is the standard recipe. These are the open questions I'm running experiments against.

🧬 MITOSIS

Instead of training a big model from step one, start with a tiny weight-tied seed and grow it during training — an exact function-preserving untie / widen / zero-glue step. Almost every token gets consumed while the model is still cheap.

Open source · Python

🌱 OsmoNet

A non-transformer architecture built around a loop — perceive, remember, reason, speak. Knowledge and voice get absorbed from outside; only a tiny reasoning core is trained. The bet: own the algorithm, rent the facts.

In progress

📉 The 2-bit ceiling

A small model physically cannot know everything — roughly 2 bits per parameter. But it can still learn anything. So stop optimizing recall and start optimizing for a small universal learner plus a big external library.

Thesis
Also built

The tools around the models.

Training a model is half of it. The other half is getting it to run somewhere real — usually a phone, usually offline, usually with no PC in the loop.

How this works

Constraints, on purpose.

01
From scratch means from scratch.

No starting from a released checkpoint. Random init, my tokenizer, my corpus, my training loop. If it can't be built from noise, it doesn't ship here.

02
Consumer hardware first.

Laptop CPUs, free-tier GPUs, and whatever compute costs under $200. Scarcity is a better teacher than a cluster — you can't hide a bad idea behind more FLOPs.

03
It has to run somewhere real.

Every serious model gets quantized to GGUF and put on an actual phone, running offline. A model that only exists in a notebook isn't finished.

04
Publish the failures too.

Eval suites, raw transcripts, and the things that broke go up with the weights. A benchmark number without the failure cases is marketing, not evidence.

05
One person, end to end.

Data, architecture, training, evaluation, quantization, and the Android app it lands in. Solo — which is the whole point.