Experiencia con RAG en producción tras procesar más de 5 millones de documentos
(blog.abdellatif.io)- Durante 8 meses trabajando en un proyecto de RAG (generación aumentada por recuperación), se distinguieron los métodos realmente efectivos de los que solo hicieron perder tiempo
- Al inicio se usaron Langchain y Llamaindex para completar rápidamente un prototipo, pero en el feedback de usuarios reales se encontraron límites de rendimiento
- Se identificó que los factores que más mejoraron el rendimiento de la búsqueda documental fueron la generación de consultas, el reranking, la estrategia de chunking, el uso de metadatos y el enrutamiento de consultas
- En la práctica se construyó un pipeline personalizado eligiendo de forma flexible base de datos vectorial, embeddings, reranking y LLM, entre otros componentes
- Toda la experiencia y el know-how se publicaron concentrados en el proyecto open source (agentset-ai/agentset)
Resumen de 8 meses construyendo RAG en producción
- Se comparte la experiencia de construir y operar sistemas RAG sobre datasets de gran escala, como un total de 9 millones de páginas (Usul AI) y 4 millones de páginas (una empresa anónima de IA legal)
- Al principio, siguiendo tutoriales de YouTube, se pasó de Langchain a Llamaindex y se completó un prototipo en pocos días, pero al desplegarlo apareció un problema de bajo rendimiento que solo los usuarios podían notar
- A lo largo de varios meses se fueron ajustando parcialmente los componentes del sistema hasta alcanzar el mejor rendimiento
Factores que realmente aportaron a la mejora del rendimiento (por ROI)
-
Generación de consultas (Query Generation)
- Como la última consulta del usuario no puede contener todo el contexto, se usa un LLM para revisar la conversación y generar varias consultas semánticas y de palabras clave
- Estas consultas se procesan en paralelo y luego se envían a un reranker para ampliar el alcance de la búsqueda y compensar sesgos de la búsqueda híbrida
-
Reranking
- El impacto del reranking en el rendimiento, implementable con unas 5 líneas de código, es mucho mayor de lo que uno imaginaría
- En entradas con muchos chunks (por ejemplo, 50), el proceso de reordenar y seleccionar solo algunos de los mejores (por ejemplo, 15) ofrece el mayor ROI
- Solo con reranking se puede compensar en gran medida lo que le falta a un pipeline con diseño deficiente
-
Estrategia de chunking (Chunking Strategy)
- Fue la parte que más tiempo consumió durante todo el desarrollo
- Es necesario entender con precisión la estructura y los patrones de los datos, hacer chunking en unidades lógicas y revisar manualmente que no se corten palabras o frases a la mitad
- Cada chunk debe conservar un significado independiente
-
Uso de metadatos en la entrada del LLM
- En lugar de enviar al LLM solo el texto del chunk, agregar metadatos (title, author, etc.) mejora mucho el contexto y la calidad de las respuestas
-
Enrutamiento de consultas (Query Routing)
- Para tipos de preguntas que RAG no puede responder (por ejemplo, resúmenes de artículos o solicitudes de información del autor), se introdujo un router liviano que deriva esas consultas hacia una ruta de procesamiento con API + LLM
Stack real (Our stack)
- Base de datos vectorial: Azure → Pinecone → Turbopuffer (económico y con soporte nativo para búsqueda por palabras clave)
- Extracción de documentos: enfoque personalizado
- Herramienta de chunking: principalmente Unstructured.io; para pipelines empresariales, una implementación personalizada (Chonkie también tiene buena reputación)
- Modelo de embeddings: uso de text-embedding-large-3 (no se probaron otros modelos)
- Reranker: None → Cohere 3.5 → Zerank (no es popular, pero en la práctica rinde muy bien)
- LLM: GPT 4.1 → GPT 5 → GPT 4.1 (principalmente usando créditos de Azure)
Open source y conclusión
- Todos los aprendizajes y la experiencia práctica se consolidaron en el proyecto open source agentset-ai/agentset
- Se publica bajo licencia MIT, por lo que puede usarse libremente y se pueden hacer consultas (se proporciona contacto)
1 comentarios
Opiniones de Hacker News