← voidwest    ember

road to Ember 1.0

technical blog series · drafts in progress · 2026-08-04
Ember GGUF CPU inference reproducibility interpretability

building an inference engine that gets faster without becoming harder to trust. Ember is a CPU-first Rust research layer for hidden-state extraction, causal intervention, and reproducible experiments over GGUF models. it has its own inference path, not to beat llama.cpp at throughput, but because a model that runs is not the same as a model you can inspect, patch, and verify. this series follows that path release by release, failures included.

The validation ladder: smoke, golden logits, activation-reference checks, probes, interventions, each rung is a different claim The validation ladder (light theme)
the validation ladder, each rung is a different claim, and the series never slides between them (docs/validation.md).

the release arc

releasedatewhat it addedone-line thesis
v0.1.02026-07-31GGUF loading, CPU prefill/decode, KV cache, tracing, hidden-state extraction, deterministic benchmarkinginference made legible enough for model-internals research
v0.2.0 (retroactive tag)impl. 2026-08-01activation capture, intervention hooks, activation replacement, patching between runs, exact restoration, structured artifactsfrom descriptive observation to causal experiments
v0.3.02026-08-03native Q4_K/Q6_K execution, packed mmap-resident weights, scalar + AVX2 kernels, external parityquantized on disk, quantized in memory
v0.4.02026-08-04immutable execution plans, scratch arenas, frozen fusion set with hook-driven de-fusion, column-parallel matvecplan the token once; keep every hook observable
v0.5.12026-08-04ember.experiment.v1 specs, byte-exact token selection, semantic hooks, deterministic bundles, offline verificationreproducibility as a runtime feature

the posts

part 0, why build another inference engine?
why llama.cpp stays the reference, and what an independent inspectable path is for.
part 1, v0.1: an inference engine that can explain what it did.
a hidden-state dump is not useful unless its exact origin is known.
part 2, v0.2: capturing, patching, and restoring hidden states.
from observation to intervention, bit-exactly.
part 3, v0.3: quantized on disk, quantized in memory.
6.99 GB → 0.84 GB by not undoing the model's compression.
part 4, v0.4: plan-driven decode without sacrificing hooks.
2.0–2.7× reference decode, and the benchmark failures that almost hid it.
part 5, v0.5: from inference engine to research workflow.
reproducibility as an artifact format, a verification procedure, and a fail-closed contract.
part 6, the null result that produced a better tool.
a falsified hypothesis and the causal-localization toolchain it forced into existence, reproduced, harness drift documented.
part 7, what Ember 1.0 has to earn.
1.0 means other researchers can safely build on the public contracts.

start with part 0, and if you run model-internals experiments, part 5 shows a workflow you can run today without writing Rust. each post is self-contained and cites the repository artifacts behind its claims, including the ones that failed.

series planning package and evidence: docs/road-to-1.0-plan.html and the per-part evidence files under artifacts/benchmark-v0*/ in the ember repository.