Sharding de expertos
Partir un MoE al grano de experto, para que un teléfono cargue 42–340 MB de expertos en vez de una capa de 1.4 GB.
El sharding de expertos baja la unidad de carga del enjambre de una capa (~1.4 GB en el 122B) a un experto (5.3 MB). Un dispositivo débil descarga una rebanada de 8–64 expertos (42–340 MB), la carga como worker de función pura — sin atención, sin KV, sin sampler — y computa sus expertos cada vez que el router del backbone los selecciona.
Estado del motor. El sharding al grano de experto se construyó y se demostró sobre el motor anterior de Kvasir, y los resultados de abajo vienen de ese trabajo. El motor actual, [p4](/wiki/p4), sirve hoy al grano de capa; llevar el sharding de expertos hasta él está diseñado y en marcha. Cuando un detalle nombra una herramienta o una ruta, es la que corrió sobre el motor anterior.
Backbone × worker
El punto de corte dentro de una capa MoE (el router corre una vez, en el 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
- El backbone conserva la ruta densa (atención, norms, router, experto compartido, combine) y mantiene todos los expertos como réplica de respaldo descargada a RAM, para tolerar el churn.
- Los workers (
linkcpp-expert-worker --serve) responden(n_used, n_tokens, cur, sel) → expertssobre un stream TCP de larga vida — el mismo stream que el relay 443 tuneliza para los teléfonos. - La cobertura se auto-repara mediante el mercado de cobertura de expertos:
POST /api/expert-coveragelate con las tenencias,GET /api/expert-demandagrega la escasez yPOST /api/expert-volunteerasigna el rango más escaso recortado al presupuesto del nodo.
Verificado en hardware real
- Cómputo sharded == monolítico hasta max|Δ| = 3.6e-12 (un reagrupamiento exacto, no una aproximación).
- Dispatch entre procesos en una decodificación 122B en vivo: argmax MATCH, cosine de logits 0.99869 — byte a byte idéntico al in-process.
- Un Galaxy S25 descargó de forma autónoma su rebanada de 1.58 GB y computó los expertos de layer-0 en cada token: 8/8 tokens idénticos a la ejecución local.
- Una GPU remota a través de la internet pública — un viaje de ida y vuelta WAN por token — se mantuvo 8/8 idéntico en greedy (cosine 0.99773): 1.2% de sobrecarga de throughput en un enlace directo, ~28% a través de un borde CDN. El coste honesto del dispatch serial por token, y por qué la palanca del tejido es el procesamiento por lotes, no una menor latencia.
- El dispatch por lotes alcanza 53k tok/s por worker con batch 512 (ROCm) — la propiedad de tejido de throughput que hace práctico el enjambre.