Retrival-Augmented Generation (RAG): la sinergia entre memoria y creatividad
Uno de los principales retos a la hora de implementar casos de uso basados en IA generativa textual consiste en dotarle de información externa. Las técnicas de RAG permiten solucionar este problema, dotando a los modelos de lenguaje la capacidad de buscar respuestas en documentación externa sobre la que no han sido entrenados.
¿Qué es RAG?
Consiste en enriquecer la información de la que dispone un modelo de lenguaje
Aunque no tiene una traducción bonita al castellano, es algo así como "generación mejorada mediante recopilación". Consiste en enriquecer la información de la que dispone un modelo de lenguaje para que pueda responder empleando conocimientos adicionales que nunca ha visto, como datos privados financieros o discursos de ventas internos de una compañía. No solo esto, sino que gracias al avance de los modelos open source es posible hacerlo completamente on-premise, de manera que toda la información pueda seguir siendo confidencial.
La idea detrás de RAG es, dado un prompt del usuario a la IA, buscar automáticamente dentro de un cuerpo de conocimiento qué fragmentos de texto se asemejan más a la pregunta que ha hecho el usuario, y utilizar esa información recopilada para construir un nuevo prompt, que incluya tanto la pregunta original como el contexto adicional relevante extraído de la base de conocimiento. Finalmente, con este nuevo prompt, un modelo de lenguaje genera una respuesta.
De esta manera, es posible que este modelo de lenguaje sea capaz de responder apoyándose información adicional a la que se empleó para su entrenamiento, como documentos PDF, emails, bases de datos o webs.
¿Cómo funciona RAG?
Existen diferentes arquitecturas, pero la más básica y frecuente consta de tres etapas:
- Creación de índice: antes de poder realizar consultas, es necesario disponer de la información preprocesada en un formato que permita buscar en ella a gran velocidad. Para ello, los textos se fragmentan en trozos más pequeños que se denominan chunks. Cada uno de estos chunks se hace pasar por un modelo de embedding, que transforma ese fragmento de texto en un vector numérico que idealmente contiene la información sobre la que trata ese chunk. Es decir, fragmentos de texto que se asemejen mucho semánticamente, dado un buen modelo de embedding, deberían generar vectores que se parezcan mucho, incluso aunque ese mismo significado se haya expresado con un vocabulario totalmente distinto. Por el contrario, una pareja de fragmentos de texto que no tengan nada que ver deberían generar vectores muy diferentes. Estos modelos de embedding son el corazón del RAG, y hace que sea más efectivo que una simple búsqueda por palabras clave, ya que la misma idea se puede expresar con muchas palabras diferentes, pero también la misma palabra puede significar cosas que no tienen absolutamente nada que ver.
- Búsqueda: dada una consulta al sistema por parte de un usuario, se realiza una búsqueda vectorial que devuelva aquellos fragmentos de texto que más se parezcan a la pregunta. Esta etapa es crítica para un correcto funcionamiento y existen docenas de técnicas para hacer que funcione mejor. Por ejemplo, combinar esta búsqueda junto con una búsqueda por palabras clave (empleando BM25 y combinando resultados mediante RRF) o crear respuestas hipotéticas y para hacer la búsqueda ya que semánticamente se asemejarán más a los chunks que la pregunta original (Hypothetical Document Embeddings, HyDEs). Existen tantas posibilidades, que sólo esto es un tema para un artículo entero, por lo que no se van a detallar aquí. Pero no por ello hay que menospreciar estas técnicas: que esta etapa funcione bien es el punto más importante de todo el sistema.
- Generación de respuesta: finalmente, se utiliza tanto la pregunta original como los fragmentos de texto recopilados en la etapa anterior para generar una respuesta.
El sistema entero funciona igual que copiar y pegar el texto relevante en chatGPT junto con la pregunta a realizar, con la gran ventaja de no tener que leerse y buscar estos fragmentos de contexto manualmente.
Ventajas del RAG
El RAG permite acceder a vastos recursos de conocimiento almacenado en bases de datos
- Conocimiento actualizado: los modelos de generación de texto pura, aunque son impresionantes en su capacidad para imitar el lenguaje humano, pueden no estar al día o carecer de información sobre temas específicos. RAG permite al modelo complementar sus capacidades creativas con datos externos actualizados y específicos, lo que resulta en respuestas más relevantes y precisas en lugar de vagas y genéricas.
- Memoria expandida: en lugar de depender únicamente de la memoria interna del modelo, el RAG permite acceder a vastos recursos de conocimiento almacenado en bases de datos, documentos de texto desorganizado, emails... Esto permite que el sistema tenga una "memoria infinita" en la práctica, donde la información no se limita solo al conjunto de datos con el que se entrenó el modelo.
- Adaptabilidad: RAG puede personalizar sus respuestas según la información que recupera. Esto lo hace ideal para tareas como la asistencia personalizada, búsqueda de información técnica, generación de contenidos específicos para diferentes industrias, entre otros.
- Reducción de alucinaciones: uno de los problemas comunes en los modelos generativos es la tendencia a producir respuestas que parecen verídicas pero que carecen de una base en hechos reales, conocidas como "alucinaciones". Al incorporar una capa de recuperación de datos verificados, RAG reduce considerablemente la aparición de estas respuestas incorrectas.
Aplicaciones RAG
Los modelos de RAG pueden ayudar a los profesionales a acceder a investigaciones actualizadas
Las aplicaciones de RAG son amplias y variadas, y se expanden a múltiples sectores y casos de uso. Algunas de las más destacadas incluyen:
- Sistemas de atención al cliente: con RAG, las empresas pueden ofrecer a sus clientes respuestas más detalladas y precisas a sus consultas, accediendo a manuales, documentación de productos o bases de conocimiento específicas, mejorando la satisfacción del cliente. Probablemente el caso de uso nº1 en la actualidad sobre RAG.
- Buscadores de información especializados avanzados: por ejemplo, en el campo de la medicina, los modelos de RAG pueden ayudar a los profesionales a acceder a investigaciones actualizadas o artículos médicos cuando se enfrentan a casos clínicos complejos. Los periodistas pueden utilizar sistemas basados en RAG para acceder a datos históricos o informes en tiempo real, lo que permite generar artículos informativos y precisos sobre eventos recientes o investigaciones en curso.
- Generación de contenido especializado: ya sea en campos técnicos como la ingeniería, la economía, las ciencias o simplemente responder un mail, el RAG permite crear contenido que no solo es coherente, sino que también está respaldado por datos actualizados y fiables.
Desafíos y futuro de RAG
Aunque RAG representa un avance significativo en la generación de texto, aún enfrenta ciertos desafíos. La correcta selección de fuentes de datos es crucial para evitar la difusión de información errónea o sesgada. Además, la eficiencia en la recuperación de información es un factor determinante en la calidad de las respuestas.
El Retrieval-Augmented Generation es un paso adelante hacia la creación de sistemas de IA
Es necesario tomar una gran cantidad de buenas decisiones durante el diseño del sistema, además de disponer de un sistema robusto de testeo que garantice que cada cambio en el sistema mejora globalmente los resultados. Por ello es una buena idea desarrollar sistemas de RAG de la mano de un partner experto que ahorre tiempo, re-trabajos innecesarios y dolores de cabeza como Izertis.
El Retrieval-Augmented Generation es un paso adelante hacia la creación de sistemas de IA que no solo sean capaces de generar texto fluido y coherente, sino que también puedan acceder y utilizar información externa en tiempo real para ofrecer respuestas precisas y relevantes. Con su capacidad para combinar la creatividad con el conocimiento, RAG tiene el potencial de transformar industrias enteras, desde la atención al cliente hasta la investigación científica, y marcar una nueva era en la interacción entre humanos y máquinas.