En los últimos meses hemos asistido al auge de la llamada «IA Generativa«, que es un subcampo de la Inteligencia Artificial (IA). Herramientas como ChatGPT se han convertido en una de las palabras más pronunciadas y se están convirtiendo en herramientas fundamentales para las tareas cotidianas de muchos trabajos (incluso para aprender a programar).
Palabras como «DALL-E», «ChatGPT» e «IA Generativa» han invadido las redes sociales, los medios de comunicación, las charlas con colegas y todo lo relacionado con nuestro mundo en los últimos meses. Literalmente, todo el mundo habla de ello.
Pero, ¿qué es la IA generativa? ¿Por qué es diferente de la IA «normal»?
En este artículo, aclararemos el panorama general de la IA generativa. Así que, si has participado en debates pero no tienes las ideas claras sobre este tema, este artículo es definitivamente para ti.
Se trata de una explicación discursiva para entender lo básico de lo que hay detrás del mundo IA generativa. Así que no te preocupes: aquí no encontrarás ningún código. Sólo ideas y descripciones, que se presentarán de forma breve y concisa. En particular, nos centraremos en los grandes modelos del lenguaje y en los modelos de generación de imágenes.
Tabla de contenidos
¿Qué es la IA generativa y en qué se diferencia de la IA tradicional?
La IA generativa es un subcampo de la IA que consiste en crear algoritmos capaces de generar nuevos datos, como imágenes, texto, código y música.
La gran diferencia entre la IA generativa y la «IA tradicional» es que la primera genera nuevos datos basándose en los datos de entrenamiento. Además, funciona con tipos de datos que la «IA tradicional» no puede.
Digámoslo de forma un poco más técnica:
- La «IA tradicional» puede definirse como IA discriminativa. En este caso, de hecho, entrenamos modelos de Machine Learning para que puedan hacer predicciones o clasificaciones sobre datos nuevos y no vistos. Estos modelos de ML sólo pueden trabajar con números y, a veces, con texto (por ejemplo, en el caso del Procesamiento del Lenguaje Natural).
- En la IA generativa, entrenamos un modelo de ML y éste crea un resultado similar a los datos con los que ha sido entrenado. Estos tipos de modelos de ML pueden trabajar con diferentes tipos de datos como números, texto, imágenes y audio.
Visualicemos los procesos:
En la IA tradicional, entrenamos un modelo de ML para que aprenda de los datos. Entonces, lo alimentamos con datos nuevos y no vistos y puede discriminar, haciendo predicciones o clasificaciones.
En el ejemplo presentado, hemos entrenado un modelo ML para reconocer perros a partir de imágenes.
A continuación, alimentamos el modelo ML entrenado con imágenes nuevas y no vistas de perros y será capaz de clasificar si estas nuevas imágenes representan perros o no.
Esta es la tarea típica de un algoritmo de Deep Learning, en el caso de un problema de clasificación.
En el caso de la IA generativa, en cambio, entrenamos un modelo de ML con datos procedentes de diversas fuentes utilizando una gran cantidad de datos. Después, gracias a un prompt (una consulta en lenguaje natural insertada por un usuario), el modelo nos da una salida que es similar a los datos con los que ha sido entrenado.
Siguiendo con el ejemplo, nuestro modelo se ha entrenado con una enorme cantidad de datos (de texto) que, entre otras cosas, explican qué es un perro. Entonces, si un usuario consulta el modelo preguntando qué es un perro, el modelo describirá qué es un perro en lenguaje natural.
Esta es la tarea típica que realizan herramientas como ChatGPT.
Veamos ahora algunos tipos de modelos generativos de IA.
Grandes modelos lingüísticos
Empecemos a sumergirnos en los distintos tipos de subcampos de la IA generativa comenzando por los modelos lingüísticos de gran tamaño (LLM). Un LLM es (según Wikipedia):
un modelo lingüístico informatizado que consiste en una red neuronal artificial con muchos parámetros (de decenas de millones a miles de millones), entrenada con grandes cantidades de texto sin etiquetar mediante aprendizaje autosupervisado o semisupervisado.
Aunque el término gran modelo lingüístico no tiene una definición formal, a menudo se refiere a modelos de deep learning con millones o incluso miles de millones de parámetros, que han sido «pre-entrenados» en un gran corpus.
Así pues, los LLM son modelos de aprendizaje profundo (Deep Learning, DL) (también conocidos como redes neuronales) entrenados con millones de parámetros en una enorme cantidad de texto (por eso los llamamos «grandes») y son útiles para resolver algunos problemas lingüísticos como:
- Clasificación de textos
- Preguntas y respuestas
- Resumen de documentos
- Generación de textos
Así pues, otra diferencia importante entre los modelos ML estándar es que, en este caso, podemos entrenar un algoritmo DL que puede utilizarse para diferentes tareas.
Me explico mejor.
Si necesitamos desarrollar un sistema que pueda reconocer perros en imágenes como las que hemos visto antes, necesitamos entrenar un algoritmo DL para resolver una tarea de clasificación que es: decirnos si las imágenes nuevas, no vistas, representan perros o no. Nada más.
En cambio, entrenar un LLM puede ayudarnos en todas las tareas que hemos descrito anteriormente. Por lo tanto, esto también justifica la cantidad de potencia de cálculo (¡y dinero!) necesaria para entrenar un LLM (¡que requiere petabytes de datos!).
Como ya sabemos, los LLM son consultados por los usuarios gracias a prompts. Ahora tenemos que distinguir entre el diseño de las instrucciones y la ingeniería de las mismas:
- Diseño de prompts. Es el arte de crear un prompt que se adapte específicamente a la tarea que el sistema está realizando. Por ejemplo, si queremos pedirle a nuestro LLM que traduzca un texto del inglés al italiano, tenemos que escribir un prompt específico en inglés pidiéndole al modelo que traduzca el texto que estamos pegando al italiano.
- Prompt engineering. Es el proceso de crear instrucciones para mejorar el rendimiento de nuestro LLM. Esto significa utilizar nuestro conocimiento del dominio para añadir detalles al prompt como palabras clave específicas, contexto específico y ejemplos, y la salida deseada si es necesario.
Por supuesto, a veces utilizamos una mezcla de ambos. Por ejemplo, podemos querer una traducción del inglés al italiano que interese a un ámbito concreto de conocimiento, como la mecánica.
Así, por ejemplo, un prompt puede ser:» Traduzca al italiano lo siguiente:
la viga está sometida a una tensión normal.
Ten en cuenta que estamos en el campo de la mecánica, por lo que ‘tensión normal’ debe estar relacionado con ella.
Porque «normal» y «tensión» pueden ser mal entendidos por el modelo (¡pero incluso por los humanos!).
Tres tipos de LLM
Existen tres tipos de LLM:
- Modelos lingüísticos genéricos. Son capaces de predecir una palabra (o una frase) basándose en el lenguaje de los datos de entrenamiento. Piensa, por ejemplo, en la función de autocompletado de correo electrónico para entender este tipo.
- Instruction Tuned Models. Este tipo de modelos se entrenan para predecir una respuesta a las instrucciones dadas en la entrada. Resumir un texto es un ejemplo típico.
- Modelos de diálogo. Se entrenan para mantener un diálogo con el usuario, utilizando las respuestas posteriores. Un chatbot con IA es un ejemplo típico.
De todos modos, considera que los modelos que se distribuyen realmente tienen características mixtas. O, al menos, pueden realizar acciones típicas de más de uno de estos tipos. Por ejemplo, si pensamos en ChatGPT podemos decir claramente que:
- Puede predecir una respuesta a las instrucciones, dada una entrada. De hecho, por ejemplo, puede resumir textos, dar ideas sobre un determinado argumento que proporcionamos a través de prompts, etc… Por lo tanto, tiene características como un Modelo Sintonizado con las Instrucciones.
- Está entrenado para dialogar con los usuarios. Y esto es muy claro, ya que trabaja con instrucciones consecuentes hasta que estamos satisfechos con su respuesta. Por lo tanto, también tiene características de un modelo de diálogo.
Generación de imágenes
La generación de imágenes existe desde hace bastante tiempo, contrariamente a lo que podría creerse.
De todos modos, en los últimos tiempos ha ganado popularidad, sobre todo con herramientas como «DALL-E» o «difusión estable» que han despejado su uso, haciendo accesible esta tecnología a las masas de todo el mundo.
Podemos decir que la generación de imágenes puede dividirse en cuatro categorías:
- Autocodificadores variacionales (VAE). son «modelos generativos probabilísticos que requieren redes neuronales como única parte de su estructura general». En palabras operativas, codifican imágenes a un tamaño comprimido y las descodifican al tamaño original. Durante este proceso, aprenden la distribución de los datos.
- Modelos Generativos Adversariales (GAN’s). En general, son los más conocidos, al menos como palabra que resuena en el campo de la IA generativa. Un GAN es «una clase de marco de ML en el que dos Redes Neuronales se enfrentan entre sí donde la ganancia de una es la pérdida de la otra». Esto significa que una red neuronal crea la imagen mientras que la otra predice si es real o falsa.
- Modelos autorregresivos. En estadística, un modelo autorregresivo es la representación de un proceso aleatorio. En el contexto de las imágenes generativas, este tipo de modelos generan imágenes tratándolas como una secuencia de píxeles.
- Modelos de difusión. Los modelos de difusión se inspiran en la termodinámica y son sin duda los más prometedores e interesantes en el subcampo de la generación de imágenes.
Este es el proceso que se esconde tras los modelos de difusión:
- Proceso de distribución hacia delante. Tenemos un proceso inicial, iterativo, en el que la estructura de la imagen se «destruye» en una distribución de datos. En palabras sencillas, es como si añadiéramos ruido a la imagen de forma iterativa, hasta que todos los píxeles se convierten en puro ruido y la imagen no es reconocible (por el ojo humano).
- Proceso de difusión inversa. A continuación, hay un proceso de difusión inversa que es el proceso de aprendizaje real: esto restaura la estructura de los datos. Es como si nuestro modelo aprendiera a «eliminar el ruido» de los píxeles para recrear la imagen.
El poder de conectarlo todo
Si has mantenido la atención hasta ahora, una pregunta debería surgir de forma natural en tu mente: «Vale, Federico, está claro. Pero me falta algo: cuando utilizo «DALL-E» inserto un prompt y sale una imagen: no hemos hablado de eso, ¿verdad?«.
No, no lo hemos hecho.
Arriba hemos hecho una breve descripción del modelo más prometedor (y actualmente, el más utilizado) para generar imágenes, pero la parte que falta es el prompt.
Hemos discutido, de hecho, cómo funcionan a alto nivel. Es decir: hemos dado una breve explicación de cómo funciona su proceso de aprendizaje.
Pero la verdadera potencia de estos modelos llega cuando se acoplan con los LLM. Este acoplamiento, de hecho, nos da la posibilidad de combinar el poder de la ingeniería de los prompt para pedir salidas a nuestros modelos.
En otras palabras: hemos combinado la posibilidad de utilizar el lenguaje natural como entrada con modelos capaces de entenderlo y generar imágenes en función de él.
¿No se trata de un superpoder?
Conclusiones
En conclusión, podemos decir que la IA generativa es un subcampo de la IA que genera nuevos datos similares a los datos del tren.
Mientras que, por un lado, los LLM pueden generar texto a partir de los datos de entrenamiento y los modelos de generación de imágenes pueden generar nuevas imágenes a partir de las imágenes de entrenamiento, el verdadero poder de la IA generativa, al menos en el caso de las imágenes, reside en la combinación de LLM y modelos para la generación de imágenes. Esto nos da la posibilidad de crear imágenes según indicaciones como entradas.
NOTA: este artículo se ha inspirado libremente en el curso de IA Generativa impartido por Google, y algunas referencias están tomadas del mismo. Recomiendo realizar este curso, para una mejor comprensión de la IA generativa.
Original article here.