Con el lanzamiento de CleanBot, nuestro proyecto de recomendación de productos de limpieza e higiene a nivel profesional basado en IA para Higiene Global Orbis, me he dado cuenta de cuan desconocida es esta tecnología y sin embargo es algo que se utiliza muchísimo en todo lo que tiene que ver con preparar un sistema de Inteligencia Artificial para que responda a las preguntas que le hacemos. Por ello, quiero pararme a entrar en el detalle de como funciona esta tecnología.
Antes de nada, explicaré lo que es un RAG con una analogía muy sencilla. Imagina que estás en una biblioteca para buscar una información en concreto. Tu proceso sería primero buscar el libro que pueda tener el conocimiento que necesitas y después buscar dentro de dicho libro para llegar a lo que quieres saber. Pues bien, un RAG es como si tuvieras un ayudante al que le pides que haga todo eso por ti, y te devuelve una respuesta rápida y precisa.
RAG significa Retrieval Augmented Generation, pero para entenderlo del todo bien, lo podríamos traducir como generación de respuestas mediante recuperación de información, que aclara mejor el proceso: primero busca (recupera) la información relevante, y luego genera una respuesta con ella.
¿Y cuáles son los elementos clave de un RAG y cómo se construye? Pues vamos a ello:
1. Base de conocimiento:
Qué es: Es una gran colección de datos o documentos (puede ser una base de datos, una biblioteca de textos, artículos, emails, etc.).
Función: Es de donde el sistema busca información relevante. Puede estar en forma de texto estructurado o no estructurado.
Ejemplo: Documentos, PDFs, sitios web, bases de datos de productos.
2. Módulo de búsqueda (Retriever):
Qué es: Es la parte del sistema encargada de buscar y recuperar la información más relevante en la base de conocimiento.
Función: Cuando haces una pregunta, el retriever busca en los datos y encuentra las partes más útiles o relacionadas con la consulta.
Cómo funciona: Utiliza técnicas de embeddings (ver más adelante), que convierten el texto en números para hacer la búsqueda más eficiente.
Ejemplo: Si preguntas algo sobre "perros", el retriever buscará fragmentos de texto en la base de conocimiento que mencionen perros.
3. Modelo generativo (Generator):
Qué es: Es el cerebro creativo del sistema, como un modelo de lenguaje (por ejemplo, GPT) que usa la información encontrada para generar una respuesta comprensible.
Función: Después de que el retriever encuentra información, el generador la usa para crear una respuesta coherente, detallada y a veces mejorada con su propia capacidad de lenguaje.
Cómo funciona: Toma los fragmentos de texto recuperados y genera una respuesta más completa o fluida.
Ejemplo: Si el retriever encontró varios textos sobre cómo cuidar perros, el generador tomará esos fragmentos y creará una explicación clara de los cuidados de los perros.
4. Modelo de Embeddings:
Qué es: Es una herramienta matemática que convierte palabras o frases en vectores (conjuntos de números) que representan el significado de esas palabras.
Función: Ayuda al retriever a comparar las palabras de la consulta con el contenido de la base de conocimiento de manera más precisa.
Ejemplo: "Perros" y "mascotas" se pueden representar con vectores cercanos, lo que ayuda a encontrar información relevante sobre ambos.
5. Proceso de construcción de un RAG:
Crear o conectar una base de conocimiento:
Necesitas tener un lugar donde almacenar tus documentos o datos (puede ser una base de datos o un sistema de almacenamiento como S3).
Configurar el módulo de búsqueda (Retriever):
Implementa un sistema de búsqueda que permita buscar fragmentos de texto. Nostros hemos usado una base de datos vectorial que se llama Milvus, para hacer búsquedas más rápidas y eficientes.
Entrenar o integrar un modelo generativo:
Conecta un modelo de lenguaje avanzado (nosotros trabajamos con GPT) para que pueda generar respuestas usando los datos recuperados.
Entrenar el modelo de embeddings:
Puedes usar un modelo preentrenado como Sentence Transformers para representar tus datos y consultas en vectores, y luego utilizar esos vectores para comparar qué información es relevante.
Integrar los módulos:
Finalmente, unes todos estos elementos. Cuando un usuario hace una pregunta, el sistema primero busca en la base de conocimiento (Retriever), luego envía la información al generador (Generator) que crea una respuesta basada en esos datos.
Resumen:
Base de conocimiento: Donde están los datos.
Retriever: Busca la información relevante.
Generador: Crea una respuesta con esa información.
Embeddings: Representa las palabras para hacer la búsqueda más precisa.
Estos componentes, trabajando juntos, permiten a un sistema RAG encontrar respuestas en grandes volúmenes de datos y presentarlas de manera clara y efectiva.
Espero que este pequeño resumen haya sido práctico para comprender mejor como funciona esta tecnología tan útil.