Construir una base de conocimientos RAG
Qué cubre este artículo sobre bases de conocimientos RAG
- Qué es una base de conocimientos RAG.
- Cómo preparar, dividir y almacenar documentos.
- Cómo funcionan las bases de datos vectoriales y los embeddings.
- Cómo responder consultas de forma semántica.
- Mejores prácticas, errores comunes y consejos de mantenimiento.
Introducción: Base de conocimientos RAG
Una base de conocimientos RAG conecta tus propios documentos con un modelo de lenguaje. En lugar de depender del conocimiento con el que se entrenó el modelo, recupera contenido relevante de la base de datos y lo proporciona como contexto. Esto genera respuestas precisas, actuales y verificables. Cuando se ejecuta localmente, todos los datos permanecen dentro de tu red.
Este tipo de bases de conocimientos resultan útiles para empresas, escuelas, organizaciones sin fines de lucro y proyectos personales. Son la base técnica de bots de conocimiento, sistemas de FAQ y motores de búsqueda internos.
¿Por qué necesito una base de conocimientos RAG?
- Conocimiento actualizado: El modelo accede a documentos recientes.
- Referencias verificables: Las respuestas pueden respaldarse con fuentes.
- Eficiencia: La búsqueda y lectura se reemplazan por preguntas.
- Escalabilidad: Muchos documentos a través de una única interfaz.
- Control: Tú decides qué contenido está disponible.
Estructura de una base de conocimientos RAG
- Recopilar conocimiento: Documentos, FAQs, manuales.
- Limpiar documentos: Unificar formatos.
- Extraer texto: Convertir PDF, DOCX, HTML a Markdown o texto plano.
- Chunking: Dividir en secciones significativas.
- Crear embeddings: Generar vectores con un modelo de embedding.
- Almacenar: Guardar en una base de datos vectorial.
- Retrieval: Encontrar chunks relevantes para la consulta.
- Generar respuesta: El LLM formula la respuesta.
- Mostrar fuentes: Indicar el origen del contenido.
Conceptos clave
- Corpus: Conjunto completo de documentos.
- Chunk: Un fragmento individual de texto.
- Embedding: Vector que representa el texto semánticamente.
- Base de datos vectorial: Almacenamiento para vectores.
- Similarity Search: Búsqueda de similitud en la base de datos vectorial.
- Top-K: Número de resultados devueltos.
- Reranking: Reordenamiento posterior de los resultados.
- Citation: Referencia de fuente.
Herramientas para bases de conocimientos RAG
- Chroma: Base de datos vectorial simple.
- Qdrant: Potente y escalable.
- pgvector: Extensión para Postgres.
- Weaviate: Base de datos lista para empresa.
- LangChain y LlamaIndex: Frameworks para RAG.
- Open WebUI: Interfaz amigable.
- AnythingLLM: Sistema de chat con documentos listo para usar.
Preparación de documentos
- Formatos uniformes: Preferir Markdown o texto plano.
- Eliminar contenido obsoleto: De lo contrario, el bot responderá incorrectamente.
- Mantener estructura: Preservar encabezados y párrafos.
- Metadatos: Guardar título, fecha, autor, categoría.
- OCR: Reconocer PDFs escaneados antes.
Estrategias de chunking
- Chunking fijo: Tamaño igual para cada sección.
- Solapamiento: Los chunks se superponen ligeramente.
- Chunking semántico: Dividir por contenido.
- Chunking estructural: Dividir por encabezados o páginas.
Para muchas aplicaciones, tamaños de chunk entre 500 y 1000 caracteres con 100 caracteres de solapamiento son suficientes.
Optimización de RAG
- Buen modelo de embedding: Modelos en alemán como BGE o nomic.
- Reranking: Mejorar la relevancia de los resultados.
- Búsqueda híbrida: Combinación de búsqueda vectorial y por palabras clave.
- Filtros: Restringir por metadatos.
- Prompt Engineering: Instrucciones claras en la plantilla RAG.
- Referencias de fuentes: Generar confianza.
Trampas comunes
- Contenido obsoleto: El bot responde con conocimiento antiguo.
- Chunks deficientes: Se pierde el contexto.
- Modelo de embedding incorrecto: Los resultados no son semánticamente relevantes.
- Sin referencias de fuentes: Las respuestas no son verificables.
- Demasiados resultados: El prompt se sobrecarga.
- Falta de metadatos: Filtros y permisos resultan difíciles.
Enlaces e información adicional
- BotServ.de RAG Local
- BotServ.de Modelos de Embedding
- BotServ.de Modelos de Reranking
- BotServ.de Bot de conocimiento interno
- BotServ.de Bot de FAQ
FAQ: Base de conocimientos RAG
¿Cuántos documentos necesito? Con 50 a 100 documentos ya puedes empezar.
¿Cuál es la base de datos vectorial más simple? Chroma es una buena opción para comenzar.
¿Puedo indexar sitios web? Sí, mediante web scraping o exportándolos manualmente a formato texto.
¿Con qué frecuencia debo reindexar? Cada vez que haya cambios importantes o regularmente cada trimestre.
¿Es RAG mejor que fine-tuning puro? Para bases de conocimiento que cambian constantemente, sí. RAG permanece actualizado y es más económico.
Fuentes y lecturas adicionales
- Chroma: https://www.trychroma.com/
- Qdrant: https://qdrant.tech/
- LangChain RAG: https://python.langchain.com/docs/use_cases/question_answering/
Resumen: Construir una base de conocimientos RAG
Una base de conocimientos RAG conecta tus propios documentos con modelos de lenguaje locales. Proporciona respuestas actuales y basadas en fuentes desde tu propio acervo de conocimiento. Lo importante es preparar documentos limpios, hacer un buen chunking, elegir modelos de embedding y reranking apropiados, usar bases de datos vectoriales sensatas y realizar mantenimiento regular. Cuando construyes RAG correctamente, creas una base sólida para bots de conocimiento, sistemas de FAQ y soluciones de búsqueda interna.


