Capítulo 05 · Arquitectura · 14 min

El Transformer completo

Ensamblando las piezas: atención multi-cabeza, feed-forward, normalización, conexiones residuales.

Una pila de bloques simples

Un Transformer no es una máquina mágica. Es una pila de bloques casi idénticos.

Cada bloque recibe una secuencia de vectores, la transforma un poco, y la pasa al bloque siguiente. Repetido 12, 24, 80 veces, ese patrón produce representaciones cada vez más ricas: al principio señales locales, después relaciones sintácticas, después conceptos más abstractos.

Pasa el cursor por los seis pisos del esquema de abajo, en el orden en que un token los atraviesa. En cada piso, hazte una sola pregunta: ¿este sub-módulo hace que los tokens se comuniquen entre sí, o trabaja sobre cada uno por separado?

Pasa el cursor por un sub-bloque para ver su rol: la attention difunde información entre tokens, el feed-forward la transforma localmente, la normalización y los residuales estabilizan el resto. Apilados 32 o 96 veces, dan un GPT-4 o un Claude.

La respuesta: uno solo de esos seis pisos hace circular la información entre los tokens — el multi-head attention. Todo lo demás trabaja posición por posición, de forma aislada. Esa división del trabajo es la que hay que tener en mente para el resto del capítulo: la atención mezcla, el feed-forward transforma, la normalización y los residuales estabilizan. Y no hay nada más — ese mismo bloque repetido 12 veces da un GPT-2 small, repetido 96 veces un GPT-3.

El esqueleto del bloque

Un bloque Transformer moderno contiene tres ideas:

  1. Atención — cada token mira los tokens anteriores y recupera información útil.
  2. Feed-forward — cada token pasa por una pequeña red que transforma su vector de forma independiente.
  3. Conexiones residuales y normalización — el bloque aprende una corrección, no una reescritura completa, y mantiene las activaciones estables.

La atención mezcla información entre tokens. El feed-forward calcula dentro de cada token. La normalización y los residuales hacen que todo pueda apilarse muchas veces sin romperse.

¿Por qué repetir?

Un solo bloque ve relaciones simples. Varios bloques permiten construir relaciones sobre relaciones.

En una capa temprana, una head puede detectar que duerme mira a gato. En otra capa, esa relación puede influir en el sentido de toda la frase. Más arriba, el modelo puede usar ese estado para elegir una continuación coherente.

Cada capa reescribe la secuencia con un poco más de contexto.

Por eso los modelos grandes no solo tienen más parámetros: tienen más profundidad. Esa profundidad les da tiempo para refinar la representación antes de producir el siguiente token.

El feed-forward es memoria

La atención suele llevarse toda la fama, pero una gran parte de los parámetros vive en las capas feed-forward.

Intuición útil: el feed-forward funciona como una memoria asociativa. Cuando el vector de un token activa cierta dirección, la capa puede añadir información que el modelo ha aprendido durante el entrenamiento.

No "recupera" un documento literal. Ajusta el vector para hacerlo más compatible con patrones vistos miles de veces.

Un apunte sobre la escritura de esta capa: la versión clásica — dos matrices con una GELU en medio y una expansión de 4× — es la de GPT-2. Los modelos recientes la sustituyen por SwiGLU, que usa tres matrices en vez de dos y una expansión más cercana a 8/3× para conservar el mismo número de parámetros. El principio no cambia: se ensancha, luego se estrecha.

Residuales: aprender diferencias

Si cada bloque reemplazara completamente su entrada, entrenar decenas de capas sería inestable. Las conexiones residuales evitan eso:

salida = entrada + cambio aprendido

El bloque no tiene que reconstruir todo desde cero. Solo aprende qué debe cambiar. Si una parte de la información ya es buena, puede pasar casi intacta.

Cuidado, eso sí, con la fórmula "es la misma arquitectura desde GPT-2": es cierta para el plano de conjunto, falsa en el detalle de las piezas. Entre 2019 y hoy, prácticamente cada componente ha sido reemplazado por una versión más eficiente: RoPE en lugar de las posiciones aprendidas, RMSNorm en lugar de LayerNorm, SwiGLU en lugar de GELU, GQA en lugar del multi-head clásico — sin contar las variantes Mixture of Experts que veremos más abajo. Mismo plano, piezas distintas.

La salida: del vector a la distribución

A estas alturas, el último bloque nos da, para cada posición, un vector de unos cuantos miles de dimensiones. ¿Cómo volvemos a una distribución sobre el vocabulario?

Un solo paso. Multiplicamos ese vector por una matriz W_out de dimensiones (d_model × |vocab|) y aplicamos un softmax. El resultado: para cada posición, una probabilidad sobre todos los tokens del vocabulario — unos 50.000 en GPT-2, 128.000 en Llama 3, 200.000 en GPT-4o. Eso es la salida de un LLM — una distribución.

Detalle elegante: en muchos modelos pequeños (GPT-2, Gemma...), W_out comparte sus pesos con la matriz de embedding de entrada (weight tying). La misma transformación que mapea el token 5234 a un vector, en sentido inverso, mapea un vector a la probabilidad del token 5234. Ahorra parámetros y generaliza mejor. Los modelos grandes (GPT-3, Llama 70B, Mistral...), en cambio, separan las dos matrices: a esa escala el coste en parámetros es despreciable, y dos matrices libres funcionan mejor que una sola atada.

Mixture of Experts: no todos los parámetros se activan

Una variante arquitectural se ha vuelto dominante en los modelos recientes: Mixture of Experts (MoE). Mixtral, DeepSeek, Qwen y Llama 4 la usan — eso está confirmado, sus arquitecturas son públicas. De los modelos cerrados (GPT-4, Gemini) solo tenemos filtraciones y estimaciones: probable, pero nunca confirmado oficialmente. Es un matiz que conviene recordar cada vez que se lee una cifra sobre un modelo propietario.

La idea: en vez de un solo FFN por bloque, se ponen varios en paralelo (normalmente entre 8 y 128 expertos). Para cada token, una pequeña red de enrutamiento (router) selecciona dos o cuatro — los más pertinentes para ese token. Solo esos expertos se activan.

Consecuencia: un modelo puede tener 400 mil millones de parámetros "totales" pero activar solo 50 mil millones por token. Capacidad de un modelo grande, coste de cálculo de uno pequeño. Es lo que hace que Mixtral 8×7B (47 mil millones de parámetros) sea competitivo en inferencia frente a modelos densos mucho más grandes.

El compromiso: la VRAM tiene que albergar todos los expertos (si no, hay que hacer swap), y el enrutamiento añade una capa de inestabilidad al entrenamiento. Sigue siendo un área de investigación muy activa.

Lo siguiente

Ya tenemos la arquitectura: tokens → embeddings → atención → feed-forward → salida. Falta explicar cómo aprende sus pesos. La respuesta está en el entrenamiento: predicción, error, gradiente, repetidos a escala enorme.

Actualizado el