Resultados medidos: precisión y latencia de XEYE

Medido contra el servicio en producción con 604 consultas en español: XEYE coloca el elemento esperado en primera posición en el 91 % de las consultas sobre un catálogo de 10 productos, en el 85 % sobre 250 actividades y en el 49 % sobre 4.727 códigos casi sinónimos, donde aparece entre los diez primeros el 84 % de las veces. Con el modelo por defecto, el servidor responde de media en 28 a 55 ms.

Por Joan Martorell

¿Cómo se ha medido?

Cada prueba es un par formado por una consulta y el elemento que debería devolver. Las consultas se lanzan contra la API pública con una clave API, igual que lo haría una integración real, y se anota en qué posición aparece el elemento esperado. Ninguna consulta repite literalmente el texto del elemento, porque una coincidencia exacta no mediría nada.

  • Doce ejecuciones y 604 consultas en total, en agosto de 2026, contra el despliegue de producción.
  • Tres catálogos de tres tamaños, cada uno entrenado con los dos modelos de embeddings disponibles, con y sin descripciones generadas con IA.
  • La latencia es la que el propio servicio informa en cada respuesta: tiempo de proceso en el servidor, sin el trayecto de red, con la lista ya cargada en memoria.

Las mediciones forman parte de un trabajo de fin de grado en la Universitat de les Illes Balears (2026).

Las métricas

  • Top-1: fracción de consultas en las que el elemento esperado sale el primero.
  • Recall@k: fracción en las que sale entre los k primeros.
  • MRR (rango recíproco medio): media de 1 dividido por la posición del elemento esperado. Vale 1 si siempre sale el primero.

¿Sobre qué catálogos?

CatálogoElementosConsultasQué contiene
Productos1035Productos de comercio electrónico.
Actividades25055Actividades de negocio, consultadas como un usuario describiría su profesión.
CPV4.72761Códigos del Vocabulario Común de Contratación Pública europeo: una nomenclatura con decenas de códigos casi sinónimos por consulta.

Cada consulta está etiquetada por lo que pone a prueba: sinónimo (palabras distintas a las del elemento), intención (describe un propósito, no un objeto), marca, errata y atributo (color, tamaño, material).

¿Qué precisión se obtiene?

CatálogoModeloTop-1Recall@3Recall@5Recall@10MRR
Productos (10)MiniLM0,911,001,001,000,95
Productos (10)mpnet0,911,001,001,000,96
Actividades (250)MiniLM0,850,960,980,980,91
Actividades (250)mpnet0,850,981,001,000,92
CPV (4.727)MiniLM0,490,690,740,840,62
CPV (4.727)mpnet0,480,740,800,890,63
Con descripciones de IA activadas. MiniLM es el modelo por defecto (384 dimensiones); mpnet es el modelo grande (768).

En los catálogos pequeño y mediano ninguna consulta quedó sin respuesta: el elemento esperado apareció siempre entre los resultados, y la calidad apenas baja al pasar de 10 a 250 elementos. El catálogo CPV es otro régimen: con miles de códigos casi sinónimos, acertar exactamente el primero es difícil incluso para una persona, pero el esperado sigue apareciendo entre los diez primeros en el 84 a 89 % de las consultas.

¿Cómo rinde según el tipo de consulta?

Tipo de consultaProductosActividadesCPV
Sinónimo0,89 (9)0,93 (29)0,43 (23)
Intención1,00 (8)0,77 (13)0,50 (26)
Marca0,83 (6)sin consultassin consultas
Errata1,00 (3)0,75 (4)0,67 (6)
Atributo0,89 (9)0,78 (9)0,50 (6)
Top-1 con el modelo por defecto (MiniLM). Entre paréntesis, el número de consultas.

Las consultas por sinónimo e intención son las que un buscador por palabras clave no puede resolver. En el catálogo de productos aciertan en el 89 % y el 100 % de los casos, y en el de actividades el sinónimo es la categoría más fuerte, mientras que la intención baja a 0,77. La explicación de por qué está en búsqueda semántica frente a palabras clave.

