Anillo en vuelo

Un pipeline que nunca se vacía: varias peticiones ocupan stages distintos a la vez, así que ningún stage espera a que termine la de delante.

Kvasir sirve un modelo como un pipeline de stages, cada uno con una rebanada contigua de sus capas. Un stage ejecuta sus capas y pasa la frontera — un hidden state, no pesos — al siguiente. Ningún stage guarda el modelo completo, y nada se interpone en medio de la ruta de datos: el bridge envía a la cabeza y lee de la cola, mientras los stages se entregan los resultados entre sí a través de sus propios agentes.

La parte en vuelo

Por qué un pipeline que se vacía desperdicia casi toda la máquina

Si un pipeline termina una petición antes de admitir la siguiente, en cada instante todos los stages menos uno están ociosos — un anillo de cuatro stages corre a un cuarto de su hardware. El diseño en vuelo mantiene varias peticiones moviéndose a la vez: mientras el stage 3 decodifica una petición, el stage 0 ya está haciendo prefill de otra. Los stages reportan cuánto tiempo retuvieron un batch y cuánto estuvieron sin nada que enviar, así que un anillo hambriento se ve distinto de un anillo saturado.

Cuatro stages, tres peticiones, un instante en el tiempo.

           stage 0        stage 1        stage 2        stage 3
           layers 0-11    12-22          23-33          34-44

request A                                              decode
request B                 decode
request C  prefill

boundaries pass →  agent to agent, never through the caller
Pertenencia

Qué es exactamente un batch

Las filas de peticiones distintas se empaquetan en un mismo batch físico, y esa pertenencia exacta se reenvía a todos los stages de abajo en vez de volver a decidirse en cada salto. Es lo que permite que un prefill y varias decodificaciones compartan una sola pasada, y es por lo que el tamaño de un batch es una propiedad de la carga: el plan declara de antemano los anchos de fila y de micro-batch, y esos anchos fijan el resultado más grande que un stage podrá devolver jamás.

Un pipeline necesita al menos dos stages. Un pipeline de un solo stage se rechaza de plano — la cabeza y la cola son roles distintos, y un único nodo que colapse ambos es otro motor, no un anillo más pequeño.

El anillo es la ruta de latencia, y su granularidad es una capa. El sharding de expertos elimina ese suelo cortando dentro de una capa, y se conecta al mismo tejido de servicio.