La Inteligencia Artificial no deja de ser noticia a nuestro alrededor. Esta tecnología con más de medio siglo de vida, está viviendo su edad dorada en los últimos años. En este proceso de crecimiento y expansión, la divulgación se convierte en una de las patas imprescindibles. Así pues, Spain AI, red nacional y asociación sin ánimo de lucro, con la finalidad de crear una comunidad colaborativa dentro del ámbito de la Inteligencia Artificial en España, organizó el pasado 27 de junio en Madrid uno de sus míticos eventos en el espacio Madrid Innovation Lab, más conocido como MIL.
Este encuentro coorganizado con el Ayuntamiento de Madrid, MadridAI reunió a casi 100 personas, poniendo broche final al curso lectivo de la comunidad en la capital donde surgió el movimiento.
A lo largo del encuentro, contaron con diferentes ponentes. Miguel Angel Rodriguez, Subdirector General de Sistemas y Tecnología en Informática del Ayuntamiento de Madrid, fue el encargado de dar la bienvenida. Tras su intervención dio paso a cada una de las ponencias que estaban programadas para la jornada.
En primer lugar, Coral García, Senior Data Scientist en Santalucía, y Eduardo Fernández, Lead Data Scientist & AI Engineer en Santalucía, fueron los protagonistas de la ponencia “IA generativa para pregunta respuesta. Dominando los RAGs con llama-Index”.
A lo largo de su sesión, Coral y Eduardo explicaron el proyecto en el que han estado trabajando durante el último año. Tal y como destacaron, esta nueva iniciativa surge de las limitaciones de ChatGPT y, concretamente, de plantearse la siguiente pregunta “¿podríamos generar un ChatGPT con información interna de Santalucía?” A raíz de esta duda, el equipo empezó a plantearse el desarrollo de una herramienta interna que fuese útil para todos, es decir, para los más de 15.000 empleados que tiene la compañía.
Sin embargo, no era una tarea fácil, esta nueva herramienta tenía que cumplir una serie de requisitos. En primer lugar, nutrieron al sistema con información primaria, procedente de la propia compañía; seguidamente cargaron un uso masivo de documentos. Continuaron el proceso revisando la seguridad, determinando quién y a qué se podía acceder.
Realizados dichos pasos, comenzaron a trabajar en los falsos positivos y en los procesos que iban a permitir que el sistema tuviera la información actualizada. Además, querían una interfaz amigable, que asegurara una utilización sencilla, que fuera conversacional para favorecer la coherencia de la herramienta, que no tenga alucinaciones, tiene que ser precisa.
Con esta idea, nació la herramienta de la compañía. Sin embargo, a lo largo de la intervención Coral y Eduardo explicaron cómo trabajaron con las RAG para evitar los falsos positivos. Para ello, se apoyaron en las tres partes que componen las RAG: retrieval, augmented y generation.
- Retrieval: los falsos positivos aparecen porque no se están recuperando de forma correcta los fragmentos de los textos que responden a la pregunta del usuario. Las causas pueden ser debido a la complejidad del documento original y esto se traduce en la dificultad de crear fragmentos de texto o chunks que contengan toda la información necesaria para responder a las preguntas. Otra causa puede ser la homogeneidad del documento, lo que causa que el retriever va a recuperar todos los fragmentos relacionados, sean del documento que sean. Para solucionar la complejidad del documento se apuesta por sistemas como el procesamiento de los documentos con GPT4-Vision + Prompt o el uso del Routering Query Engines de Llama-Index.
- Augmented: los falsos positivos aparecen porque los fragmentos generados no tienen suficiente contexto como para entender bien la información que se le está proporcionando. Para mitigarlo se apuesta por el enriquecimiento del metadato de los nódos con los metadata extractor de Llama-Index.
- Generation: los falsos positivos aparecen porque el LLM no genera la respuesta apropiada para la pregunta del usuario. En este caso, se deberá generar un prompt más concreto y potente.
Además, durante su intervención Coral y Eduardo compartieron varios casos prácticos en los que se explicaba cada una de las problemáticas y sus soluciones. El caso de Santalucía pone de manifiesto cómo la IA Generativa puede ser un recurso eficiente y óptimo a nivel interno.
Tras su intervención, llegó el turno de Irene Cid, Business Technology Lead en IBM, y Celeste López, AI Engineer en IBM, que titularon su ponencia “Instruct Lab ¿Cómo reentrenar sin tener que fine-tunnear el modelo completo?”. Durante la sesión, Irene y Celeste se centraron en explicar cómo habían mejorado la capacidad del LLM en la fase de Instruction Tuning gracias al sistema Instruct Lab.
En este punto del entrenamiento (Instruction Tuning), el equipo se encontró con varios desafíos que decidieron solventar generando datos sintéticos de forma controlada y localizada siguiendo una estructura que se utilizará para entrenar al modelo. Una tarea compleja para la que necesitaron recurrir a la “Taxonomía”, un sistema que como Irene indica es “como un armario bien ordenado” y que está publicado en su paper «LAB: Large-scale aligment for chatbots», que dio lugar a Instruct Lab.
Siguiendo esta metodología, Irene y Celeste nos explican que dos sistemas se podrían seguir para entrenar y mejorar al modelo al que le falta información. Un modelo al que han denominado en el paper “estudiante”. En primer lugar, para entrenar conocimiento concreto estático se necesitaría un repositorio de información adicional y cinco ejemplos (o más). Con estos datos, el sistema ya generaría datos sintéticos. En segundo lugar, también se puede entrenar una habilidad en concreto, para este sistema, solo necesitaríamos cinco ejemplos manuales.
Pero eso no es todo, siguiendo con lo publicado en el paper, el sistema también cuenta con un “modelo profesor” que genera los datos sintéticos guiados por esa jerarquía para que no se vaya por las ramas, evitando sesgos dentro de la información que le estamos suministrando. Un punto importante dado que los datos se utilizarán para reentrenar el propio modelo, haciendo uso del «modo estudiante” explicado anteriormente. Además, cada vez que se genera un dato sintético hay un “modelo juez” que avisa si el dato generado es fiable o no. De este modo, se generan dos listados: los datos aceptados y los descartados.
Tras la explicación en detalle de los diferentes modos, Celeste pasa a explicar en tiempo real cómo funciona el sistema y qué oportunidades ofrece en la consola una vez que está instalado Instruc Lab (iLab) en tu terminal. Para terminar la sesión, Celeste e Irene destacaron cuáles son los grandes aportes de esta nueva herramienta, que resumieron en:
- Democratiza la generación de taxonomías a equipos menos técnicos que tienen el conocimiento de negocio.
- Se invierten menos recursos y tiempo para conseguir que el modelo funcione como espero.
- Aprovechan las taxonomías generadas por la economía opensource.
El encuentro finalizó con una ronda de preguntas para los ponentes y el networking que tanto caracteriza a esta comunidad. Si eres un apasionad@ del mundo de la IA te recomendamos que sigas muy de cerca a esta comunidad que está presente en más de 31 localidades. Y, por supuesto, no te pierdas el vídeo completo del evento.