¿Qué es un Transformer?
Transformer es una arquitectura de red neuronal que ha cambiado de raíz el enfoque de la inteligencia artificial. El Transformer se presentó por primera vez en el influyente artículo "Attention is All You Need" en 2017 y desde entonces se ha convertido en la arquitectura de referencia para los modelos de aprendizaje profundo, impulsando modelos generativos de texto como GPT de OpenAI, Llama de Meta y Gemini de Google. Más allá del texto, el Transformer también se aplica en la generación de audio, el reconocimiento de imágenes, la predicción de la estructura de proteínas e incluso en juegos, lo que demuestra su versatilidad en numerosos dominios.
En esencia, los modelos Transformer generativos de texto funcionan según el principio de predicción del siguiente token: dado un texto de entrada del usuario, ¿cuál es el siguiente token más probable (una palabra o parte de una palabra) que continuará esa entrada? La innovación central y la potencia de los Transformers residen en su uso del mecanismo de autoatención, que les permite procesar secuencias completas y capturar dependencias de largo alcance con más eficacia que las arquitecturas anteriores.
La familia de modelos GPT-2 es un ejemplo destacado de Transformers generativos de texto. Transformer Explainer funciona con el modelo GPT-2 (small) entrenado en español, que tiene 124 millones de parámetros. Aunque no es el modelo Transformer más reciente ni el más potente, comparte muchos de los componentes y principios arquitectónicos presentes en los modelos actuales de vanguardia, lo que lo convierte en un punto de partida ideal para entender los fundamentos.
Arquitectura del Transformer
Todo Transformer generativo de texto consta de estos tres componentes clave:
- Embedding: el texto de entrada 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 semántico de las palabras.
- El bloque Transformer es la unidad fundamental de construcción
del modelo, la que procesa y transforma los datos de entrada. Cada bloque incluye:
- Mecanismo de atención, el componente central del bloque Transformer. Permite que los tokens se comuniquen con otros tokens, capturando información contextual y relaciones entre palabras.
- Capa MLP (perceptrón multicapa), una red prealimentada que opera sobre cada token de forma independiente. Mientras que el objetivo de la capa de atención es enrutar información entre tokens, el objetivo del MLP es refinar la representación de cada token.
- Probabilidades de salida: las capas finales lineal y softmax transforman los embeddings procesados en probabilidades, lo que permite al modelo hacer predicciones sobre el siguiente token de una secuencia.
Embedding
Supongamos que quieres generar texto con un modelo Transformer. Escribes un texto de entrada como
este: “La visualización de datos empodera a los usuarios para”. Esta entrada debe convertirse a un
formato que el modelo pueda entender y procesar. Ahí es donde entra el embedding: transforma el
texto en una representación numérica con la que el modelo puede trabajar. Para convertir un texto de
entrada en embedding, necesitamos 1) tokenizar la entrada, 2) obtener los embeddings de token, 3) añadir
la información posicional y, por último, 4) sumar las codificaciones de token y de posición para obtener
el embedding final. Veamos cómo se realiza cada uno de estos pasos.

Paso 1: Tokenización
La tokenización es el proceso de dividir el texto de entrada en piezas más pequeñas y manejables
llamadas tokens. Estos tokens pueden ser una palabra o una subpalabra. Las palabras "visualización" y "datos" corresponden a tokens únicos, mientras que la palabra "empodera" se divide en dos tokens ("empo" y "dera"). El vocabulario completo de tokens se define antes de entrenar el modelo:
el vocabulario de GPT-2 tiene 50,257 tokens únicos. Ahora que dividimos nuestro texto de
entrada en tokens con identificadores distintos, podemos obtener su representación vectorial a partir
de los embeddings.
Paso 2. Embedding de token
GPT-2 (small) representa cada token del vocabulario como un vector de 768 dimensiones; la
dimensión del vector depende del modelo. Estos vectores de embedding se almacenan en una matriz
de forma (50,257, 768), ¡aproximadamente 39 millones de parámetros! Esta
extensa matriz permite al modelo asignar un significado semántico a cada token, en el sentido
de que los tokens con un uso o significado similar en el lenguaje se ubican cerca unos de otros en
este espacio de alta dimensión, mientras que los tokens distintos quedan más alejados.
Paso 3. Codificación posicional
La capa de embedding también codifica información sobre la posición de cada token en el texto de entrada. Distintos modelos usan diversos métodos de codificación posicional. GPT-2 entrena su propia matriz de codificación posicional desde cero, integrándola directamente en el proceso de entrenamiento.
Paso 4. Embedding final
Por último, sumamos las codificaciones de token y posicional para obtener la representación del embedding final. Esta representación combinada captura tanto el significado semántico de los tokens como su posición en la secuencia de entrada.
Bloque Transformer
El núcleo del procesamiento del Transformer está en el bloque Transformer, que comprende la
autoatención multicabeza y una capa de perceptrón multicapa. La mayoría de los modelos constan de varios
de estos bloques apilados secuencialmente uno tras otro. Las representaciones de los tokens
evolucionan a través de las capas, desde el primer bloque hasta el último, lo que permite al modelo
construir una comprensión detallada de cada token. Este enfoque por capas produce representaciones de
orden superior de la entrada. El modelo GPT-2 (small) que examinamos consta de 12 de estos bloques.
Autoatención multicabeza
El mecanismo de autoatención permite al modelo capturar relaciones entre los tokens de una secuencia, de modo que la representación de cada token se ve influida por las demás. Varias cabezas de atención permiten al modelo considerar estas relaciones desde distintas perspectivas; por ejemplo, una cabeza puede capturar vínculos sintácticos de corto alcance mientras otra sigue un contexto semántico más amplio. En la siguiente sección recorreremos paso a paso cómo se calcula la autoatención multicabeza.
Paso 1: Matrices de consulta (Query), clave (Key) y valor (Value)
El vector de embedding de cada token se transforma en tres vectores: consulta (Query, Q), clave (Key, K) y valor (Value, V). Estos vectores se obtienen multiplicando la matriz de embeddings de entrada por matrices de pesos aprendidas para Q, K y V. Esta analogía con un buscador web nos ayudará a construir algo de intuición sobre estas matrices:
- Consulta (Query, Q) es el texto de búsqueda que escribes en la barra del buscador. Es el token sobre el que quieres "encontrar más información".
- Clave (Key, K) es el título de cada página web en la ventana de resultados. Representa los posibles tokens a los que la consulta puede atender.
- Valor (Value, V) es el contenido real de las páginas web mostradas. Una vez que emparejamos el término de búsqueda adecuado (consulta) con los resultados relevantes (clave), queremos obtener el contenido (valor) de las páginas más relevantes.
Con estos valores QKV, el modelo puede calcular las puntuaciones de atención, que determinan cuánta importancia debe recibir cada token al generar predicciones.
Paso 2: División en múltiples cabezas
Los vectores de consulta, clave y valor se dividen en múltiples cabezas; en el caso de GPT-2 (small), en 12 cabezas. Cada cabeza procesa un segmento de los embeddings de forma independiente,
capturando distintas relaciones sintácticas y semánticas. Este diseño facilita el aprendizaje en
paralelo de diversos rasgos lingüísticos, lo que aumenta la capacidad de representación del modelo.
Paso 3: Autoatención enmascarada
En cada cabeza realizamos los cálculos de autoatención enmascarada. Este mecanismo permite al modelo generar secuencias centrándose en las partes relevantes de la entrada, a la vez que impide el acceso a los tokens futuros.

