martes, 5 de mayo de 2026

Como hacer una búsqueda correcta en un RAG

🔎 Cómo diseñar búsquedas correctas en un sistema RAG optimizado

Un sistema de Retrieval-Augmented Generation (RAG) depende críticamente de la calidad de la consulta de entrada. En particular, la búsqueda vectorial pura presenta un punto ciego: funciona bien solo cuando el embedding de la pregunta es matemáticamente cercano al de los documentos almacenados.

Cuando la consulta contiene errores ortográficos, ambigüedad o mala estructura, el vector resultante se “desvía”, reduciendo significativamente la probabilidad de recuperar información relevante.

A continuación se presentan estrategias prácticas para mitigar este problema, especialmente en arquitecturas desplegadas en la Nube, sin exigir que el usuario formule preguntas perfectas. Esto es sugerido para los desarrolladores.


🧹 1. Filtro de limpieza (LLM Guard)

Antes de generar el embedding, es recomendable normalizar la consulta utilizando un modelo ligero. Este actúa como corrector ortográfico y semántico. 

Flujo:

Usuario → Worker (LLM corrector) → Embedding → Búsqueda vectorial
  

Prompt sugerido:

Eres un asistente de entrada. Reescribe la siguiente consulta 
corrigiendo errores ortográficos y mejorando la claridad, 
manteniendo el significado original. 
Responde solo con el texto corregido.
  

Modelos recomendados: llama-3.1-8b-instruct-fp8, llama-3.2-3b.


⚙️ 2. Búsqueda híbrida (Hybrid Search)

La práctica estándar en sistemas productivos es combinar múltiples estrategias de recuperación.

  • Búsqueda vectorial → similitud semántica
  • Búsqueda por texto → coincidencia exacta o parcial (por ejemplo, usando D1)

Ventaja:

  • Errores ortográficos → compensados por el vector
  • Términos técnicos exactos → capturados por búsqueda textual

Esta combinación reduce significativamente los falsos negativos.


🔤 3. Fuzzy Search y normalización

Cuando no se desea incorporar un LLM adicional (por costo o latencia), se puede mejorar la robustez mediante técnicas clásicas:

  • Fuzzy Matching: uso de distancia de Levenshtein para aproximar términos.
    Ejemplo: fisca → física
  • Normalización:
    • Convertir a minúsculas
    • Eliminar acentos
    • Unificar formato antes del embedding

Es fundamental que la base vectorial haya sido indexada con las mismas reglas de normalización.


🧠 4. El problema del “ruido” en embeddings

Los modelos de embeddings son altamente sensibles a la estructura de la oración.

Ejemplo:

  • ✔️ Consulta estructurada:
    ¿Cuál es el coeficiente de dilatación del concreto?
  • Consulta ruidosa:
    concreto… eso de la dilatación cuánto es?

En el segundo caso, el vector se degrada debido a palabras irrelevantes o ambiguas.


🚀 5. Expansión de consulta (Query Expander)

Una estrategia avanzada consiste en transformar la pregunta del usuario en una consulta más técnica y precisa antes de generar el embedding.

Ejemplo:

Entrada del usuario:
"¿cómo va lo del túnel roto?"

Consulta expandida:
"Análisis estructural y colapso de túneles en Sucre"
  

Esta técnica mejora la calidad del vector y aumenta la probabilidad de recuperar documentos relevantes.


🧩 Conclusión

Un RAG eficiente no depende únicamente del modelo de lenguaje, sino de la calidad del pipeline de consulta.

  • 🧹 Limpieza previa de entrada
  • ⚙️ Recuperación híbrida
  • 🔤 Normalización y tolerancia a errores
  • 🚀 Expansión semántica

flowchart TD A[👤 Usuario
Consulta cruda] --> B[🧹 Preprocesamiento
Normalización + limpieza] B --> C{¿Usar LLM Guard?} C -->|Sí| D[🤖 LLM Corrector
Reescritura semántica] C -->|No| E[➡️ Consulta directa] D --> F[🚀 Query Expander
Optimización semántica] E --> F F --> G[🧠 Generación de Embedding] G --> H1[🔎 Vector Search
Cloudflare Vectorize] F --> H2[📚 Keyword Search
D1 / SQL] H1 --> I[📦 Resultados vectoriales] H2 --> I2[📦 Resultados textuales] I --> J[⚖️ Fusión / Ranking] I2 --> J J --> K[📄 Contexto relevante] K --> L[🤖 LLM Generador
Respuesta final] L --> M[💬 Respuesta al usuario]

Implementadas correctamente, estas técnicas permiten construir sistemas que toleran ambigüedad humana y aún así producen respuestas de alta calidad.

Referencia: 


No hay comentarios.:

Publicar un comentario

Páginas

Entrada destacada

Como hacer una búsqueda correcta en un RAG

🔎 Cómo diseñar búsquedas correctas en un sistema RAG optimizado Un sistema de Retrieval-Augmented Generation (RAG) depende...

Entradas populares

Visitas: