Experten-Sharding
Ein MoE auf Expertenkörnung teilen, sodass ein Smartphone 42–340 MB Experten trägt statt einer 1.4-GB-Layer.
Experten-Sharding senkt die Trageeinheit des Schwarms von einer Layer (~1.4 GB beim 122B) auf einen Experten (5.3 MB). Ein schwaches Gerät lädt eine Scheibe von 8–64 Experten (42–340 MB), lädt sie als Pure-Function-Worker — ohne Attention, ohne KV, ohne Sampler — und rechnet seine Experten, wann immer der Router des Backbones sie auswählt.
Engine-Status. Experten-Sharding wurde auf Kvasirs vorheriger Engine gebaut und vorgeführt, und die Ergebnisse unten stammen aus dieser Arbeit. Die aktuelle Engine, [p4](/wiki/p4), bedient heute auf Layer-Körnung; die Übertragung des Experten-Shardings darauf ist entworfen und in Arbeit. Wo ein Detail ein Werkzeug oder eine Route benennt, ist es das, was auf der vorherigen Engine lief.
Backbone × Worker
Die Schnittstelle in einer MoE-Layer (der Router läuft einmal, auf dem Backbone).
cur = ffn_norm(x) # backbone ids,p = top_k(softmax(cur @ router), 8) # backbone — authoritative send (cur rows, local_ids) → worker # ~6 KB per decode step recv expert_out ← worker # worker: 3 mat-muls x = x + combine(p, partials) + shared(cur) # backbone — exact
- Das Backbone behält den dichten Pfad (Attention, Norms, Router, geteilter Experte, Combine) und hält alle Experten als RAM-ausgelagerte Fallback-Replik für Churn-Toleranz.
- Worker (
linkcpp-expert-worker --serve) beantworten(n_used, n_tokens, cur, sel) → expertsüber einen langlebigen TCP-Stream — denselben Stream, den das 443-Relay für Smartphones tunnelt. - Die Abdeckung heilt sich über den Experten-Abdeckungsmarkt selbst:
POST /api/expert-coverageheartbeatet Bestände,GET /api/expert-demandaggregiert Knappheit,POST /api/expert-volunteerweist den knappsten Bereich zu, zugeschnitten aufs Budget des Nodes.
Auf echter Hardware verifiziert
- Sharded-Rechnung == monolithisch bis max|Δ| = 3.6e-12 (eine exakte Umgruppierung, keine Näherung).
- Prozessübergreifender Dispatch bei einer echten 122B-Dekodierung: argmax MATCH, Logit-Cosine 0.99869 — byteidentisch zu in-process.
- Ein Galaxy S25 lud autonom seine 1.58-GB-Scheibe und rechnete bei jedem Token die Layer-0-Experten: 8/8 Token identisch zum lokalen Lauf.
- Eine entfernte GPU über das öffentliche Internet — ein WAN-Roundtrip pro Token — blieb greedy 8/8 identisch (cosine 0.99773): 1.2% Durchsatz-Overhead auf einer direkten Verbindung, ~28% über einen CDN-Edge. Die ehrlichen Kosten des seriellen Per-Token-Dispatch, und warum der Hebel des Gewebes das Bündeln ist, nicht niedrigere Latenz.
- Gebündelter Dispatch erreicht 53k tok/s pro Worker bei Batch 512 (ROCm) — die Durchsatz-Gewebe-Eigenschaft, die den Schwarm praktikabel macht.