class: center, middle, inverse, title-slide .title[ # Investigación en Inteligencia Artificial Generativa ] .subtitle[ ## ¿Cambio de paradigma en el análisis de datos? ] .author[ ### Diego Fernández - Rodrigo Morás ] .date[ ### 14 de diciembre de 2023 ] --- # Spoiler! Cambio de paradigma en el análisis de datos Antes de la IA Generativa * Análisis manual: Dependencia de expertos para interpretaciones y conclusiones. * Procesos estáticos: Modelos y algoritmos prediseñados, inflexibles ante nuevos tipos de datos. * Tiempo de respuesta: El análisis lleva tiempo y retarda la toma de decisiones. * Escalabilidad limitada: Difícil adaptarse a grandes volúmenes de datos o nuevas fuentes de información. Con la IA Generativa * Automatización avanzada: La IA asiste y amplía el análisis de datos, aprendiendo y adaptándose continuamente. * Interacción en lenguaje natural: Facilidad de consulta y generación de informes en lenguaje comprensible. * Respuestas en tiempo real: Análisis inmediatos que permiten decisiones basadas en datos al momento. * Escalabilidad y adaptabilidad: Capacidad para manejar volúmenes masivos de datos y múltiples fuentes. --- # Introducción a la IA y la IA Generativa - La Inteligencia Artificial (IA) es una disciplina de la informática que se enfoca en el desarrollo de máquinas capaces de imitar las funciones cognitivas humanas. - La IA abarca una variedad de subdisciplinas, cada una orientada a diferentes aspectos y aplicaciones del pensamiento y comportamiento inteligente: <div style="text-align: center;"> <img src="IA.jpeg" width="400px"> </div> --- # Temas abordados con AI <div style="text-align: center;"> <img src="ai.png" width="850px"> </div> --- # Breve historia de la IA <div style="text-align: center;"> <img src="historia.jpeg" width="450px"> </div> --- # IA Generativa y LLMs - La IA generativa es un campo de la IA que se enfoca en crear nuevos datos que son similares a un conjunto de datos de entrenamiento dado. A diferencia de otros enfoques de IA que se centran en la toma de decisiones o el reconocimiento de patrones, la IA generativa puede producir contenidos que no existían previamente, como texto, imágenes, música y otros tipos de datos. - Hay varios métodos y arquitecturas utilizados en la IA generativa, incluyendo por ejemplo: - Redes Generativas Antagónicas (GANs) - Autoencoders Variacionales (VAEs) - Redes de Difusión - En el contexto de los modelos de lenguaje de gran escala (LLMs), la IA generativa se refiere a la capacidad de estos modelos para generar texto coherente y contextualmente relevante. --- # ¿Que són los LLMs y que característica tienen? - Los LLMs son sistemas de aprendizaje automático que se basan en arquitecturas de redes neuronales profundas. Son entrenados en enormes corpus de texto que aprenden patrones, estilos, información y gramática del lenguaje humano (Lenguaje natural). - Algunas características de estos modelos: * Aprendizaje profundo * Entrenamiento con Big Data * Autorregresivos y Bidireccionales * Afinamiento y transferencia de aprendizaje * Generación y comprensión * Interactvidad * Aplicaciones versátiles * Desafíos éticos y de sesgo --- # ¿Qué es GPT? - GPT significa "Generative Pretrained Transformer" y es un tipo de modelo de IA diseñado para entender y generar lenguaje natural. - GPT se basa en una arquitectura de red neuronal llamada "transformer", que utiliza mecanismos de atención para captar contextos y relaciones complejas dentro de los datos de texto. - El modelo es "preentrenado" en un gran corpus de texto, lo que le permite aprender una amplia gama de patrones de lenguaje, desde la gramática y el uso del vocabulario hasta el estilo y la información factual. - El funcionamiento de GPT se basa en la generación de texto mediante la predicción de la siguiente palabra más probable en una secuencia, dada una serie de palabras anteriores. Este proceso se repite palabra por palabra. --- # ¿Qué es LLama 2 y Codellama 2? - Meta LLama 2 y Codellama 2 son dos modelos de lenguaje de gran tamaño desarrollados por Meta AI. Ambos modelos se basan en la arquitectura de transformadores, pero tienen diferentes enfoques y objetivos. Codellama 2 es un modelo de lenguaje especializado en la generación de código. <div style="text-align: center;"> <img src="llama2.png" width="600px"> </div> --- # Proceso de Investigación en IA durante 2023 **Objetivo ¿Cómo utilizar la capacidad generativa de modelos GPT 4.0 y LLama 2?** Los pasos datos en este proceso buscaron responder varias interrongantes - ¿Qué son estos modelos? ¿Qué características tienen? ¿Cómo funcionan? - ¿Como podemos comunicarnos a travez de sus API? ¿Qué lenguajes de programación necesitamos? - ¿Cómo podemos guardar la respuesta dada por los modelos? - ¿Cómo se puede reducir el efecto de "alucinación"? - ¿Qué requerimientos técnicos necesitamos para correr estos modelos? - ¿En qué aplicarlos y de qué manera? --- # ¿En qué aplicarlos? Posibles aplicaciones - Automatización de Informes - Mejora de la Exactitud de Predicciones - Análisis de Sentimiento - Asistencia en la Toma de Decisiones - Interacción y Consultas - Mejora del Acceso a Datos - Formación y capacitación - Cumplimiento y Monitoreo de Regulaciones --- # Estategia de implementación <div style="text-align: center;"> <img src="estrategia.png" width="600px"> </div> # Grupos de trabajo en BCU - Julio 2023 se plantea la iniciativa de formar un grupo de IA entre analistas en el Área de Estadística Económicas del BCU con dos objetivos - Que fuera aceptado como algo institucional - Que fuera lo más colectivo posible - Resultado: * Se formo un grupo de 12 economistas interasados en participar y fue aceptado por las jefaturas y gerencia * El trabajo en este grupo es realizar un diagnóstico de las necesidades del área en tareas de automatización, visualización etc. Este grupo dada la gran cantidad de tareas se paso a llamar Transformación Digital y va a empezar a desarrollar en 2024. - Agosto 2023 se plantea otra iniciativa de formar un grupo pero a nivel de la gerencia de TI con el objetivo de formar un grupo más reducido y con gente más formada en temas de desarrollo. - Resultado: la iniciativa fue aceptda por la Gerencia de TI y se formó el grupo Gen - ARISE. --- # Grupo Gen-ARISE del BCU - Gen-ARISE: Generative Artificial Intelligence Research in Statistics and Economics - Grupo formado para investigar e intentar abordar problemáticas y desarrollar soluciones en base a la IA generativa. - Integrantes: - Rodrigo Morás - Rodrigo Lopez - Alejandro Viera - Diego Fernández --- # Elementos técnicos utilizados - Azure OpenAI - Modelo GPT 4.0 - Modelos Llama 2 y Codellama de META de forma local en MV de Azure y máquinas con GPU tipo Macbook con M1 pro - Lenguaje R y Python - Acceso a Modelo GPT a traves API de Azure. # Lineas de investigación - Investigación en el tema tratando de estar lo más al tanto posible en los adelantos técnicos e intentando mejorar la implementación de los modelos * Intentar aumentar la "memoria" * Diseñar algoritmos que faciliten la comunicación * Intentar introducir IA a paquetes de análisis datos como los tidymodels en R * ¿Cómo reducir la alucinación de estos modelos? * ¿Como realizar finetuning? - Programar script en R y Python para soluciones puntuales - Desarrollo de aplicaciones - Integración de la IA con sistemas ya existentes. --- # Ejemplo 1 solución Necesidad de procesar todas las resoluciones del Directorio del BCU desde el año 1967 hasta 2008 para integrarlas a un sistema desarollado llamado Novadoc que permite hacer consulta y tiene las resoluciones de 2009 a 2023. * Pasar a imagen tipo TIF todas las resoluciones aproximadamente 90.000 * Extraer el texto de estas imagenes * Mandar cada resolucion transformada a GPT para que mejore la redacción * Guardar el resultado en formato TXT y PDF. Solución: - Luego de pasadas a imagen todas las resoluciones se guardaron en 4 carpetas por año desde 1967 a 2008 - Se elaboró un script en python que toma cada Imagen de las carpetas y extra su texto y lo guarda en formato TXT en otras Carpetas. - Se elaboró un segundo código en python que transforma de a uno los archivos TXT en formato pkl utilizando transformes y creando embbedings - Se elaboró un tercer código en python que toma cada archivo pkl y lo envia a GPT 4.0 usando la API de Azure para corregir el texto sin modificar su contenido y el resultado se guarda en otras carpetas en formato TXT y PDF. --- # Imagen original y extracción inicial texto <img src="1.png" width="400px"> <img src="2.png" width="400px"> --- # Resultado de final usando GPT 4.0 <img src="3.png" width="600px"> <img src="4.png" width="600px"> --- # Ejemplos de solución 2 Necesidad de procesar la información obtenida de Zona Franca Nueva Palmira. Se escribieron muchos códigos en R que se ejecutan con código Python en los mismos scripts para recurrir en varias partes del proceso a GPT 4.0. Las interacciones de este desarrollo implica: - Sugerencia de código y posterior ejecución - Analísis de datos utilizando la IA - Chequeo de resultados - Extensión de las series a nivel de microdato hacia atrás --- # Otros ejemplos solución - Webscraping - Detección de valores atípicos - Clasificación - Predicción --- # Desarrollo de aplicaciones web 1) Aplicaciones tipo chatbot que permitan responder sobre el contenido de un documento por ejemplo un manual de Balanza de Pagos, Cuentas Nacionales o ECIM 2010 o informes como por ejemplo los realizados por UTECEM - CT°6. Estas aplicaciones permiten hacer preguntas y la IA generativa responde solo sobre el contenido del documento y a partir de ahi se puede permitir que haga análisis o comparaciones etc. Estas aplicaciones permiten cargar muchos archivos a la vez y un algoritmo desarrollado permite que el modelo encuentre los patrones claves de texto necesarios. 2) Aplicaciones que permiten hacer informes. En este caso se puede conectar a una base SQL o cargar archivos con datos en diferentes formatos (TXT, XLSX, CSV, PDF etc) y a partir de ahi se puede mediante lenguaje natural pedir que redacte un informe. En este caso un algoritmo desarrollado toma la pregunta y busca en la base los patrones clave para devolver el resultado requerido. --- # Desarrollo de aplicaciones web 3) Aplicaciones que permiten hacer análisis de datos mediante lenguaje natural. Estas aplicaciones desarrolladas permiten mediante lenguaje natural pedir hacer un gráfico, filtrar, datos, crear tablas etc. En este caso se desarrollaron algoritmos que permiten a partir de la pregunta traducir en el código necesario en python o R y ejecutar en tiempo real el resultado. 4) Aplicación que integra funcionalidades de las 3 anteriores - Se toman datos sin procesar - Se carga un script en base a palabras indicando que tipo de análisis se necesita hacer a esos datos - Se obtiene el resultado y se guarda en variables - Esas variables a su vez se vuelven a mandar al modelo para que las analice y compare - Finalmente se le pide que genere un texto Proceso automatizado de forma que a partir de cualquier base es posible automáticamente generar un informe con tablas, gráficos y texto.