Expert-Sharded Swarm Inference: The Design
86% of a 122B MoE is 12,544 independent 5.3 MB experts. Slice the model at that grain and a phone can carry a real share of frontier inference.
The thesis: 86% of Qwen3.5-122B's weight is 12,544 mutually independent 5.3 MB experts. Shard at the expert grain and a weak device carries "8–64 experts (42–340 MB)" instead of "a 1.4 GB layer" — exactly the unit a phone can actually hold. MoE is the natural substrate of a swarm.

The weights are already packaged in swarm-sized units
The expert index is the outermost dimension of every MoE tensor, so each expert is a contiguous, quant-block-aligned slab. An expert-sliced mini-GGUF is a clean byte-range copy — no dequantization, no re-packing.
Backbone stage × expert worker
- Backbone stage (strong node): attention + KV cache, all norms, the router, the shared expert, and the residual combine — the entire dense path. It also keeps all experts resident as a fallback replica (RAM offload), which gives the swarm churn tolerance.
- Expert worker (a phone): not a transformer. No attention, no KV, no sampler — a pure function
(hidden, local_ids) → outmade of three mat-muls, holding only its own expert slice. It fits any budget down to a 4 GB phone.
The cut point: router runs once on the backbone, with authority.
cur = ffn_norm(x) # backbone ids,p = top_k(softmax(cur @ router), 8) # backbone — authoritative ── dispatch selected experts to owner nodes ── send (cur rows, local_ids) → worker # ~6 KB per decode step recv expert_out ← worker x = x + combine(p, partials) + shared(cur) # backbone — numerically exact
Because the router runs exactly once on the backbone, each selected expert is computed exactly once by whichever node owns it. There is no approximation — the sharding only moves where the mat-muls happen.
The swarm is the proven reward market, at a finer grain
Kvasir already runs an autonomous scarcity market for layer shards, verified on real devices: a NAT-bound phone polls the demand map, self-enrolls into the highest-reward segment, partially downloads only that window, loads it on its Adreno GPU, and completes ring inference — earning contribution rewards. Expert sharding reuses all of it — coverage map, max-reward self-enroll, partial download, per-node rewards — changing only the coverage unit from *layer ranges* to *(layer, expert-range)*.
Partial-weight participation + the 443 relay
- Reward-driven partial-weight download: conventional RPC/TP/PP setups ship the full checkpoint to every rank and a scheduler dictates placement. In Kvasir a node downloads only the slice it will compute, and picks that slice itself, by reward — a 254 MB stage mini-GGUF versus the 77.6 GB full model. This is how a 4 GB phone joins a model far bigger than itself.
- 443 relay data plane: Cloudflare's 80/443-only edge plus carrier NAT means no direct dial in either direction. A per-edge WebSocket bridge with a 1-byte role preamble lets both sides dial outbound (the phone opens zero inbound ports). Landing it meant fixing three real bugs — build-fingerprint agreement, node-token download auth, and a Kotlin
Int.ushrframe-length bug that silently corrupted every frame ≥ 64 KiB (ushruses only the low 5 bits of its shift;len ushr 56becamelen ushr 24) — fixed by moving toLongshifts.
A throughput fabric, not a low-latency decoder
Decode is 49 serial layers, and a cross-internet round trip per layer costs 2.5–10 s per token. So the swarm's contest is serving models nobody can host alone, measured in aggregate throughput: batch dispatch amortizes RTT, the backbone keeps a hot-expert cache, and requests route to near replicas. The low-latency path stays with the pipeline ring.
M0 → M4
- M0 — backbone expert RAM offload: run 122B on one coordinator, no graph surgery.
- M1 — single-host expert-parallel proof: expert-sliced mini-GGUF + worker runtime + dispatch, logits exactly matching monolithic.
- M2 — LAN + NAT phone workers computing real 122B experts through the 443 relay.
- M3 — expert-grain coverage market with replicas and churn fallback.
- M4 — throughput: batched dispatch + hot-expert cache, tokens/s scaling with worker count.