RAG

Reranking

Segundo paso de una búsqueda que reordena los resultados recuperados usando un modelo más preciso, para que lo más relevante quede arriba de verdad.

Nivel · avanzado4 min de lecturaActualizado 23 ago 2026
También conocido como: Reordenación, Re-ranking, Cross-encoder

Definición

El reranking es un segundo paso de la búsqueda: primero recuperas muchos candidatos rápido y barato, y luego un modelo más lento y más listo los reordena por relevancia real.

Es el patrón clásico de recuperar y refinar, y existe porque hay una tensión que no se puede resolver de una sola pasada: buscar entre un millón de documentos exige ser rápido, y ser rápido exige ser aproximado.

La ganancia es de las mejores que hay en relación esfuerzo/resultado dentro de un RAG. Suele mover más el resultado final que cambiar a un modelo generador más caro.

Por qué hace falta

La búsqueda por embeddings funciona con un bi-encoder: convierte la pregunta en un vector, convierte cada documento en otro vector, y compara por similitud coseno. Rápido, porque los vectores de los documentos se calculan una vez y se guardan.

El problema es que la pregunta y el documento nunca se miran juntos. Cada uno se comprime por separado en unos cientos de números, y luego se comparan esos resúmenes. Se pierden los matices.

Un cross-encoder hace lo contrario: mete la pregunta y el documento en la misma pasada y devuelve una puntuación de relevancia. Al verlos juntos entiende cosas que el bi-encoder no puede: negaciones, condiciones, a qué se refiere un pronombre.

¿Por qué no usar solo cross-encoder? Porque no se puede precalcular nada: habría que pasar la pregunta contra el millón de documentos en cada consulta. Es inviable.

De ahí el reparto: bi-encoder para recuperar 50 candidatos de un millón, cross-encoder para ordenar esos 50 y quedarse con 5.

Ejemplo práctico

En la búsqueda semántica del diccionario de esta web, todo pasa dentro del navegador y son 85 términos: ahí no hace falta reranking, con la similitud coseno directa sobra.

Donde sí lo notamos fue en el asistente del CRM de IMDICA sobre el manual de operaciones y las fichas técnicas, con miles de fragmentos.

Pregunta real: "¿Qué hago si un cliente devuelve material que no es el que pidió?"

Sin reranking, los cinco primeros resultados hablaban todos de devoluciones, pero tres eran de devolución a proveedor, que es un procedimiento distinto. Vectorialmente se parecen muchísimo: mismo vocabulario, mismo dominio, misma forma. El bi-encoder no distingue bien la dirección.

Con un reranker por delante, recuperando 40 candidatos y quedándose con 5, los tres de proveedor bajaron y subieron los de devolución de cliente. El modelo generador recibió el contexto correcto y la respuesta dejó de mezclar procesos.

Lo que aprendimos: el reranking sirve sobre todo cuando tu corpus tiene documentos muy parecidos entre sí que dicen cosas distintas. Si tus documentos son temáticamente dispersos, aporta menos.

Cómo se monta

  1. Recupera más de lo que necesitas: entre 30 y 100 candidatos en vez de 5.
  2. Pasa los pares (pregunta, candidato) por el reranker.
  3. Ordena por la puntuación que devuelve.
  4. Quédate con los 3-8 mejores para el contexto.
  5. Opcional pero útil: descarta por umbral. Si ningún candidato pasa de cierta puntuación, es mejor decir "no lo encuentro" que meter contexto irrelevante y provocar una alucinación.

Opciones habituales: Cohere Rerank y Jina Reranker como servicio, o modelos abiertos tipo BGE Reranker y los cross-encoders de sentence-transformers si prefieres no salir de casa.

Errores comunes

  • Recuperar 5 y rerankear 5. No sirve de nada: si lo bueno no estaba entre los 5, reordenarlos no lo trae. Recupera ancho, filtra estrecho.
  • Rerankear cientos de candidatos. Cada par cuesta tiempo. Pasar de 100 raramente compensa la latencia.
  • Ignorar el coste en latencia. Añade entre 100 y 500 ms. En un chat da igual; en un buscador con sugerencias mientras escribes, no.
  • Usarlo para tapar un chunking malo. Si tus fragmentos están mal cortados, el reranker ordena basura mejor ordenada.
  • No medir si aporta. Como todo, se comprueba con evals. En algunos corpus la mejora es de un punto y no vale la latencia.

Cuándo añadirlo

cuando tienes muchos documentos parecidos entre sí, cuando la precisión importa más que los milisegundos, o cuando ves que la respuesta correcta aparece en el puesto 8 pero no en los 5 que pasas al modelo.

No cuando tu corpus es pequeño y variado, cuando la latencia es crítica, o antes de haber arreglado el chunking. El orden correcto de optimización de un RAG es: primero los fragmentos, después el reranking, y solo entonces el modelo generador.

Referencias

Tagsiaragbúsqueda-semánticaprecisión
Escrito por
Antonio Echeverría

Dirijo IMDICA, una empresa de suministro industrial, desde 2007. Escribo estas definiciones desde el lado de quien las usa para decidir, no desde el de quien las estudia.

Si quieres esto funcionando dentro de tu empresa y no en una demo, lo monto en AE Works.