← Resources
By Sora Kashiwagi
— Senior Engineer, Vector Search
·
· TUTORIAL
Búsqueda híbrida: combinar BM25 y búsqueda vectorial para RAG
La búsqueda por palabras clave (BM25) y la vectorial fallan de maneras opuestas, y por eso precisamente el RAG en producción las combina. Esta guía explica ambos métodos, cómo la fusión (RRF) combina sus resultados, dónde encaja el reranking y cuándo la búsqueda híbrida supera de forma significativa a la vectorial pura.
Dos tipos de búsqueda que fallan de manera diferente
BM25 (búsqueda léxica o por palabras clave) puntúa los documentos por coincidencia exacta de términos, dando más peso a los términos poco frecuentes y penalizando la longitud. Es determinista y opera sobre un índice invertido. La búsqueda vectorial (semántica) codifica consultas y documentos en embeddings densos y recupera por similitud de vecinos más cercanos, capturando significado, sinónimos y paráfrasis, incluso entre idiomas.
Sus debilidades son imágenes especulares. BM25 no encuentra sinónimos ni conceptos: una consulta por «problemas de memoria en bases de datos» no encontrará una página titulada «políticas de desalojo de caché» si las palabras literales difieren. La búsqueda vectorial falla con los tokens exactos — acrónimos, SKUs, códigos de error, IDs, números de modelo — y sufre deriva semántica, devolviendo resultados semánticamente cercanos pero incorrectos, como «zapatillas Adidas para correr» ante una consulta de «zapatillas Nike para correr». Como los modos de fallo son complementarios, ninguno por sí solo basta.
Qué hace la búsqueda híbrida
La búsqueda híbrida ejecuta la recuperación léxica (BM25) y la densa (vectorial) en paralelo, y luego fusiona sus dos listas de resultados ordenados en una sola. El paso de fusión es la parte interesante, porque las puntuaciones de BM25 y las de similitud vectorial viven en escalas completamente distintas: no se pueden sumar sin más.
Por eso el método de fusión dominante, Reciprocal Rank Fusion (RRF), usa solo la posición en el ranking, no las puntuaciones brutas. La puntuación fusionada de cada documento es la suma, a través de ambos recuperadores, de 1 dividido por (k más su rango), donde k es una constante pequeña (comúnmente 60; algunos estudios usan 20). Como ignora por completo las distribuciones de puntuaciones, RRF no requiere normalización y funciona «de serie», y por eso es el valor por defecto en la mayoría de las bases de datos vectoriales.
RRF frente a fusión ponderada
RRF no es la única opción. La fusión ponderada (alfa) normaliza los dos conjuntos de puntuaciones y los combina con un peso ajustable: un alfa de 0 es búsqueda pura por palabras clave, 1 es búsqueda vectorial pura, 0,5 es igual peso, y los valores por defecto suelen rondar 0,75 hacia lo semántico. Algunos motores también ofrecen fusión basada en puntuación relativa y en distribución.
La contrapartida: RRF es robusto y tiene pocos parámetros, ideal cuando no quieres ajustar por corpus. La fusión ponderada te da un mando para favorecer la coincidencia exacta de términos (alfa más bajo) en contenido técnico con muchos identificadores, o la semántica (alfa más alto) para preguntas en lenguaje natural. Empieza con RRF; recurre a la fusión ponderada cuando tengas una razón clara para sesgar hacia uno de los recuperadores.
Dónde encaja el reranking
La recuperación híbrida es la primera etapa; el reranking es la segunda. Un recuperador rápido (BM25, vectorial o híbrido) extrae un conjunto de candidatos, y luego un cross-encoder vuelve a puntuar cada candidato codificando de forma conjunta la consulta y el documento en una única pasada con atención cruzada completa. Los cross-encoders son mucho más precisos que los recuperadores de primera etapa, pero demasiado costosos para ejecutarse sobre todo el corpus, por lo que solo revalúan los k mejores candidatos.
Por tanto, el pipeline de producción canónico es: recuperación híbrida (BM25 + vectorial, fusionada con RRF) → cross-encoder o reranker con LLM → mejores resultados en el contexto del modelo. Cada etapa hace aquello para lo que es mejor: recall primero, precisión al final.
¿Realmente ayuda? Y cómo construirlo en osFoundry
Las mejoras son reales, pero dependen de tus datos. El estudio BEIR de Elastic halló que el híbrido con RRF elevó el NDCG@10 medio aproximadamente un 18% sobre BM25 por sí solo, y un margen menor sobre un codificador aprendido robusto, y fue igual o mejor que BM25 en todos los conjuntos de datos probados. A medida que los modelos densos han mejorado, la ganancia marginal del híbrido se ha estrechado — a menudo unos pocos puntos porcentuales en datos dentro del dominio — pero sigue siendo mayor en corpus fuera del dominio, términos poco frecuentes y consultas que mezclan lenguaje natural con identificadores exactos. El híbrido sigue siendo el valor por defecto en producción.
El pipeline de RAG personalizado de osFoundry expone esto como etapas componibles en lugar de una caja negra: una etapa BM25 y una etapa vectorial se ejecutan en paralelo, una etapa de fusión (RRF por defecto, ponderada como opción) las combina, y una etapa de reranking refina el resultado antes de que llegue al modelo. Ajustas el equilibrio léxico-semántico por base de conocimiento en la configuración, siguiendo el patrón recuperar-fusionar-reordenar sin escribir la fontanería.
Frequently asked questions
- ¿Cuál es la diferencia entre búsqueda por palabras clave y búsqueda semántica?
- La búsqueda por palabras clave (léxica), como BM25, coincide con términos exactos y pondera los poco frecuentes: precisa pero ciega a los sinónimos. La búsqueda semántica (vectorial) codifica el significado en embeddings y busca por similitud, por lo que capta paráfrasis y conceptos relacionados, pero puede perder tokens exactos como IDs y códigos de error. Son fuertes en situaciones opuestas.
- ¿Qué es la búsqueda híbrida?
- La búsqueda híbrida ejecuta en paralelo la recuperación por palabras clave (BM25) y la vectorial y fusiona sus resultados ordenados en una sola lista con un algoritmo de fusión. Existe porque los dos métodos fallan de manera diferente — la vectorial maneja sinónimos y conceptos, BM25 acierta en términos exactos, identificadores y jerga poco frecuente — por lo que combinarlos mejora tanto el recall como la precisión.
- ¿Qué es Reciprocal Rank Fusion (RRF)?
- RRF fusiona dos listas ordenadas usando solo la posición en el ranking, no las puntuaciones brutas. La puntuación fusionada de cada documento es la suma, a través de los recuperadores, de 1 dividido por (k más su rango), donde k es una constante pequeña (comúnmente 60). Como ignora las escalas de puntuación incompatibles de BM25 y la búsqueda vectorial, no necesita normalización y funciona bien de serie.
- ¿Cuándo supera la búsqueda híbrida a la vectorial pura?
- Cuando las consultas mezclan lenguaje natural con identificadores exactos, usan jerga poco frecuente o específica del dominio, se ejecutan contra contenido fuera del dominio o son multilingües. La búsqueda vectorial pura puede bastar para preguntas puramente conceptuales sobre datos bien embebidos y dentro del dominio. Para bases de conocimiento técnicas llenas de códigos y nombres de productos, la híbrida es claramente mejor.
- ¿Por qué la búsqueda vectorial pierde términos exactos e IDs?
- Los embeddings comprimen el texto en un vector de tamaño fijo que captura el significado, no la ortografía exacta, por lo que tokens poco frecuentes como códigos de error, SKUs y acrónimos se difuminan, una propiedad a veces llamada ceguera estructural. El modelo sabe de qué trata un pasaje, pero no que contiene la cadena literal que buscaste, que es justo lo que BM25 hace bien.
- RRF o fusión ponderada, ¿cuál debo usar?
- Empieza con RRF: es robusto, tiene pocos parámetros y no necesita ajuste por corpus. Cambia a la fusión ponderada (alfa) cuando tengas una razón clara para sesgar hacia un recuperador: un alfa más bajo para favorecer la coincidencia exacta de términos en contenido con muchos identificadores, un alfa más alto para favorecer la semántica en preguntas en lenguaje natural.
- ¿La búsqueda híbrida añade latencia o coste, y merece la pena?
- Ejecuta dos recuperaciones más un paso de fusión, así que hay algo de sobrecarga, y el reranking añade más. Para la mayoría de los sistemas RAG, las mejoras en recall y precisión lo justifican, sobre todo en corpus técnicos o de contenido mixto. Si tienes datos bien embebidos y puramente conceptuales y la latencia es crítica, la vectorial pura puede bastar: mídelo con tus propias consultas.
Sources