IA para humanos. Parte 3

IA para humanos. Parte 3

Transformers: El despertar de las bestias

¿Qué tal va la vida? ¿Ya habéis conseguido que ChatGPT os haga la declaración de la renta? Tampoco os fieis mucho, que ya sabéis que se pega unos cantazos curiosos. Luego y viene María Jesús con la guadaña y os toca el bolsillo. Bueno, al lío. Tras los dos primeros posts (si no te has pasado por allí, ya estás tardando) hemos llegado al Main Event de la noche. Recuerda, que en un primer post vimos, de forma general, como funciona el Machine Learning y las Redes Neuronales Artificiales. En una segunda parte comentamos como el lenguaje natural se transforma en lenguaje matemático para alimentar a los modelos de Inteligencia Artificial. En esta tercera parte, llegamos al clímax de la IA moderna. Los Grandes Modelos del Lenguaje generativos.

Siguiendo el guion de los post anteriores, el nivel irá gradualmente in crescendo. De lo general y cotidiano a conceptos más técnicos y específicos, pero tranquilidad, nada del otro mundo. Te prometo que dentro de mis limitadas capacidades, haré un esfuerzo para evitar acabar al borde de la embolia. Por cierto, recalcar que estoy obviando características de bajo nivel y tomando algunas licencias. Lo digo por los gurús, que ya estarán despotricando.

Tras un recorrido por los principales ingredientes que componen el menú de la Inteligencia Artificial hemos llegado al plato 3 estrellas Michelín. Voy a presentarte a los Goodfellas de la IA moderna. Los Transformers. Y no, no me refiero a mi tío Optimus Prime. Estos colegas son los que “padrean” en el campo de la Inteligencia Artificial. Nuestros amigos, los Transformers, son los detonadores de la explosión de la IA en estos tiempos. Y eso que los Transformers no son tan jóvenes, eh, que a alguno hasta le ha salido hasta el mostacho.

Vale, sí, muy “padres” y todo lo que tú quieras, pero ¿Qué son en realidad los Transformers? Pues mira, en la imagen inferior te lo presento.

img

Ya, quizá no es lo que esperabas. Tanto entusiasmo para esto. Realmente el jodio es bastante feo en sí mismo. Pero, como las grandes cosas, los pobres Transformers albergan bastante belleza en su interior.

Para que la explicación sea lo más clara posible, vamos a descomponer al máximo a este amigo como si fuésemos el mismísimo Jeff Dahmer. En primer lugar, debemos hablar de la estructura en la que se basa un Transformer, la estructura Encoder-Decoder o Codificador-Decodificador en spanish. Pensando una analogía para intentar aterrizar este concepto, de pronto pasó por mi mente una escena de una pequeña joya cinematográfica cuyo título es Mask. En esta película, que había revisitado recientemente, el protagonista Rocky (Eric Stoltz) intenta explicar a su novia ciega, Diana (Laura Dern) como percibir los colores a gracias al tacto. Ella, a través de sensaciones como el calor o el frío consigue abstraerse y entender las particularidades y singularidades de diferentes colores. Por tanto, en la película Rocky estaría actuando como codificador y Diana como decodificador. Otra analogía sería la del escultor y la persona ciega. Un escultor, actuando como Encoder, crea esculturas que representan el mundo en el que vive. A través del uso de texturas, formas, tamaños y diferentes materiales; es capaz de recrear distintas ideas y conceptos que serían inimaginables para una persona que no puede verlos. Por otra parte, una persona ciega, actuando como Decoder, descubre a través del tacto ideas y conceptos del mundo que le serían imposible percibir de otra manera. De modo, que esta persona puede entender, sentir y verbalizar como percibe el mundo bajo su prisma. Por ejemplo, podría concebir el concepto nube aunque nunca haya visto una. A través de la experiencia y la repetición, podría aprender a reconocer con mayor claridad y nitidez las esculturas y crear cada vez con mayor precisión un mapa de la realidad que le rodea.

