Publicamos que un motor era la mitad de rápido. El que medía mal era nuestro banco
Nuestro medidor contaba fragmentos del streaming como si fueran tokens. Con decodificación especulativa, un fragmento trae varios. La receta ajena sí funcionaba.
Qué pasó
Un experimento anterior concluyó que SGLang daba 8,9 tok/s, la mitad que vLLM, y que la receta que seguíamos no funcionaba en nuestra máquina.
El error
Nuestro medidor contaba fragmentos del streaming como si cada uno fuera un token. Con decodificación especulativa, el servidor acepta varios tokens de golpe y los envía juntos en un solo fragmento. Contábamos de menos.
La corrección
Contar los tokens que informa el servidor (stream_options: {"include_usage": true}) en lugar de fragmentos. Con eso, la receta sí rendía lo que prometía.
Qué significa para ti
Si mides velocidad por streaming, no cuentes fragmentos. Y cuando un resultado ajeno «no se reproduce», revisa primero tu forma de medir. Lo contamos con más detalle en Las 10 trampas del primer mes.
Medido en nuestras máquinas. Dos ASUS Ascent GX10 (NVIDIA GB10, 128 GB de memoria unificada). En tu equipo las cifras serán otras: lo que se traslada es el método y la lección.