¿Cuánto aportan las descripciones generadas con IA?

Para medirlo, cada lista se volvió a entrenar con las descripciones de IA desactivadas y se repitió la evaluación completa.

CatálogoModeloTop-1 con IATop-1 sin IAMRR con IAMRR sin IA
ProductosMiniLM0,910,860,950,92
Productosmpnet0,910,860,960,93
ActividadesMiniLM0,850,690,910,80
Actividadesmpnet0,850,750,920,83
CPVMiniLM0,490,390,620,52
CPVmpnet0,480,430,630,54

Prescindir de ellas cuesta entre 0,03 y 0,11 de MRR, y cuesta más en los catálogos mediano y grande que en el pequeño. Hay una excepción que conviene conocer: en Actividades, las consultas por atributo mejoraron sin IA (de 0,78 a 1,00 de top-1, sobre 9 consultas). En consultas muy literales, el texto generado puede alejar ligeramente el elemento de las palabras que lo describen.

¿Cuál es la latencia?

CatálogoModeloMediaPercentil 95
Productos (10)MiniLM4470
Productos (10)mpnet103174
Actividades (250)MiniLM2832
Actividades (250)mpnet8194
CPV (4.727)MiniLM5568
CPV (4.727)mpnet111133
Milisegundos de proceso en el servidor, con la lista ya cargada.

La latencia depende del modelo mucho más que del tamaño de la lista. Entre 10 y 250 elementos no crece, y pasar a 4.727 añade unos 25 ms de media. Cambiar MiniLM por mpnet, en cambio, la multiplica por entre 2 y 2,9 a cualquier escala: lo que domina es convertir la consulta en un vector.

¿Qué modelo conviene?

En catálogos pequeños y medianos, el modelo grande mejora las métricas de forma marginal (0,01 de MRR) y no compensa su latencia. En el catálogo grande sí aporta: con un top-1 casi idéntico, sube el recall@3 de 0,69 a 0,74 y el recall@10 de 0,84 a 0,89, y la posición media del elemento esperado pasa de 5,1 a 3,4. El modelo se elige al lanzar cada entrenamiento, así que puedes probar los dos sobre tu propia lista.

¿Qué límites tienen estos datos?

  • Los conjuntos de prueba son pequeños (de 35 a 61 consultas) y los redactó el propio autor, no usuarios reales.
  • Todas las consultas y los catálogos están en español.
  • Algunas categorías tienen muy pocas consultas: una diferencia entre 0,75 y 1,00 sobre 4 consultas es una sola consulta.
  • La latencia mide el caso caliente. La primera búsqueda de una lista tras un reinicio del servicio tarda más, y ese caso no se ha medido de forma sistemática.
  • No es una comparación con otros productos: ninguno se ha medido con estos conjuntos.

La mejor prueba es la tuya. El playground de la consola es gratis: sube una muestra de tu catálogo y busca como lo harían tus usuarios.

Preguntas frecuentes

¿Qué significa un top-1 de 0,85?

Que en 85 de cada 100 consultas de prueba el elemento esperado salió en primera posición. En las demás no necesariamente falló: el recall@3 de ese mismo catálogo es 0,96, así que casi siempre estaba entre los tres primeros.

¿Por qué baja tanto la precisión en el catálogo de 4.727 elementos?

Porque es una nomenclatura jerárquica con decenas de códigos casi sinónimos que compiten por cada consulta. Con un catálogo de productos del mismo tamaño pero con elementos más distintos entre sí, el comportamiento esperable es otro, y no lo hemos medido.

¿La latencia incluye la red?

No. Es el tiempo de proceso que el servicio informa en el campo duration_ms de cada respuesta. A eso hay que sumar el trayecto entre tu servidor y la API.

Pruébalo con tus propios datos

Crea una cuenta, sube una lista y haz tu primera búsqueda en unos cinco minutos. Empiezas con 5 € de crédito, sin tarjeta.

Sigue leyendo