Abaratar el dispatch WAN: una hoja de ruta con fundamento
El dispatch remoto de expertos funciona y es idéntico byte a byte — pero una decodificación WAN está limitada por la ida y vuelta. Este es el plan para recortar el coste, con fundamento en números de producción de DeepSeek, Petals y otros (hoja de ruta, no entregado).
Encuadre: los números que *medimos* se declaran como medidos; todo lo descrito como un plan es una hoja de ruta, no un resultado entregado. La meta es tomar el dispatch remoto de expertos — ya correcto y pagado (ver la entrada compañera) — y hacer la ida y vuelta WAN lo bastante barata como para que una GPU distante o un teléfono sea un miembro de primera clase del enjambre, no uno lento.
Nuestra propia medición, publicada sin rodeos: el dispatch cuesta unos 110 KB por token por capa — 12.3 KB de ida (dispatch) más 98.3 KB de vuelta (combine). La asimetría de 8× se debe a que cada experto seleccionado devuelve su salida completa *antes* de la suma ponderada. Con enlace directo, eso es un sobrecoste de throughput del 1.2%; a través de un relay de CDN, ~28%. Esos son los hechos. El resto de esta entrada es cómo pensamos cerrar la brecha — y por qué los bytes son la parte fácil.

Una decodificación WAN está limitada por la ida y vuelta
El resultado publicado más importante aquí no es nuestro — es de Petals: cuando el RTT pasa de <5 ms a 100 ms, la decodificación cae de 1.24 a 0.57 steps/s, mientras que un recorte de 10× en ancho de banda la cambia en ~0. La latencia domina; el ancho de banda es holgura. Eso replantea todo el problema: rebajar bytes es margen, pero recortar idas y vueltas es la sustancia. Cada punto de abajo se ordena por cuánto coste de ida y vuelta elimina.
Reducción de bytes priorizando la precisión
- Devolver sumas parciales ponderadas, no salidas crudas de expertos. Por linealidad el combine del backbone es exacto en cualquier caso, pero el worker devuelve un vector sumado en vez de 8 — esa es la reducción de ~8× del combine, y es exactamente lo que DeepSeek-V3 / DeepEP hacen en producción.
- Estrella paralela, no cadena serial entre varios workers: ΣRTT colapsa a max RTT.
- F16 en el cable — ya aceptamos un cosine entre backends de ~0.998, así que el transporte F16 cae dentro de la tolerancia existente; INT8/FP8 por bloques más adelante, después de que nuestra propia puerta de argmax/cosine lo apruebe contra pesos Q4_K_M (Petals mostró INT8 sobre internet real sin pérdida de calidad).
- Juntas apuntan a ~110 KB → 9–12 KB por token (~12×) — real, pero recuerda que es el *margen*, no el cuello de botella.
La sustancia: menos viajes, viajes ocultos
- La decodificación especulativa convierte muchos tokens en una sola ida y vuelta. A unos 80 ms WAN medidos, el punto de equilibrio es de solo ~1.15–1.2 tokens aceptados/paso — así que hasta una conjetura n-gram débil gana (el Jacobi vainilla puede salir mal; la elección de técnica importa). Nuestro protocolo de dispatch ya lleva
n_tokens > 1, así que no hace falta cambio en el cable. - El batching continuo en el gateway pliega peticiones concurrentes en un solo viaje; el caché de prefijos por afinidad de slot mantiene una sesión en las mismas réplicas.
- Ocultar la latencia: el experto compartido es un término aditivo independiente, así que el backbone lo computa *localmente* durante la ida y vuelta remota (ScMoE reporta 1.82× sobre PCIe, sin reentrenar). Mantén los expertos calientes en local, envía remoto solo los fríos (EPLB replica los ~32 más calientes para un aumento de 2.54× en la decodificación en producción).
Enrutar por peer, y qué cambia 200 Gb/s
Política de rutas: los peers enrutables públicamente toman la ruta directa (la del 1.2%); el relay es solo para dispositivos atados a NAT. Y cuando lleguen enlaces amplios de 200 Gb/s, los 110 KB se serializan en ~4.4 µs — el término de ancho de banda se desvanece incluso antes de las reducciones de arriba, y una rebanada de 794 MB se envía en ~32 ms. Pero el RTT es física; no encoge — así que la decodificación especulativa y el solapamiento siguen siendo las palancas reales incluso a 200 G. Donde la tubería gruesa importa de verdad es en la federación multi-backbone (varios backbones compartiendo un pool de expertos) y en el trabajo limitado por ancho de banda: prefill de prompts largos y throughput de lotes grandes.
Una salvedad, dicha con honestidad: la propia capa de transporte (WebSocket vs QUIC, sobrecoste de enmascarado, hole-punching de NAT) no tiene resultado externo que podamos citar — eso es ingeniería que mediremos nosotros mismos antes de afirmar nada. Todo lo de arriba se apoya en números de producción publicados (DeepEP / DeepSeek-V3, Petals, DeepSpeed-MoE, ScMoE, SGLang/EPLB) más nuestras propias mediciones; cuando un punto de la hoja de ruta se entregue, sus números y su tiempo verbal se actualizarán aquí.
Objetivos de incorporación
Nuestro hook de dispatch se apoya en build_moe_ffn — una única función que 43 arquitecturas MoE comparten en el motor de inferencia. Tres invariantes son independientes del modelo: la matemática MoE (routed = Σ wᵢ·Eᵢ(x), lineal), la ruta de código compartida, y los tensores de expertos apilados estándar de GGUF (ne[2] más externo → sliceo alineado a bloques). Así que incorporar un modelo nuevo no es un rediseño — es una sola pasada por una puerta de verificación de argmax/cosine por modelo.
| modelo | expertos · enrutamiento | por experto (Q4≈) | compartido | estado |
|---|---|---|---|---|
| Step-3.7-Flash 198B (sirviendo hoy) | 288 · top-8 | medido en la flota | sí | sirviendo — 16 stages, dos máquinas |
| Qwen3.5-122B | 256 · top-8 | 5.3 MB (medido) | sí | servido de extremo a extremo en 3 máquinas |
| GLM-5.2 744B | — | — | sí | verificado en linkcpp — informe sin publicar |
| GLM-4.5 / 4.6 355B | 160 · top-8 | ~13 MB | sí | planificado (hook verificado) |
| MiniMax-M2 230B | 256 · top-8 | ~8 MB | no | planificado (hook verificado) |
| DeepSeek-V3 / R1 671B | 256 · top-8 | ~25 MB | sí | planificado (grafo deepseek2) |
| Kimi K3 2.8T | — | — | sí | próxima puerta de verificación — verificación en p4 |
| Qwen3-235B | 128 · top-8 | ~11 MB | no | listo |
| gpt-oss-120b | 128 · top-4 | ~14 MB | no | listo |
| Llama 4 Maverick 400B | 128 · top-1 | ~70 MB | sí | planificado (MoE en capas alternas) |
| MiniMax M3 428B | 128 · top-4 | por determinar (GGUF) | sí | esperando al motor upstream |
| Mixtral 8×22B | 8 · top-2 | ~170 MB | no | funciona — solo workers de GPU |
La industria converge hacia MoE de grano fino — expertos más pequeños, más de ellos, mayor dispersión (DeepSeek, Qwen, Kimi, GLM, gpt-oss se movieron todos en esta dirección). Cada paso en esa dirección hace más pequeña la unidad de participación del enjambre y más fino el grano del mercado de escasez. Los modelos de arriba no son una lista de deseos; cada uno ya fluye por el mismo hook de dispatch que corremos en nuestra flota de pruebas — la incorporación es una puerta de verificación, no un proyecto de ingeniería.