- Producto punto: el producto punto de las matrices de consulta y clave determina la puntuación de atención, produciendo una matriz cuadrada que refleja la relación entre todos los tokens de entrada.
- Escalado · Máscara: las puntuaciones de atención se escalan y se aplica una máscara al triángulo superior de la matriz de atención para impedir que el modelo acceda a tokens futuros, fijando esos valores en menos infinito. El modelo debe aprender a predecir el siguiente token sin “espiar” el futuro.
- Softmax · Dropout: tras el enmascaramiento y el escalado, las puntuaciones de atención se convierten en probabilidades mediante la operación softmax y, opcionalmente, se regularizan con dropout. Cada fila de la matriz suma uno e indica la relevancia de cada uno de los tokens que están a su izquierda.
Paso 4: Salida y concatenación
El modelo toma las puntuaciones de autoatención enmascarada y las multiplica por la matriz de valor para obtener la salida final del mecanismo de autoatención. GPT-2 tiene 12 cabezas de autoatención, cada una
capturando relaciones distintas entre los tokens. Las salidas de estas cabezas se concatenan y pasan
por una proyección lineal.
MLP: Perceptrón multicapa

Después de que las múltiples cabezas de autoatención capturan las diversas relaciones entre los tokens de entrada, las salidas concatenadas pasan por la capa MLP (perceptrón multicapa) para aumentar la capacidad de representación del modelo. El bloque MLP consta de dos transformaciones lineales con una función de activación GELU entre ambas.
La primera transformación lineal cuadruplica la dimensionalidad de la entrada, de 768 a 3072. Este paso de expansión permite al modelo proyectar las representaciones de los tokens
a un espacio de mayor dimensión, donde puede capturar patrones más ricos y complejos que quizá no sean
visibles en la dimensión original.
A continuación, la segunda transformación lineal reduce la dimensionalidad de vuelta al tamaño original de 768. Este paso de compresión devuelve las representaciones a un tamaño manejable, conservando las
transformaciones no lineales útiles introducidas en el paso de expansión.
A diferencia del mecanismo de autoatención, que integra información entre tokens, el MLP procesa los tokens de forma independiente y simplemente mapea la representación de cada token de un espacio a otro, enriqueciendo la capacidad global del modelo.
Probabilidades de salida
Una vez que la entrada ha pasado por todos los bloques Transformer, la salida atraviesa la capa
lineal final para prepararla para la predicción del token. Esta capa proyecta las representaciones
finales a un espacio de 50,257 dimensiones, donde cada token del vocabulario tiene un valor correspondiente llamado logit. Cualquier token puede ser la siguiente palabra, así que este proceso nos permite
simplemente ordenar los tokens según su probabilidad de ser esa siguiente palabra. Luego aplicamos la
función softmax para convertir los logits en una distribución de probabilidad que suma uno. Esto nos
permitirá muestrear el siguiente token según su probabilidad.

