← Todos los postsBlog · 16 de octubre de 2025

Qwen3.8 Flash Next: la receta que desactivó el razonamiento (a propósito)

56 tok/s estructurado en TP2, concurrencia lineal hasta ×8... y la decisión más contraintuitiva: forzar thinking=false en toda la ruta porque el razonamiento oculto se comía el presupuesto. Nuestro A/B completo.

El experimento con la decisión más discutida del laboratorio: corremos un modelo con capacidad de razonamiento desactivada deliberadamente. Esta es la historia completa, con los números que justifican la decisión.

La ficha

Modelo Qwen3.8-27B Flash Next, NVFP4 con lm_head BF16
Runtime SGLang (receta dual actualizada)
Cluster 2× Spark, TP=2
Especulación MTP NEXTN 3/1/4 + CUDA graphs (decode)
Contexto 262.144 (candidato a 1M, no activado)

Los números medidos

prueba resultado
decode estructurado (mediana ×5) 56,17 tok/s
decode prosa (mediana ×5) 41,19 tok/s
concurrencia ×1/×2/×4/×8 26,1 / 46,1 / 81,5 / 109,5 tok/s agregados
prefill concurrente 4×32k 8,2 tok/s agregado · TTFT peor 62,5s
KV quick / long 11/11 · 20/20 NIAH
aceptación NEXTN α=60,3% · 2,81 tokens/step
tool-eval corto 87/100 (★★★★)

La concurrencia casi lineal hasta ×8 es la gran noticia para multi-agente: 109,5 tok/s agregados sirviendo 8 flujos a la vez, con TTFT que se mantiene bajo medio segundo.

El bucle de exclamaciones (y la decisión)

Todo empezó con un bug inquietante: con herramientas activas, el modelo entraba en un bucle de !!!!!! infinito o devolvía respuestas vacías. La diagnosis:

  1. El modelo, en modo thinking, quemaba su presupuesto generando razonamiento oculto
  2. Con herramientas + razonamiento, el routing interno se perdía y entraba en bucle
  3. El usuario solo veía: respuestas vacías o exclamaciones eternas

La solución tomada —discutida, medida y documentada—:

El gateway fuerza enable_thinking=false en toda la ruta de este perfil, aunque el cliente pida lo contrario. El razonamiento queda desactivado hasta que exista un perfil separado probado para herramientas.

Fue polémica interna (“¿comprar un modelo thinking para apagar el thinking?”) pero los números cerraron el debate: sin el bucle, las respuestas con herramientas pasaron de fallar a 87/100, y la latencia por token se quedó en 41-56 tok/s. Un modelo pensando bien pero respondiendo vacío pierde contra uno respondiendo bien sin pensar.

La validación agéntica completa

La rotación a este cartucho fue la primera que pasó la máquina transaccional completa del laboratorio: health, routing fail-closed, smoke de herramientas en los tres clientes, TC-60 y rollback verificado. El cartucho anterior quedó intacto como rollback de un solo comando.

Lo aprendible para tu casa

  • Los modelos thinking no son siempre mejores agentes: el presupuesto de razonamiento es finito y puede comerse la respuesta
  • La concurrencia importan más de lo que parece: si sirves a varios agentes/apps, el agregado ×8 manda sobre el ×1
  • Los CUDA graphs solo en decode: en esta receta, activarlos para prefill daba problemas; solo decode + MTP fue la combinación estable
  • Fijar la revisión de los pesos: la receta de la comunidad referenciaba el modelo “por nombre”; nosotros lo fijamos a un commit exacto para que las medidas compararan siempre lo mismo

Estado actual: probado y documentado, con rotación verificada. Hoy cede el sitio a GLM-5.3 Flash por calidad agéntica, pero sigue siendo nuestro cartucho de referencia en concurrencia multi-agente. ⚡