byte-level
Vocabulary of 256 bytes. No BPE and no tokenizer tax on Russian, code, or anything the tokenizer never saw in training.
A byte-level Mixture-of-Experts language model, trained end to end on one consumer GPU.
$ dormouse train medium --set seq_len=1024 --set moe_capacity=0 step=60000 loss=1.2130 bpb=1.936 40.9k tok/s $ dormouse serve --ckpt-name sft11 --port 3783 ready — one RTX 5060 Ti 16GB, $429
The frontier publishes its recipes and not its compute. This project asks the narrower question: take the same ideas — linear attention, sparse experts, memory outside the weights, low-rank factors, bytes instead of tokens — and point them at one $429 GPU. How far do they actually go?
The framework is the instrument; the model is the reading. Every number on this page was taken on this box, at a named config and commit, and a mechanism that fails its A/B is recorded as a failure rather than deleted quietly.
Vocabulary of 256 bytes. No BPE and no tokenizer tax on Russian, code, or anything the tokenizer never saw in training.
Kimi-style chunked gated delta rule. O(n) context and a fixed 256 KB recurrent state at any context length — there is no KV cache to blow up.
1024 experts, top-k 2, no capacity drops: every token keeps every expert it routed to.
Every expert is U·diag(s)·Vᵀ at rank 64. That factorization is what lets a 1.07B-parameter model fit, train and ship on 16 GB.
402M hash-table parameters that live in host RAM, outside the compute graph.
Every page of the docs is generated at build time from the file that already lives in the repository — no second copy of any fact. A number is published with the config, the date and the commit it was taken at, and a claim that was taken back stays published next to the one that replaced it.
Three pages of the knowledge base, loaded in place by htmx from the same static build — no second copy of any fact, no reload. Without JavaScript the same links navigate normally.
Pick a page — it loads here from the same build. Full navigation still works: each is a real link.
uv sync # CPU environment; the tests run here uv run pytest # 968 tests, ruff clean uv run dormouse train medium --data corpus.bin --eval held.bin --device cuda \ --steps 60000 --batch 24 --set seq_len=1024 --set moe_capacity=0 uv run dormouse serve --out-dir checkpoints/sft --ckpt-name sft11 --port 3783
Requires uv and Python 3.12 — the full list of commands.