Por qué mi aplicación RAG alucinaba y cómo lo solucioné
Una vez le hice una demostración de mi bot de soporte RAG a una colega.
El bot le dijo que nuestra política de reembolsos era de 30 días.
Nuestra política real es de 14 días.
El bot no dijo que no estuviera seguro. Inventó una respuesta con total confianza.
El RAG debería detener las alucinaciones. Mi configuración solo las desplazó de lugar.
Corregí esto siguiendo cinco pasos.
- Corrige tu estrategia de fragmentación (chunking)
Solía dividir los documentos por recuento de caracteres. Fue un error.
Un fragmento a menudo mezclaba temas diferentes, como envíos y devoluciones. El modelo combinaba esto en respuestas incorrectas.
La solución: Cambié al fragmentado semántico (semantic chunking). Ahora divido el texto por encabezados y párrafos.
- Deja de confiar solo en las puntuaciones de similitud
Mi recuperador (retriever) extraía los tres fragmentos principales basados en la similitud de coseno.
Similitud no es lo mismo que relevancia. Un fragmento puede parecer similar a una pregunta pero no contener la respuesta.
La solución: Añadí un paso de reordenamiento (reranking) con un cross-encoder. Esto me ayudó a ver cuándo el sistema no tenía datos reales.
- Dale al modelo permiso para fallar
Mi prompt anterior solo decía: Usa el contexto para responder la pregunta.
Si al contexto le faltaba la respuesta, el modelo llenaba los huecos con conjeturas.
La solución: Añadí una instrucción directa. Si la respuesta no está en el contexto, di que no lo sabes. Esto por sí solo detuvo la mayoría de las alucinaciones.
- Establece un umbral de recuperación
A veces el modelo utilizaba conocimientos generales cuando la recuperación fallaba. Esperaba que el prompt funcionara, pero la esperanza no es una estrategia.
La solución: Añadí un límite de puntuación (score cutoff). Si la puntuación de recuperación es demasiado baja, el sistema devuelve una respuesta de respaldo (fallback). Sin contexto significa sin respuesta.
- Prueba para el fallo, no para el éxito
Solía probar solo con preguntas fáciles. Ignoraba las consultas ambiguas y la información faltante.
La solución: Creé un conjunto de evaluación de preguntas trampa. Estos son casos donde la respuesta falta. Realizar estas pruebas con regularidad te muestra exactamente dónde falla tu sistema.
El RAG no elimina las alucinaciones. Las hace controlables.
Mi bot todavía no conoce cada detalle. Pero ahora, admite cuando no está seguro. Eso lo hace utilizable.
Fuente: https://dev.to/pallavi_sharma_10c1a6f1da/why-my-rag-app-kept-hallucinating-and-how-i-fixed-it-3i10
Comunidad de aprendizaje opcional: https://t.me/GyaanSetuAi