Entrevista sobre cómo aplicar Inteligencia Artificial Generativa

Entrevista sobre cómo aplicar Inteligencia Artificial Generativa

Inteligencia Artificial

En este artículo, entrevistamos a Carlos Narciso, Project Manager en diversos proyectos de Inteligencia Artificial, y con él hablaremos de qué hace falta para aplicar Inteligencia Artificial Generativa: la arquitectura, los datos y conceptos técnicos como RAG, LLM, alucinaciones, fine-tuning…

Entendiendo la Inteligencia Artificial Generativa:

1. Ahora es todo IA. Es lo que estamos viviendo y es lo que está revolucionando el sector de la tecnología. Entonces, empezamos por el principio: ¿Cómo funcionan este tipo de soluciones de Inteligencia Artificial Generativa? ¿Qué hace falta?

Este tipo de soluciones tienen como objetivo proporcionar información a los usuarios en un formato conversación. Para ello, hace falta definir el caso de uso que queramos tratar.  Una vez definido, deberemos implementar un RAG que contenga información precisa y verificable que puedan trasladar como contexto conversacional a un modelo de lenguaje natural para generar una respuesta adecuada.

2. Suena interesante, pero para los que tienen un perfil menos técnico, ¿nos puedes contar qué es un RAG? 

Una arquitectura RAG, que hace referencia a Retrieval Augmented Generation, es una técnica avanzada de inteligencia artificial que combina el procesamiento del lenguaje natural (NLP) con sistemas de recuperación de información. Esta metodología mejora significativamente la generación de texto al permitir que los modelos de lenguaje se basen en una base de datos específica para construir sus respuestas. Esta "caja" de información previene el uso de datos externos por parte del modelo, evitando así respuestas incorrectas o alucinaciones.

Los Modelos de Lenguaje de Gran Tamaño (LLM por sus siglas en inglés), como GPT, son redes neuronales de amplia capacidad entrenadas en grandes cantidades de texto mediante aprendizaje autosupervisado. Estos modelos poseen un contexto conversacional extenso, lo que les permite dialogar sobre una amplia variedad casi ilimitada de temas. Sin embargo, cuando se enfrentan a consultas de dominios específicos, como información detallada sobre una empresa, su rendimiento puede ser impreciso debido a la falta de acceso directo a datos específicos.

Relación entre RAG y LLM:

Ahí es dónde entra la relación entre RAG y LLM. 

La integración de RAG con LLM es crucial para superar esta limitación. Mientras que el LLM ofrece la capacidad de generar diálogos coherentes y fluidos sobre una amplia gama de temas, el RAG proporciona la "experiencia" necesaria en temas específicos. Al informar al modelo LLM que genere respuestas basándose en la información específica proporcionada por el RAG, se logra una sinergia que permite al modelo actuar como un experto en el tema. 

En esencia, el RAG dirige al LLM para que utilice únicamente la información relevante y actualizada durante la generación de respuestas, acotando el contexto conversacional a lo que es verdaderamente importante.

3. ¿Cuál es su principal ventaja? ¿y el desafío más importante?

La ventaja principal de esta solución de arquitectura es que acotamos el contexto conversacional y lo adaptamos para que dé la información que nos interesa en cada momento.

El principal desafío para arquitecturas RAG + LLM es que hay que entender que la generación de la respuesta dependerá de la información contenida en el RAG. Es decir, la información debe existir y debe estar actualizada. 

Además, es importante disponer de una correcta arquitectura de datos ya que nos permitirá que el contexto conversacional disponga de la información necesaria y que esta sea lo más precisa posible.

4. ¿Qué es necesario para una arquitectura de datos correcta?

Datos fiables y actualizados. Un buen gobierno del dato que permita dar contexto de los mismos a los modelos de lenguaje que lo usen.

Las empresas que tengan una estratégia de datos más madura podrán ser capaces de generar un contexto conversacional mejor que las que no la tengan. Aunque también podemos poner en marcha soluciones cuyo contexto conversacional se base en información contenida en un portal web o incluso en documentación de todo tipo que esté generada.

Los RAGs que ofrecen los servicios Cloud disponen de las herramientas para poder afrontar con éxito la integración de diferentes datasources y mantenerlos actualizados.