El último paso es generar el siguiente token muestreando de esta distribución. El hiperparámetro temperature (temperatura) desempeña un papel crítico en este proceso. Matemáticamente es una operación muy simple:
los logits de salida del modelo simplemente se dividen por la temperature:
temperature = 1: dividir los logits por uno no tiene efecto sobre las salidas del softmax.temperature < 1: una temperatura más baja hace al modelo más seguro y determinista al agudizar la distribución de probabilidad, lo que produce salidas más predecibles.temperature > 1: una temperatura más alta crea una distribución de probabilidad más suave, lo que permite más aleatoriedad en el texto generado; lo que algunos llaman la “creatividad” del modelo.
Además, el proceso de muestreo puede refinarse aún más con los parámetros top-k y top-p:
top-k sampling: limita los tokens candidatos a los k tokens con las probabilidades más altas, descartando las opciones menos probables.top-p sampling: considera el conjunto más pequeño de tokens cuya probabilidad acumulada supera un umbral p, garantizando que solo contribuyan los tokens más probables sin dejar de permitir diversidad.
Ajustando temperature, top-k y top-p, puedes
equilibrar entre salidas deterministas y diversas, adaptando el comportamiento del modelo a tus
necesidades concretas.
Características arquitectónicas auxiliares
Existen varias características arquitectónicas auxiliares que mejoran el rendimiento de los modelos Transformer. Aunque son importantes para el rendimiento global del modelo, no lo son tanto para entender los conceptos centrales de la arquitectura. La normalización de capa, el dropout y las conexiones residuales son componentes cruciales de los modelos Transformer, en particular durante la fase de entrenamiento. La normalización de capa estabiliza el entrenamiento y ayuda al modelo a converger más rápido. El dropout evita el sobreajuste desactivando neuronas al azar. Las conexiones residuales permiten que los gradientes fluyan directamente a través de la red y ayudan a prevenir el problema del desvanecimiento del gradiente.
Normalización de capa
La normalización de capa ayuda a estabilizar el proceso de entrenamiento y mejora la convergencia. Funciona normalizando las entradas a lo largo de las características, de modo que la media y la varianza de las activaciones se mantengan consistentes. Esta normalización ayuda a mitigar los problemas relacionados con el desplazamiento interno de covariables, lo que permite al modelo aprender con más eficacia y reduce la sensibilidad a los pesos iniciales. La normalización de capa se aplica dos veces en cada bloque Transformer: una antes del mecanismo de autoatención y otra antes de la capa MLP.
Dropout
El dropout es una técnica de regularización que se usa para evitar el sobreajuste en redes neuronales fijando en cero, al azar, una fracción de los pesos del modelo durante el entrenamiento. Esto anima al modelo a aprender características más robustas y reduce la dependencia de neuronas específicas, ayudando a la red a generalizar mejor ante datos nuevos no vistos. Durante la inferencia del modelo, el dropout se desactiva. En esencia, esto significa que estamos usando un ensamble (ensemble) de las subredes entrenadas, lo que produce un mejor rendimiento del modelo.
Conexiones residuales
Las conexiones residuales se introdujeron por primera vez en el modelo ResNet en 2015. Esta innovación arquitectónica revolucionó el aprendizaje profundo al hacer posible el entrenamiento de redes neuronales muy profundas. En esencia, las conexiones residuales son atajos que saltan una o más capas, sumando la entrada de una capa a su salida. Esto ayuda a mitigar el problema del desvanecimiento del gradiente y facilita entrenar redes profundas con múltiples bloques Transformer apilados unos sobre otros. En GPT-2, las conexiones residuales se usan dos veces dentro de cada bloque Transformer: una antes del MLP y otra después, lo que garantiza que los gradientes fluyan con más facilidad y que las capas anteriores reciban actualizaciones suficientes durante la retropropagación.
Funciones interactivas
Transformer Explainer está diseñado para ser interactivo y te permite explorar el funcionamiento interno del Transformer. Estas son algunas de las funciones interactivas con las que puedes experimentar:
- Escribe tu propia secuencia de texto para ver cómo el modelo la procesa y predice la siguiente palabra. Explora los pesos de atención y los cálculos intermedios, y observa cómo se calculan las probabilidades finales de salida.
- Usa el control deslizante de temperatura para regular la aleatoriedad de las predicciones del modelo. Explora cómo puedes hacer que la salida del modelo sea más determinista o más creativa cambiando el valor de la temperatura.
- Selecciona los métodos de muestreo top-k y top-p para ajustar el comportamiento del muestreo durante la inferencia. Experimenta con distintos valores y observa cómo cambia la distribución de probabilidad y cómo influye en las predicciones del modelo.
- Interactúa con los mapas de atención para ver cómo el modelo se enfoca en distintos tokens de la secuencia de entrada. Pasa el cursor sobre los tokens para resaltar sus pesos de atención y explora cómo el modelo captura el contexto y las relaciones entre palabras.
Videotutorial
¿Cómo está implementado Transformer Explainer?
Transformer Explainer incluye un modelo GPT-2 (small) en vivo que se ejecuta directamente en el navegador. Este modelo deriva de la implementación en PyTorch de GPT del proyecto nanoGPT de Andrej Karpathy y se ha convertido a ONNX Runtime para ejecutarse sin fricciones en el navegador. La interfaz está construida con JavaScript, usando Svelte como framework de la interfaz y D3.js para crear visualizaciones dinámicas. Los valores numéricos se actualizan en vivo según la entrada del usuario.
¿Quién desarrolló 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.
Esta versión es una adaptación al español del proyecto original, publicado bajo licencia MIT por el Polo Club of Data Science (Georgia Tech); en lugar del GPT-2 original en inglés utiliza un GPT-2 small entrenado en español (DeepESP/gpt2-spanish, Hugging Face).