Este paradigma entronca perfectamente con la naturaleza de nuestros amigos los Embeddings (te lo repito… si no te has pasado por la parte 2, estás tardando). Si recuerdas, los Embeddings eran capaces de encontrar relaciones y características únicas y relevantes entre las palabras (A partir de aquí cada vez que nos refiramos a palabras o texto, serán en realidad Embeddings). Precisamente esas particularidades, que relacionan las palabras y las hacen singulares, es la información que el Encoder extrae. Esta información es codificada tras pasar por la Red Neuronal que forma parte de la estructura del Encoder. Vale, lo del Encoder ha quedado más o menos claro ¿no? ¿Y qué pasa con el Decoder? Bueno, nuestro colega Decoder se encarga de recoger la representación entregada por el Encoder y tratar de entregar la mejor respuesta posible para ese texto de entrada.

Pero ojo, esto no es todo. Resulta que el nuestro colega el Transformer es de lo más avispado y le pone mucha atención a todo lo que hace. El Transformer, utiliza una técnica denominada Attention. Sí, sí, vamos, atención de toda la vida. Resulta que no solo se limita a codificar y decodificar las características y relaciones intrínsecas de las palabras, sino que además es capaz de poner el foco en un grupo particular de ellas. Pongamos un ejemplo para iluminarnos. El Transformer es capaz de extraer la relación gramatical en las oraciones. Por ejemplo, en la oración: “Si los chavales camelan pegarle un poquito a la mandanga o pegarle un poquito a la lejía. Pues déjalos”. El Transformer, a través del mecanismo de atención, sabe que “chavales” es un sustantivo masculino plural, con lo cual, por las relaciones gramaticales y el contexto, es capaz de abstraer que el “camelan pegarle a la mandanga” aún siendo un uso poco habitual del castellano, se refiere precisamente la palabra “chavales”.

Pero la cosa no queda ahí, Resulta que, nuestro amigo Transformer además es bastante ambicioso. Tanto el Encoder como el Decoder utilizan varias capas de Attention (Multi-Head Attention). Cada una de las capas es capaz de trabajar de forma que, durante la codificación y decodificación se pone el foco en determinados tipos específicos de relaciones entre las palabras. Volviendo a la analogía del escultor. Imagina que no tenemos un único escultor, sino que tenemos un equipo entero de ellos. Cada uno especializado en ejecutar distintos tipos de representaciones. Attentión, colega. Eso que te repite la pesada de tu madre cuando sales de fiesta para que no te echen cosas en el vaso, es lo que marca la diferencia.

Y eso es todo amigos. Si llegamos a mil likes os cuento como GPT4… Nah, es coña. ¿Qué asco esa gente no? Volvamos al asunto. Tras lo comentado, parece que el Encoder se encarga del trabajo sucio y el Decoder es el que mira en la obra. Bueno realmente no. El trabajo del Decoder también es bastante complejo en sí. Para entenderlo debemos conocer cuál es el proceso de aprendizaje de estos modelos. Aquí vuelven a aparecer los conceptos de entrenamiento que utilizamos en la parte 1. Vamos a subir un puntito el nivel de complejidad técnica. ¿Preparad@?

La pregunta principal en este proceso sería: ¿Cómo sabe el Decoder que el texto que está generando es el correcto? Bien, tenemos que tener claro, que hemos de ayudar al Decoder de alguna forma para que el pobre sepa si está haciendo bien su trabajo. Para ello vamos a hacer un truquito. Resulta que el Decoder tiene dos entradas de texto. Una de ellas, es la entrada donde recibe la información del Encoder. A la otra, la denominaremos por simplicidad entrada de entrenamiento. Por tanto, para entrenar el Transformer, a la entrada de entrenamiento del Decoder tenemos que darle la respuesta que esperaríamos para el texto que le hemos proporcionado al Encoder. Por ejemplo, si quisiésemos entrenar al Transformer como traductor, a la entrada del Encoder le proporcionaríamos el texto: “Menuda chapa estás dando” y a la entrada de entrenamiento del Decoder: “you’re really giving me an earful” (obtenido literal de ChatGPT).

