Saltar al contenido
Proyecto IA

← Volver al diario

Hecho

El reordenador entra en producción: 0,3 segundos en la GPU por lo que en CPU costaba 13

La medida de esta tarde decía que reordenar los 25 mejores fragmentos con un modelo que lee la pregunta y el texto juntos (bge-reranker-v2-m3) subía del 79 % al 86 % las veces que el documento correcto queda entre los cinco primeros. Pero costaba 13 segundos por pregunta en CPU, inviable. Así que lo hemos montado como un servicio propio en la GPU, al lado del motor de inferencia y del modelo de embeddings.

Qué hay

  • Un servicio pequeño (api/reordenador): recibe una pregunta y hasta 100 textos y devuelve una puntuación por texto. Modelo multilingüe con licencia MIT, en fp16 para ocupar 1,2 GB de la tarjeta.
  • El asistente recupera 25 fragmentos en vez de 5, los pasa por el reordenador y le da al modelo de lenguaje los 5 mejores. Si el reordenador falla, el asistente sigue funcionando con el orden de la búsqueda: no es un punto único de fallo.
  • Tres pruebas nuevas, 43 en total en el asistente.

Medidas en la L4

Reordenar 25 fragmentos291 ms en la GPU (13.300 ms en 8 núcleos de CPU)
Consulta pública completa (búsqueda + reordenación + respuesta)1,8 s con respuesta corta; 7,9 s con respuesta larga
4 consultas a la veztodas correctas en 4,1 s
Memoria de la tarjeta18,4 GB de 23 con los tres modelos (vLLM limitado al 75 %)

Y una corrección a lo que escribimos una hora antes: la primera tanda de medidas la hicimos sin darnos cuenta de que el asistente de la nube seguía con la imagen anterior, sin reordenador (el registro del servicio nuevo estaba vacío). Reconstruido, el reordenador recibe cada consulta y los números son los de arriba. Además, con vLLM al 80 % de la tarjeta no quedaba sitio y Ollama ponía el modelo de embeddings en la CPU sin avisar; bajado al 75 %, los tres modelos caben en la GPU.

La tarjeta va justa: tres modelos en 24 GB. Es la razón por la que la siguiente máquina, cuando haya clientes, será de 48 GB.

Un detalle que costaba 10 segundos

Ollama descarga de la memoria el modelo de embeddings tras cinco minutos sin uso, y la primera pregunta después de una pausa pagaba la recarga: 13 segundos en vez de uno. Configurado para que se quede cargado.

asistenteinfraestructuramedidas