# 24 - Los transformers, explicados ![[Los transformers, explicados.png]] # Los transformers, explicados El otro día publiqué un minivídeo y enlace a una web interactiva donde explican muy bien cómo funcionan los transformers, la base de la IA generativa. Pues debido a una idea de @Miguel Solano, s traigo una explicación más sencilla, hecha con ayuda de, no podía ser de otra forma, la IA, esta vez con Copilot :-) Primero una explicación más concisa y directa, y luego una explicación paso por paso, más o menos igual de larga que el original, pero en lenguaje más sencillo. Y al final os dejo el proceso con Copilot, para que podáis replicarlo con otros contenidos. He usado Copilot en Word, que es lo que más me gusta para documentos. Fuentes: - web interactiva: https://poloclub.github.io/transformer-explainer/ - paper en PDF: https://arxiv.org/pdf/2408.04619 - Mi post original sobre esto: https://www.linkedin.com/posts/davidhurtadotoran_la-mejor-explicaci%C3%B3n-visual-interativa-t%C3%A9cnica-activity-7260176698388746240-QViH?utm_source=share&utm_medium=member_desktop # Transformers, explicación sencilla Explicación sencilla de cómo funciona la IA generativa basada en los _Transformers_: ## 1. ¿Qué es un Transformer? El _Transformer_ es como el cerebro detrás de muchos sistemas de inteligencia artificial (IA) que generan texto, imágenes, audio, y más. Fue creado en 2017 y revolucionó la IA porque permitió a las máquinas entender y generar texto de manera muy parecida a como lo haría una persona. Esto es gracias a un proceso llamado **autoatención** (_self-attention_), que ayuda a la IA a enfocarse en las palabras más relevantes para interpretar el contexto de lo que se está diciendo. ## 2. ¿Cómo genera texto? Un _Transformer_ crea texto prediciendo palabra por palabra. Empieza con un “prompt” o texto inicial que nosotros le damos (por ejemplo, “El día está…”), y luego predice cuál es la palabra más probable que venga después, como “soleado” o “nublado”. Este proceso se repite para construir frases completas. ## 3. ¿Cómo entiende el texto? Para entender el texto, el _Transformer_ realiza varios pasos: • **Tokenización**: Divide el texto en partes más pequeñas (palabras o fragmentos de palabras), llamados _tokens_. • **Embeddings**: Cada _token_ se convierte en números que representan su significado, lo que permite a la IA “entender” conceptos de forma matemática. • **Posición de las palabras**: También se agrega la información sobre la posición de cada palabra para que la IA sepa en qué orden están y cómo se relacionan entre sí. ## 4. El bloque Transformer El verdadero “truco” del _Transformer_ es el **bloque de autoatención**. En términos simples, este bloque permite que cada palabra en el texto “mire” a las otras palabras y decida cuáles son importantes para entender el contexto. Imagínate que cada palabra tiene una lupa y escoge a qué palabras enfocarse según su relevancia para el significado de la frase. • **Multi-cabeza de autoatención**: En lugar de una sola lupa, la IA utiliza varias “lupas” a la vez (llamadas _cabezas de autoatención_) para captar diferentes relaciones entre palabras. • **MLP (Perceptrón Multicapa)**: Después de captar esas relaciones, la IA procesa cada palabra para refinar su significado en el contexto general. ## 5. Predicción de la siguiente palabra Al final de este proceso, la IA genera una lista de palabras posibles que podrían ser la siguiente en la frase y asigna una probabilidad a cada una (qué tan probable es que sea esa palabra). Así, el sistema elige la palabra más probable o incluso puede ser un poco más creativo si le añadimos un “_factor de temperatura_”, que le da un toque de variación. ## 6. ¿Por qué es tan versátil? Lo más impresionante del _Transformer_ es que no sólo funciona para generar texto; también se usa en muchas otras áreas, como el reconocimiento de imágenes, generación de audio, e incluso en la predicción de estructuras de proteínas. ¡Es como una navaja suiza de la IA! En resumen, el _Transformer_ es una arquitectura de IA súper eficiente para entender y generar texto y otros tipos de datos, ya que utiliza un sistema de atención que permite al modelo decidir en qué partes del texto o datos debe enfocarse para dar una respuesta coherente y relevante. --- # Explicación detallada Aquí va una explicación detallada, replicando todo el contenido del artículo original, pero en lenguaje más sencillo. ## ¿Qué es un Transformer? Un Transformer es una arquitectura de red neuronal que ha revolucionado la inteligencia artificial. Fue presentado por primera vez en el artículo "Attention is All You Need" en 2017 y desde entonces se ha convertido en la arquitectura preferida para los modelos de aprendizaje profundo, como los generadores de texto de OpenAI (GPT), Meta (Llama) y Google (Gemini). Además de texto, los Transformers se usan en generación de audio, reconocimiento de imágenes, predicción de estructuras de proteínas y hasta en juegos, demostrando su versatilidad. ## ¿Cómo funcionan los Transformers que generan texto? Los Transformers generadores de texto funcionan prediciendo la siguiente palabra en una secuencia dada una entrada. La innovación principal de los Transformers es su uso del mecanismo de auto-atención, que les permite procesar secuencias completas y captar relaciones a largo plazo de manera más efectiva que arquitecturas anteriores. Un ejemplo notable de estos modelos es la familia GPT-2. El modelo utilizado aquí, GPT-2 pequeño, tiene 124 millones de parámetros. Aunque no es el más avanzado, comparte muchos de los mismos componentes y principios de los modelos más actuales, lo que lo convierte en un buen punto de partida para entender lo básico. ## Arquitectura del Transformer Cada Transformer generador de texto tiene tres componentes clave: ## Embeddings Cuando introduces un texto en el modelo, este se divide en unidades más pequeñas llamadas tokens, que pueden ser palabras o subpalabras. Estos tokens se convierten en vectores numéricos llamados embeddings, que capturan el significado de las palabras. ## Bloque Transformer El bloque Transformer es la unidad fundamental que procesa y transforma los datos de entrada. Cada bloque incluye: ·      Mecanismo de Atención: Permite que los tokens se comuniquen entre sí, captando información contextual y relaciones entre las palabras. ·      Capa de Multilayer Perceptron (MLP): Una red que refina la representación de cada token independientemente. ## Probabilidades de Salida Las últimas capas lineales y softmax convierten los embeddings procesados en probabilidades, permitiendo que el modelo haga predicciones sobre el siguiente token en una secuencia. ## Embeddings Imagina que quieres generar texto con un Transformer. Introduces un texto como este: "La visualización de datos empodera a los usuarios para...". Este texto necesita ser convertido a un formato que el modelo pueda entender. Aquí es donde entra el embedding: transforma el texto en una representación numérica. ### Paso 1: Tokenización La tokenización es el proceso de dividir el texto en piezas más pequeñas llamadas tokens. Estos pueden ser palabras o subpalabras. Por ejemplo, "visualización" puede dividirse en varios tokens. Cada token tiene su propio ID único. ### Paso 2: Embedding de Tokens Cada token se representa como un vector en un espacio de alta dimensión. Este vector captura el significado del token. ### Paso 3: Codificación Posicional La capa de embeddings también codifica la posición de cada token en el texto. Esto ayuda al modelo a entender el orden de las palabras. ### Paso 4: Embedding Final Finalmente, se suman las codificaciones de tokens y posiciones para obtener la representación final que el modelo usará para procesar el texto. # Bloque Transformer El núcleo del procesamiento del Transformer reside en el bloque Transformer, que incluye múltiples cabezas de auto-atención y una capa de MLP. Los modelos suelen consistir en varios de estos bloques apilados secuencialmente. ## Auto-Atención Multicabeza El mecanismo de auto-atención permite al modelo enfocarse en partes relevantes de la secuencia de entrada, capturando relaciones complejas dentro de los datos. ### Paso 1: Matrices de Consulta, Clave y Valor Cada token se transforma en tres vectores: Consulta (Q), Clave (K) y Valor (V). Estos ayudan al modelo a calcular las puntuaciones de atención. ### Paso 2: Auto-Atención Enmascarada La auto-atención enmascarada permite que el modelo genere secuencias enfocándose en las partes relevantes, evitando el acceso a tokens futuros. ### Paso 3: Salida El modelo usa las puntuaciones de auto-atención enmascaradas para multiplicarlas con la matriz de Valor y obtener la salida final del mecanismo de atención. ## Capa de Multilayer Perceptron (MLP) Después de que las múltiples cabezas de auto-atención capturan las diversas relaciones entre los tokens, las salidas concatenadas pasan por la capa de MLP para mejorar la capacidad de representación del modelo. ## Probabilidades de Salida Después de procesar la entrada a través de todos los bloques Transformer, la salida se pasa por la capa lineal final para prepararla para la predicción de tokens. Esta capa proyecta las representaciones finales en un espacio dimensional donde cada token en el vocabulario tiene un valor correspondiente. Luego se aplica la función softmax para convertir estos valores en una distribución de probabilidad que suma uno, permitiendo muestrear el siguiente token basado en su probabilidad. ## Características Avanzadas Hay varias características avanzadas que mejoran el rendimiento de los modelos Transformer, como la normalización de capas, dropout y conexiones residuales, cruciales durante la fase de entrenamiento. ### Normalización de Capas Ayuda a estabilizar el proceso de entrenamiento y mejora la convergencia. ### Dropout Es una técnica de regularización que previene el sobreajuste. ### Conexiones Residuales Ayudan a mitigar el problema del gradiente desaparecido, facilitando el entrenamiento de redes profundas. ## ¿Quién desarrolló el Transformer Explainer? Transformer Explainer fue creado por Aeree Cho, Grace C. Kim, Alexander Karpekov, Alec Helbling, Jay Wang, Seongmin Lee, Benjamin Hoover y Polo Chau en el Georgia Institute of Technology. --- # Proceso de generación de todo esto Easy, el proceso es cómodo y fácil. Copias el texto de la web en un documento de Word, lo guardas en OneDrive, creas otro documento en blanco y le pones el prompt referenciando al primer documento. Así no tienes limitaciones en el tamaño del prompt. ![[Los transformers, explicados - Word Copilot 1.png]] Se podría pedir que sea igual de largo que el original (lo que, en este caso, sería casi una traducción) o que lo haga más corto, etc. ![[Los transformers, explicados - Word Copilot 2.png]]