← Projects
A terminal chat with the model: asked about a neighbour's sickened cattle, it answers that the devil is in his house and has carried away the health of the beasts; asked the best remedy for a fever, it prescribes going to bed clothed and covered until you sweat

Real output from the finished 7B, excerpted. Asked about the cattle, it names the devil before contagion; asked about the fever, it prescribes a sweat — and ends its turn.

2026AI

Porous

A language model that believes it is 1620.

Ask a modern assistant to role-play 1620 and you get the diction with today's assumptions underneath — it will say “Providence hath ordained” and then add that many would attribute it to natural causes. Porous goes the other way: it shifts what a model takes for granted, by pretraining on what that world actually printed. Named for Charles Taylor's porous self — a self open to spirits, omens, and meanings that live out in the world.

How it's built

  1. Corpus723M tokens across 11,240 texts of English print through 1660 — EEBO-TCP (hand-keyed TEI, not OCR) plus patristic and scholastic translations. Streamed XML→text extraction; mechanical orthography normalized (ſ→s, u/v), lexical spelling kept.
  2. A layman's mixEvery text tagged by genre, tradition, and register, then weighted toward a worldly gentleman's reading — 47% practical (medicine, conduct, law, travel, almanacs), 36% divinity, 17% lore — rather than a preacher's.
  3. Base model, not chat modelContinued pretraining of Qwen2.5-7B base. RLHF'd assistants carry a modern voice — hedged, pluralist — welded in too deep to fine-tune away, so the chat layer is instead built from the period's own Q&A: catechisms, cases of conscience, disputations.
  4. Measure before training66 probes score a period vs. a modern continuation of the same neutral stem (“The crops failed that year because…”). The metric is the delta-of-deltas against an untrained model, with a control that separates real learning from the model simply getting worse at English.
  5. Validate cheap, then scaleA $4.50 pilot on a 1.5B model moved the prior 80% of the way to parity on 3% of the corpus — and caught three broken probe designs before any real spend. The 7B run followed: 120M tokens on 8×H100, eval perplexity 12.8 → 9.6.
  6. Teach it to stopChat SFT on 16k examples of the period's own Q&A and colloquy — after which the model answered and then ran on into chapter headings. Two retrains at higher learning rates changed nothing, because the turn-end token had been masked out of the loss in every example: it had never once been taught to end a turn. One config line, verified on the labels for $0.12 before spending, and it ends its turn 5 of 5. The prior survived every step — −0.17 mean Δ against +1.06 untrained.
  7. Runs on a laptop4-bit GGUF through Ollama, 4.4 GB, behind a plain web chat. A three-turn exchange about the tides holds its thread, resolves “it” from two turns back, and closes with the colloquy's own formula: “and so much of the tides: now let us passe on to the next place.”
723M
corpus tokens
11,240
texts, all pre-1661
66
worldview probes
~$72
total compute

What it is, and isn't. A research artifact, not an oracle: it reconstructs the defaults of the printeddiscourse — clergy and pamphleteers, not the farmhand — and it will invent a plausible 1620 that never happened. Held faithfully, that worldview also includes the era's prejudices — unhedged, because hedging is the modern voice it was built to shed. It runs behind an email login at porous.sivori.xyz; a one-time code, no account.

Under the hood