About

What is PorchLM?

“A porch light is small, not very bright, and left on so someone can find the door. That’s about the right expectation to have for this model.”

PorchLM is a small Llama-architecture language model. It trains from scratch on a free Colab GPU, and runs entirely on your own machine — in LM Studio, Ollama, llama.cpp, or a single HTML file with no server. It isn’t built for work or coding, and it isn’t trying to compete with large commercial models.

There’s no synthetic data generator here — the training notebook is pointed at real text, and that text is what the model learns. The default corpus is public-domain books (Wealth of Nations, Plato, Emerson, Aristotle, Pride & Prejudice), which is why its voice can lean old-fashioned. Swap in different text and its voice changes with it.

None of this is a side project dressed up to look bigger than it is. It’s a small, complete pipeline — data in, model out — and we’d rather ship that slowly and honestly than rush something bigger and vaguer. Progress here will keep showing up as measured numbers, not promises.

Actually small
~6 MB quantized. It fits in RAM on anything, loads instantly, and runs on a CPU without complaint.
Actually yours
Bring your own text; the notebook trains on it and exports a standard GGUF. No API keys, no accounts, no telemetry, no network at inference.
Actually honest
It ships with the metrics that show its limits, including a documented experiment where our own optimization idea made things worse.
Built to be verified

Small doesn’t mean unrigorous. Three things we check and publish, rather than assume:

It's a real GGUF, not a lookalike
The export writes the GGUF binary format from scratch, with the exact tensor names and RoPE variant llama.cpp expects — no conversion step. It has been checked against the official GGUF reader, and its compute graph was independently re-implemented in NumPy from the file alone; the logits matched PyTorch to about 1e-6.
Honest metrics on the training data
Before training starts, the notebook prints three numbers about the corpus — unique-line percentage, vocabulary size, and novel 5-gram percentage — and flags each ok or LOW. That check exists because an earlier version's synthetic data generator scored a 571-word vocabulary while producing unlimited text. Volume isn't variety.
Negative results, published anyway
A logged experiment found that freezing layers during fine-tuning made catastrophic forgetting worse, not better — prose drift of +0.275 frozen versus +0.182 unfrozen, with a full replay-and-fine-tune approach performing best at −0.063. Most projects wouldn’t show you that table. This one does.
Disclaimer

PorchLM is a small language model built as an educational project. It runs locally, has no internet access, no knowledge of current events, and no memory between conversations. It will sometimes produce fluent text that is completely wrong — don’t rely on it for anything that matters.

Download PorchLM →