El Decoder aplicará la técnica de atención tanto al texto que le llega de su entrada, como a la codificación que le llega de parte del Encoder. Al principio, el Decoder que no estará entrenado, seguramente generará palabras que no tengan ningún tipo de sentido para lo que esperamos. Pero ya conocemos como funciona el proceso de entrenamiento en Machine Learning ¿verdad? El Decoder comparará las palabras seleccionadas que cree que encajan con mayor probabilidad, con las que le hemos proporcionado a su entrada de entrenamiento, tratando de estimar cuánto se ha equivocado. El error cometido se le entrega a través del proceso de Backpropagation tanto al Decoder como al Encoder para que ajusten los pesos internos de sus Redes Neuronales y minimicen el error para siguientes iteraciones.

Pues ya estaría. Una vez entrenado el Decoder, estará preparado para generar el texto más adecuado en función del texto que le proporcionemos al Encoder. La generación de texto final se realiza palabra a palabra y se consigue a través de una última capa denominada Softmax. Lo que hace esta capa es lo siguiente: Para TODAS las posibles palabras de un “lenguaje”, asignará a cada una de ellas la probabilidad de que sea la siguiente palabra más adecuada en el texto. Esta probabilidad se asigna, claro está, en función de la información que le entregue la Red Neuronal del Decoder. Finalmente, elegirá la más probable de todas. Por ejemplo, imaginemos que nuestro lenguaje tiene cien mil posibles palabras. Para el texto “Devuélveme la vida que me la has …” La palabra que tendrá una probabilidad con un hipotético 99.99% de probabilidad será “quitao”.

Abstrayéndonos del apasionante mundo del álgebra, volvamos a humanizar a nuestros amigos Transformers y comparemos el proceso ejecutado por el Decoder con nuestra analogía. La persona ciega, mediante el tacto que ha entrenado durante toda su experiencia vital, sabe relacionar formas, tamaños o texturas, de modo que cuando palpa una obra creada por el escultor es capaz de reconocerla, abstraerse y evocar una representación propia. Esta representación será mejor cuanto mayor entrene esa cualidad. Además, el entrenamiento será más efectivo si esta persona es capaz de recibir feedback de gente de confianza, que podrán aconsejarle, corregirle y acompañarle respondiendo si lo que esa escultura le evoca contiene las características propias de dicha representación. Por ejemplo, si está palpando una representación de las nubes donde la textura es blanda, ligera, suave, podrá extrapolar que se trata algo liviano, etéreo, etc.

No olvides que estos modelos no se entrenan con el Workbook de segundo de la ESO. Estos modelos se entrenan con miles de millones de palabras. GPT-3, por ejemplo, ha sido entrenado, con más de quinientos mil millones de pares de bytes de texto. Vamos, un poquito más que la librería de tu padre. Por tanto, parece lógico, y no por eso menos increíble, que sea capaz de procesar de forma tan efectiva y con un alto grado de exactitud toda esa enorme cantidad de información.

Con lo cual, si finalmente repintamos de forma más amable y simplificada la estructura y el ciclo natural del Transformer obtendríamos que tiene una pinta tal que así. Mucho más mono ¿A que sí?

img

Por tanto, si metemos todos ingrediente en la coctelera y lo aderezamos todo con un poco de pimienta en forma de Human Reinforcement Learning, tenemos como resultado los Grandes Modelos del Lenguaje como ChatGPT.

Y ahora sí, hemos llegado al final de nuestra serie de posts. Si ya sabias de que iba el tema y te he resultado un chapas, al menos espero que hayas disfrutado refrescando el conocimiento. No seas muy duro conmigo. Si no, espero que hayas comprendido y disfrutado con la explicación. Para finalizar, si le has contado esto a tus padres, profanos en la materia, y lo han entendido a la primera, o yo me merezco un Nobel o tus padres deberían estar en el consejo de administración de OpenAI. Puede que en el futuro os torture un poco más con el tema y me aventure a lanzar un Bonus Track explicando modelos de difusión como DALL-E2, Midjourney o Stable Diffusion. Pero eso ya será otra historia.

Escribiendo desde un sótano en la Deep Web, atentamente math.