Búsqueda y evaluación para RAG: Por qué la recuperación de información necesita una etapa de reclasificación separada.
RAG necesita un mecanismo de búsqueda y evaluación: los embeddings identifican candidatos, pero no pueden determinar su relevancia. Se requiere un diseño en dos etapas con RRF, codificadores cruzados, ColBERT y clasificadores de LLM para realizar una nueva clasificación.
Muchos equipos se topan con el mismo problema con la generación mejorada mediante recuperación de información. En un pizarrón, el sistema parece sencillo: se inserta la consulta, se comparan los vectores, se pasan los resultados principales al modelo y se obtiene una respuesta. En la producción, los problemas aparecen rápidamente. Se pasan por alto documentos relevantes, se incluyen fragmentos irrelevantes, una pregunta ligeramente reformulada cambia la respuesta, y las alucinaciones persisten incluso cuando parece que la recuperación de información funcionó bien.
La respuesta habitual es sustituir el modelo de incrustación por uno mejor, aumentar la dimensión vectorial o ajustar los parámetros top-k y el tamaño de los fragmentos. Esas medidas son razonables, pero se enfocan en el aspecto incorrecto. El problema real es de tipo arquitectónico. Un flujo de trabajo convencional pide a un mismo mecanismo, la similitud de incrustación, que realice dos tareas muy distintas: encontrar candidatos y decidir cuáles de ellos son importantes.
La solución es dividir las tareas. Se trata de un diseño en dos etapas: la generación de candidatos y la evaluación de la relevancia son problemas de ingeniería separados que requieren herramientas distintas.
Por qué la similitud por sí sola no es suficiente
Naive RAG convierte la consulta en un embedding, extrae los fragmentos más cercanos del conjunto de conocimiento (top-K), los coloca junto a la pregunta y permite que el modelo responda. La suposición implícita es que la cercanía equivale a la relevancia, por lo que se confía en la lista de top-K sin ninguna validación. Hay cuatro problemas con este enfoque.
Lo similar no es lo mismo que lo relevante. La distancia de incrustación es un indicador aproximado de la cercanía temática. Dos pasajes pueden encontrarse uno junto al otro sin que uno responda a la pregunta planteada por el otro. Un texto sobre pautas de tratamiento para la hipertensión y otro sobre metodología de ensayos para fármacos cardiovasculares pueden aparecer uno al lado del otro, pero solo el primero ayuda a quien decide cómo tratar a un paciente.
El ordenamiento es deficiente. La distancia vectorial es una heurística y no una función de clasificación diseñada para que la posición refleje la relevancia. La diferencia entre el tercer y el séptimo resultado en un ranking por coseno suele ser ruido.
El contexto se fragmenta. El particionamiento rompe las relaciones, la jerarquía y las causas y efectos. Un fragmento sobre dosis puede quedar separado del fragmento que describe las contraindicaciones, y ninguno de los dos es completo por sí solo.
Los resultados son inestables. Pequeños cambios en la redacción pueden alterar el conjunto top-K. Preguntar sobre los efectos secundarios de la metformina frente a las reacciones adversas a esta puede generar candidatos diferentes, y la respuesta final puede cambiar con ellos. Eso es un defecto de fiabilidad y no un detalle de ajuste.
En resumen, la búsqueda proporciona candidatos, pero no garantiza la corrección.
El diseño en dos etapas
En lugar de que un solo sistema encuentre y evalúe, se construyen dos etapas, cada una ajustada para su propio objetivo.
Primera etapa: búsqueda, que extiende intencionadamente la red de búsqueda. Se obtienen entre 50 y 200 candidatos, muchos más de los que se mostrarían al modelo, ya que el objetivo aquí es la recuperación. Los documentos correctos solo necesitan estar en algún lugar de ese conjunto, incluso si este está lleno de información irrelevante.
La segunda etapa, juez, aplica una prueba mucho más estricta. Por lo general se trata de un reclasificador con codificador cruzado que lee la consulta junto con cada candidato y calcula una puntuación de relevancia real. Esto reduce el conjunto a entre cinco y diez pasajes de alta confianza. Solo entonces el contexto compilado se envía al modelo de lenguaje.
Qué aportan realmente los embeddings
Malinterpretar el papel de los embeddings es lo que hace que los equipos dependan demasiado de ellos. Imagine a un bibliotecario que no lee cada libro, pero le asigna etiquetas con algunos temas clave. Cuando llega una pregunta, el bibliotecario la convierte en etiquetas similares y selecciona los libros cuyas etiquetas coinciden mejor. Eso es rápido y generalmente encuentra algo útil, pero se basa en temas superficiales y no en una comprensión profunda, por lo que algunos libros están relacionados pero no son lo que se necesita.
La consecuencia: su modelo de embedding es su comportamiento de búsqueda. Él decide qué se encuentra y qué se pasa por alto. No decide qué es correcto, y esa es la función de la etapa del juez.
Elegir un modelo de embedding es, por lo tanto, una decisión relacionada con la capacidad de recuperación. Usted está eligiendo la lente a través de la cual la primera etapa observa el corpus. Evalúe criterios de recuperación como MTEB y BEIR, la cobertura lingüística, el tamaño del modelo en relación con su hardware, la dimensión vectorial, la longitud máxima de entrada y la velocidad de inferencia. Todo esto concierne a la capacidad de recuperación.
Opciones para el juez y cuándo es adecuada cada una
El juez es un rol dentro de la arquitectura. Varias implementaciones pueden desempeñar esta función, con diferentes compromisos en términos de precisión, latencia, complejidad y costo.
Fusión de rangos recíprocos
RRF no evalúa en absoluto la relevancia. Combina las listas ordenadas de varias fuentes, como una búsqueda por palabras clave y una búsqueda semántica, en un único ordenamiento. Para cada documento suma 1 / (k + posición_en_la_lista) en todas las listas, donde k es una constante, generalmente 60, que atenúa la dominancia de las posiciones más altas en el ranking. Los documentos que obtienen buenas posiciones en varias listas ascienden en el ranking.
Es rápido, determinista, no requiere inferencia de modelos y añade casi ninguna latencia. Dado que utiliza las posiciones en el ranking y no las puntuaciones brutas, evita la discrepancia entre las puntuaciones BM25 y las similitudes coseno, por lo que no se necesita normalización.
Su limitación es que solo reconoce la concordancia. Si varios recuperadores consideran que un documento es importante, RRF asume que probablemente lo sea. Se trata de una heurística sensata, pero sigue siendo una heurística. No puede rescatar un documento relevante que todos los recuperadores hayan pasado por alto, ni separar un documento temáticamente cercano de uno que responde a la pregunta.
Úselo para búsquedas híbridas cuando necesite una forma sencilla de combinar listas. Forma parte de la fase de búsqueda como método para mejorar los candidatos, pero no reemplaza al evaluador.
Codificadores cruzados
Un cross-encoder introduce la consulta y uno de los candidatos al modelo como una secuencia unida y devuelve una puntuación de relevancia. Los bi-encoders incrustan la consulta y el documento por separado, mientras que aquí cada token de la pregunta puede relacionarse con cada token del texto. Por lo tanto, el modelo puede razonar sobre cómo las frases específicas de la pregunta se relacionan con las frases específicas del texto. Ejemplos típicos son los modelos Sentence Transformers como cross-encoder/ms-marco-MiniLM-L-12-v2, los servicios de reclasificación alojados y los cross-encoders ajustados para datos médicos, legales o científicos.
Su ventaja es la precisión. En pruebas de clasificación, suelen superar a otros enfoques, ya que capturan interacciones de alto nivel que la similitud de incrustación no puede lograr. Esto es lo más cercano a determinar si un documento realmente responde a la pregunta sin realizar una llamada completa al LLM.
El costo consiste en un proceso de procesamiento adicional por cada par de consulta y candidato. Un conjunto de 100 documentos implica 100 ejecuciones del modelo por consulta, por lo que la latencia aumenta de forma lineal con el tamaño del conjunto, y los modelos más grandes empeoran aún más la situación.
Son el criterio por defecto siempre que la calidad de la respuesta sea lo más importante: atención médica, derecho, cumplimiento normativo, análisis financiero, cualquier área donde una recuperación incorrecta tenga consecuencias. Si el presupuesto de latencia permite aproximadamente de 50 a 200 milisegundos para el reordenamiento, algo que la mayoría de los sistemas no en tiempo real pueden permitirse, comience aquí.
ColBERT e interacción tardía
ColBERT, abreviatura de contextualized late interaction over BERT, se sitúa entre los bi-encoders y los cross-encoders. Codifica la consulta y el documento de forma independiente en vectores por token, y luego calcula sus puntuaciones al comparar los tokens de la consulta con los tokens del documento. Dado que los vectores de los documentos pueden calcularse previamente, es mucho más económico en el momento de la consulta que un cross-encoder, al tiempo que mantiene más detalles que un único vector combinado. El costo es un índice más grande, ya que cada token recibe un vector. Es adecuado para sistemas que necesitan una mejor clasificación que los embeddings simples y un mayor rendimiento que el que pueden ofrecer los cross-encoders.
Un LLM como juez
Un modelo de lenguaje general puede evaluar directamente a los candidatos. Es capaz de manejar una relevancia matizada y de múltiples niveles, como darse cuenta de que un documento sobre interacciones medicamentosas está relacionado con una pregunta sobre la seguridad del tratamiento, aunque el vocabulario no coincida. También puede seguir criterios de relevancia explícitos en la instrucción, lo que lo hace adaptable a los significados específicos de un dominio en cuanto a lo que se considera relevante.
Además, es con diferencia la opción más costosa. Una llamada de reclasificación puede tardar de uno a cinco segundos y costar de diez a cien veces más que un proceso con codificador cruzado. Las puntuaciones pueden variar entre ejecuciones, y los modelos muestran un sesgo por posición, favoreciendo a los documentos que aparecen antes en la instrucción. Los modelos alojados añaden una dependencia externa.
Tiene sentido en dos escenarios: trabajos sin conexión o por lotes donde la latencia es irrelevante, como la creación de bases de conocimiento curadas, la evaluación de la recuperación durante el desarrollo o la generación de datos de entrenamiento para un reordenador especializado; y herramientas de alto riesgo y bajo volumen donde el valor de una respuesta correcta justifica el costo por consulta, como la investigación médica o legal a nivel experto.
Elegir modelos para cada etapa
Comprender el patrón es una cosa y elegir modelos es otra. La arquitectura le plantea dos decisiones de selección, cada una determinada por la tarea.
Comience con la tarea
La respuesta a preguntas clínicas, la exploración de documentos y el cumplimiento normativo requieren enfoques diferentes. La calidad de los resultados exige alta precisión con un conjunto pequeño de datos. La exploración valora la amplitud y la diversidad. El cumplimiento normativo necesita una recuperación determinista y auditable, con el mínimo número de falsos negativos. El perfil de la tarea determina cada elección posterior.
El modelo de embedding establece el límite de la capacidad de recuperación
Determina qué puede encontrar el sistema antes de que intervenga el evaluador. Un documento relevante que nunca llega al conjunto de datos no puede ser recuperado por ningún otro algoritmo de clasificación. Compare a los candidatos según estos criterios:
- Marcadores de rendimiento. Observe los resultados de MTEB y BEIR para el tipo de tarea más similar a la suya, como la recuperación de pasajes o la respuesta a preguntas, y no solo la puntuación total.
- Idiomas y dominio. Los modelos multilingües sacrifican algo de precisión monolingüe a cambio de mayor amplitud, mientras que los modelos ajustados a un dominio específico hacen lo contrario. Verifique la cobertura de su terminología.
- Tamaño e infraestructura. Los modelos más grandes suelen ofrecer mejores resultados, pero cuestan más a escala. Considere el volumen de indexación, el rendimiento de las consultas y la diferencia entre GPU y CPU. Un modelo un 3 % mejor en una prueba que requiere el doble de procesamiento podría no ser una buena opción.
- Dimensión vectorial. Más dimensiones permiten capturar más matices, pero aumentan el almacenamiento y la latencia. Muchos modelos ofrecen varios tamaños, así que pruebe si tener 768 frente a 1536 dimensiones justifica el costo adicional.
- Longitud máxima de entrada. Esto limita la división del texto en fragmentos. Un límite de 512 tokens obliga a usar fragmentos más pequeños y genera más fragmentación, mientras que 2048 u 8192 tokens permiten conservar más contexto por fragmento.
- Velocidad. La latencia de incrustación es importante tanto en el momento de indexación como en el de consulta. Los modelos destilados más pequeños pueden ofrecer un buen rendimiento en términos de recuperación con una latencia mucho menor cuando los SLA son estrictos.
El principio: ajustar el modelo de incrustación en función de la cobertura y la velocidad, y no de la precisión. La precisión es responsabilidad del evaluador.
El reordenador determina la corrección final
Es el último filtro antes del LLM, por lo que su calidad influye directamente en la exactitud de las respuestas. Evalúelo según:
- Exactitud en el ranking. La métrica principal. Verifique el nDCG, el MRR y el MAP en pruebas de referencia relacionadas con su área de trabajo. Pequeñas mejoras aquí pueden reducir significativamente las alucinaciones posteriores.
- Latencia. El reordenador se ejecuta una vez por cada candidato, así que un conjunto de 100 significa 100 pasos. El tiempo por paso y el tiempo total son límites críticos en la producción.
- Alineación con el dominio. Los reclasificadores generales rinden bien en búsquedas amplias, pero los dominios de alta importancia suelen beneficiarse de reclasificadores ajustados con datos de relevancia específicos del dominio. Un reclasificador entrenado en literatura médica evaluará mejor las consultas clínicas que uno general, incluso si este último obtiene puntuaciones más altas en pruebas genéricas.
- Rendimiento. Bajo un tráfico intenso, el reclasificador puede convertirse en un cuello de botella. Considere el uso de lotes, el paralelismo de modelos y si una opción más ligera, como un codificador cruzado simplificado o un modelo de interacción tardía, permite alcanzar una precisión aceptable con un rendimiento mucho mayor.
Invierta en ambos
Los sistemas más eficaces no eligen entre un buen generador de embeddings y un buen reordenador, ya que ambos realizan tareas que no se superponen. Un generador de embeddings potente junto con un reordenador débil proporciona un alto nivel de recuperación, pero resultados finales con ruido. Un generador de embeddings débil junto con un reordenador potente ofrece un ordenamiento preciso a partir de un conjunto incompleto. Ninguno de los dos es suficiente por sí solo.
La fórmula consiste en una búsqueda rápida con alto nivel de recuperación, sumada a un juicio preciso y sólido. Ajuste el generador de embeddings según sus necesidades de recuperación y el reordenador según sus necesidades de precisión; luego, modifique el tamaño del conjunto de candidatos entre las distintas etapas para equilibrar la cobertura con la latencia del reordenamiento.
Un ejemplo práctico
Imaginemos que a un asistente clínico le preguntan si un paciente que toma un medicamento específico para la diabetes puede tomar seguramente un segundo fármaco. En la fase de búsqueda se ejecutan de forma paralela una consulta por palabras clave y una consulta vectorial; luego se fusionan con RRF y se conservan 100 candidatos. Entre ellos se encuentran la monografía de cada medicamento, un artículo sobre el diseño de ensayos clínicos, un folleto general sobre nutrición y varias tablas de interacciones. La similitud por sí sola podría hacer que el artículo del ensayo y el folleto ocupen un lugar más alto que las tablas de interacciones, ya que su vocabulario es más similar a la pregunta.
La etapa del juez lee la pregunta junto a cada uno de los cien pasajes y evalúa si el pasaje aborda realmente el uso combinado. La tabla de interacción y el párrafo de contraindicaciones relevantes ascienden a la parte superior, el folleto desaparece, y el modelo recibe seis pasajes en lugar de los diez ruidosos. Mismo corpus, mismas representaciones vectoriales, resultado diferente, porque un segundo componente tomó una decisión para la cual el primero nunca fue diseñado.
Ajuste de la transición entre etapas
El tamaño del conjunto de candidatos es el parámetro principal. Si es demasiado pequeño, el evaluador nunca ve el pasaje correcto, lo que limita la tasa de recuperación de todo el sistema. Si es demasiado grande, la latencia y el costo del reclasificador aumentan sin obtener muchos beneficios. Una forma práctica de ajustarlo es registrar, en una muestra etiquetada, el rango en el que aparece el pasaje correcto en la primera etapa, y luego elegir un conjunto que cubra casi todos ellos. Si el pasaje correcto suele encontrarse más allá del rango 150, probablemente el problema esté en la etapa de búsqueda, con un mejor mecanismo de incrustación, una recuperación híbrida o un mejor particionamiento, y no en un reclasificador más potente.
Otras prácticas también son útiles:
- Evaluar las dos etapas por separado. Medir la tasa de recuperación del conjunto de candidatos antes de la evaluación, y la precisión de la lista final después de ella, para poder atribuir cualquier regresión a la etapa correspondiente.
- Almacenar en caché las puntuaciones del reclasificador para consultas frecuentes cuando el corpus cambia lentamente.
- Mantenga el contexto final reducido. Presentar cinco pasajes sólidos suele ser mejor que veinte pasajes mixtos, ya que el material adicional compite por la atención.
- Revisite la configuración cuando cambie la combinación del corpus o la consulta, porque un reordenador ajustado para un dominio puede deteriorarse silenciosamente en otro.
Considérelo como una hipótesis a probar con sus propios datos y no como una garantía, ya que los beneficios varían según el dominio y según cuán débil fuera la línea de base.
La conclusión
Un RAG fiable no se logra encontrando una representación vectorial mejor. Se obtiene separando la búsqueda del juicio, con una etapa que maximice la cobertura y otra que maximice la exactitud.
El cambio es conceptual antes que técnico. Deje de considerar los resultados top-K como la respuesta final y trátelos como un conjunto de candidatos. Deje de considerar la similitud como verdad y trátela como una hipótesis que necesita verificación. Busque ampliamente y luego juzgue con precisión.
Lección relacionada
- RAG avanzado en Milvus: Búsqueda híbrida, HyDE, reescritura de consultas y reclasificación — Construye un pipeline RAG para Milvus paso a paso: vectores densos y BM25, búsqueda híbrida RRF, filtros de metadatos, reescritura de consultas, HyDE, descomposición y reclasificación con cross-encoder.
- Notas prácticas: Los agentes de IA ya no necesitan búsqueda vectorial: Adentro del ecosistema Agentic — Guía detallada de las Notas prácticas: Los agentes de IA ya no necesitan búsqueda vectorial: Adentro del ecosistema Agentic; la pila de búsqueda que reemplazará a RAG en 2026: contratos, verificaciones y código listo para usar.