El lanzamiento de ChatGPT marcó un antes y un después en el universo de la inteligencia artificial generativa (IA generativa). Concretamente, se inició una avalancha de nuevos grandes modelos de lenguaje generativos (LLMs por sus siglas en inglés) como Llama, Falcon, Claude, Bard, Gemini, etc. A pesar de las impresionantes capacidades de algunos de estos modelos, dos preguntas recurrentes son: ¿cómo sé que el modelo no se está inventando las respuestas? y ¿cómo puedo usar modelos generativos en mi empresa?
En este post hablaremos sobre RAG, una técnica que mejora las respuestas y mitiga las denominadas “alucinaciones” de un modelo generativo al darle información específica y actualizada en la que basarse. Y a su vez, sobre los sistemas de RAG, una de las aplicaciones de IA generativa que más se está implementando en las organizaciones, al poder utilizar sus propios textos y documentos.
¿Qué es un sistema de RAG?
El término RAG son siglas provenientes del inglés cuyo significado es “Retrieval Augmented Generation”, que traducido al castellano sería algo así como “Generación Mejorada por Recuperación”. La generación mejorada por recuperación es una técnica que consiste en suministrar texto recuperado de una base de conocimiento a un modelo de lenguaje generativo. De esta forma, el modelo generativo podrá contestar a las preguntas del usuario con respuestas más relevantes y útiles, guiadas por dicha información recuperada.
A menudo, también se emplea el término RAG para hacer referencia al propio sistema que implementa esta técnica. Es decir, cuando uno habla de “un RAG” o “un sistema de RAG” se está refiriendo al sistema completo o aplicación que permite a un usuario interactuar con un chatbot cuyas respuestas están basadas en los textos o documentos dados.
¿Cómo funcionan los sistemas de RAG?
Los sistemas de RAG tienen dos piezas claramente diferenciadas:
- Pieza de recuperación de información
- Pieza de generación de respuestas y chat
La pieza de recuperación de información se encarga de buscar contenidos relevantes para responder a la pregunta del usuario en la base de conocimiento. Estos contenidos relevantes habitualmente son trozos de texto extraídos de documentos pdf que estén alojados la misma, pero también podrían ser otro tipo de archivos como imágenes o audios.
Por otro lado, el core de la pieza de generación de respuestas es un modelo de lenguaje generativo, que recoge como entrada la pregunta del usuario y los textos relevantes que se ha encargado de encontrar la pieza de recuperación. La función del LLM generativo es sintetizar los trozos de información que responden a la pregunta del usuario en una única respuesta coherente y consistente, y mantener una conversación en el chat para que el usuario pueda repreguntar.
Aplicaciones y ventajas de un sistema de RAG
La principal función de un sistema de RAG es hacer consultas contra una base de documentos, por lo que estamos hablando de una herramienta muy versátil que puede usarse en una gran variedad de aplicaciones en sectores muy diversos.
Os dejamos algunos ejemplos:
- Chatbot contra documentación interna de una empresa para sus empleados.
- Acelerar la investigación legal chateando contra la jurisprudencia relevante, legislación vigente y contratos.
- Búsqueda contra una base de expedientes clínicos para encontrar casos similares y complementar el conocimiento experto del médico.
- Chatbot de soporte y atención al cliente, para que pueda consultar información sobre los productos de una empresa.
- Asistente a desarrolladores con documentación y manuales de los sistemas informáticos de la empresa.
Como vemos, un RAG orienta a un modelo generativo para que sus respuestas sean más relevantes, útiles y factuales. Es especialmente útil en casos en los que la naturaleza privada de los datos impide que se puedan hacer consultas sobre ellos en las soluciones más comunes como ChatGPT. En concreto, su uso frente a los modelos de lenguaje generales sería indispensable en las siguientes circunstancias:
- Se necesita reducir al máximo las alucinaciones del modelo generativo. Lo importante de las respuestas del modelo es que sean factuales, no creativas.
- Es necesario acceder a información o documentos que se actualizan periódicamente.
- Hay que tener un acceso granular a la información, es decir, no todos los usuarios pueden acceder a la información contenida en todos los documentos.
- Dado que los documentos son privados no se pueden enviar a la API de un tercero, sino que es necesario mantenerlos en servidores locales o en la nube propia.
En resumen, un sistema de RAG es la manera más directa de explotar el potencial de la IA generativa en una aplicación práctica para las organizaciones. Se facilita el acceso a la información, se aceleran procesos de búsqueda y se aumenta la productividad, todo ello pudiendo asegurar la privacidad de los documentos utilizados.
Investigamos en sistemas de RAG
Existen diversas líneas de mejora para los sistemas de RAG, desde incluir nuevos tipos de información dentro de la base de conocimiento (vídeos, libros de excel, etc.), el perfeccionamiento del modelo de lenguaje generativo o soluciones de recuperación más rápidas y precisas.
En el IIC investigamos estas técnicas con nuestro propio modelo de lenguaje generativo (RigoChat) como base. Para ello trabajamos en dos aspectos que creemos clave: la adaptación de RigoChat a documentos y textos de diferentes dominios y el despliegue e integración de las aplicaciones de RAG en cualquier tipo de plataforma (on-premise, AWS, Azure, Google Cloud, etc.). Sin duda, aprovechar las ventajas de las técnicas de RAG y, en general, de procesamiento de lenguaje natural, pasa por desarrollar aplicaciones prácticas y adaptadas a las organizaciones.