Cold time to first token
>3×92.7 s~26 s
Experiment/Melasistema, Luca Visciola
Seismic Mixture of Experts
A model-agnostic inference engine for fine-grained Mixture-of-Experts LLMs on Apple Silicon. It streams experts from NVMe, so the model never has to fit in RAM. A 235B runs from 32 GB up.
01/The Monolithic Delusion
To run a frontier model, the industry insists you must hold the entire mathematical mountain in RAM at once. For Qwen3-235B that is 235 billion parameters, about 470 GB at bfloat16. Rent the cloud, or buy a workstation that costs more than a car.
But in a Mixture of Experts, 95% of the model is silent at any given millisecond. Only a handful of experts fire for each word. The rest is cold stone, and standard runtimes keep all of it in memory anyway. Just in case.
What if we only load what fires, and load it before it fires?
02/The Phonon Metaphor
In 2022, Ing. Filippo Biondi published a way to image the interior of the Great Pyramid of Giza from orbit. Radar cannot penetrate stone. But when the pulse strikes the surface it generates phonons, acoustic vibrations that travel through the rock, and the surface answers with sub-nanometre movements a satellite can measure.
S-MoE is a philosophical translation of that intuition. Stop fighting the barrier. Measure what the barrier does to the signal.
| Seismic | S-MoE |
|---|---|
| Deep rock strata | The expert weights, cold on the NVMe SSD |
| EM surface pulse | The dense backbone running the current token |
| Generated phonons | The router gates’ exact activation echo |
| Acoustic receivers | The async I/O streamer and its retained ring |
| Subsurface image | The generated token |
What S-MoE borrows is the physical principle; the method and the genius are his. Read the paper
03/The architecture
One offline command slices a monolithic checkpoint into a self-describing vault. From then on, memory is a transient execution medium, not a storage pool.
Embeddings, attention, norms and routing gates stay in unified memory: about 16 GB for the 235B. At every layer of every token it evaluates the real router gate, one small matrix multiply that names the exact experts to stream.
Every routed expert, shattered into 4-bit binary segments aligned to Apple Silicon’s 16 KB page boundary. The whole vault rests cold on NVMe and occupies zero bytes of RAM.
Background workers read the named experts with Direct I/O, bypassing the OS page cache, into a lock-free ring a fraction of a second before the Metal GPU runs them. The ring doubles as an LRU cache.
make shatter MODEL=./checkpoints/qwen3-235b-instruct OUT=./vault04/Exact routing, streamed
Inference is a streaming problem, not a loading problem. At every layer of every token, the backbone evaluates the real router gate on the true hidden state. It is a measurement, not a prediction, so it cannot be wrong.
The experts it names are pulled from NVMe into the ring a fraction of a second before the GPU runs them. Adjacent tokens share 46.4% of their experts, so nearly half are already there and are never read again.
Readout of the animation behind this page, not of a running engine.
05/Current status
No cloud. No H100. No half-terabyte workstation. Qwen3-235B at 4-bit, measured on a standard 48 GB Apple Silicon MacBook, since the latency campaign began.
92.7 s~26 s
0.48 tok/s1.84 tok/s
Every step verified bit-exact or coherence-checked against the reference path. 32 GB is the practical floor for the 235B, because its dense backbone alone weighs about 16 GB. More RAM buys speed, never quality.
06/Model-agnostic
The 235B is the proof of force, not the whole story. Point the shatter script at a compatible checkpoint and the model’s own mathematics travel inside the vault, in a 128-byte arch block. No recompilation, no per-model configuration. Vaults trade places live, from any model picker.
The frontier
Verified
The daily driver
Verified
The next summit
Next
Same engine, same binary, same laptop. Supported models and hardware projections
07/Multi-protocol server
One file, one process, one port, zero new dependencies. Anything that speaks OpenAI or Anthropic talks to the vault fleet on your laptop, unmodified: Open WebUI, LibreChat, editor plugins, both SDKs, Claude Code.
.venv/bin/python serve.py --port 8000
# then open http://127.0.0.1:8000/ and start typing/v1/chat/completionsOpenAI Chat Completions, streaming or not
/v1/messagesAnthropic Messages, streaming or not
/v1/modelsEvery vault on disk. Name another to switch engines
/Built-in, dependency-free web chat console
08/The manifesto
Speed is a privilege.
Intelligence is not.
A 32 GB MacBook and a 512 GB Mac Pro receive the same 235 billion parameters. The same knowledge, the same reasoning depth. One waits less, one waits more. Both get the answer.
We are not opposing technology. We are opposing artificial scarcity. The barrier is not physical. It is architectural: the assumption, never questioned, that inference is a loading problem.
The honest amendment
The original claim said 16 GB. Reality audited it: the frontier’s dense backbone alone weighs about 16 GB, so the floor for the 235B moved to 32. A 16 GB Mac runs the same architecture with smaller fine-grained MoE models. We publish the audit, because refusing to correct yourself is their habit, not ours.
The rebel constraints
malloc, new and std::vector::resize are illegal inside the token loop. Every buffer is carved at startup.
F_NOCACHE on every file descriptor. SSD to DMA to unified memory to GPU. No copies, no page cache.
No mutexes, no condition variables. The I/O thread and the GPU thread cannot block each other.
The gates measure, the streamer moves bytes, the kernel multiplies. None knows what the others do.
09/A curious builder’s diary
S-MoE is an experiment, not a product. It was built by a self-taught web developer and an AI agent: the direction came from human curiosity, the implementation depth from the collaboration. Every chapter is written down, including the ideas that got fired.
10/Begin
git clone https://github.com/melasistema/s-moe.git
cd s-moe
make setup