5. Un término que suele mencionarse cuando se habla de IA es el de “alucinaciones”

Este tipo de soluciones están muy confiadas y siempre van a intentar dar un respuesta, esto puede ser un problema porque pueden llegar a trasladar información directamente incorrecta, a esto es a lo que se le llama alucinaciones.

6. ¿Cómo se pueden evitar?

Nosotros planteamos siempre una estrategia que se divide en dos grandes bloques:

  • Acotar el contexto conversacional, es decir los recursos que el RAG va a disponer y que se pasan al modelo de lenguaje para generar una respuesta. Cuando el RAG tiene mucha información, puede que el recurso que obtenga para hacerle llegar el contenido al LLM no sea el que queremos. Por eso es importante acotar bien la información e ir añadiendo poco a poco nueva información haciendo que la solución cada vez disponga de más contexto conversacional.
     
  • Fine-tuning: Inevitable en este tipo de soluciones. Consiste en afinar la solución para que cuando te pregunten por un tema concreto vaya a buscarlo en los recursos que le marques. Para eso es necesario tener en cuenta que este tipo de proyectos se deben realizar de la mano del cliente, acompañándolo en todo el proceso para refinar la solución.
7. Interesante el Fine-Tuning, ¿cómo se pueden ajustar los modelos de IAG para obtener respuestas más precisas y en el tono deseado?

Hay varias estratégias a la hora de afinar las respuestas que ofrecen este tipo de soluciones. Si te parece, comentamos 3:

  • Priorizar los resultados: la pregunta lanzada por el usuario llega primero al RAG, donde buscará las fuentes de información. Es posible que esa respuesta se encuentre en diversos recursos del RAG y que algunos sean más importantes que otros con tal que la respuesta se adapte al interés real de la pregunta. Para esto es importante hacer un trabajo de priorización de estos resultados que finalmente se lanzan al LLM para generarla.
  • Acotar correctamente la información contenida en el RAG, esto implica excluir también cierta información que pueda acabar “confundiendo” al modelo de lenguaje elegido.
    Incluir manualmente información al RAG que permita dar respuesta a preguntas que sean transversales a la organización y no solo al contexto conversacional. Es decir, si hacemos un chatbot de asignaturas libres para una Universidad, no solo queremos incluir información de las asignaturas, sinó también información transversal como el método de estudio, contactar u otras particularidades de la organización.
  • Modificando la pregunta: A la pregunta que le hacemos a la IA se le llama PROMPT. En función de este Prompt, el resultado puede ser diferente. Este tipo de soluciones funcionan haciendo llegar al LLM un PROMPT que suele ser algo así:

prompt_template = """

            La siguiente es una conversación amistosa entre un humano y una IA.

            La IA es comunicativa y proporciona muchos detalles específicos de su contexto.

            Si la IA no sabe la respuesta a una pregunta, contesta sinceramente que no lo sabe.

            {context}

            Instrucción: Basándose en los documentos anteriores, proporcione una respuesta detallada a {question} Responda "información no encontrada" si no está presente en el documento. Solución:

          """

Aunque hay más, considero que estas cuatro acciones de refinamiento son imprescindibles antes de desplegar este tipo de soluciones.

Una vez puesto a disposición de los usuarios, será importante abrir un periodo de monitorización activa y seguir aplicando fine-tuning. 

8. Háblame de la implementación

Aunque hay más opciones, voy a mostraros cuál sería la arquitectura con AWS y cuál sería con Azure. 

Con AWS:

aws

Con AZURE:

azure

Es importante entender que, aunque no se tratan de arquitecturas excesivamente complejas hay que conocer en profundidad los servicios que se están haciendo servir ya que todo el proceso de fine-tuning posterior puede llegar a ser extremadamente complejo. 

Bueno, aunque podíamos tirarnos todo el día hablando de esto, yo creo que ya le hemos dado un buen repaso a este tipo de soluciones, así que si te parece lo dejamos aquí. ¡Muchas gracias por la charla!

Si quieres ver esta entrevista a Carlos Narciso, puedes acceder al vídeo aquí.