← Volver a Aprende con CDIA

¿Qué es la IA generativa?El Transformer

IntermedioInteligencia Artificial8 min de lectura

El Transformer

La arquitectura detrás de los LLM: apila el mecanismo de atención muchas veces para procesar la secuencia entera en paralelo y capturar el contexto sin precedentes.

El Transformer es la arquitectura de red neuronal que revolucionó la inteligencia artificial desde 2017 (con el artículo "Attention is All You Need"). Es el motor de casi todos los grandes modelos de lenguaje: su superpoder es procesar una secuencia entera en paralelo y decidir, para cada palabra, a cuáles otras prestar atención.

El problema que vino a resolver

Antes, las redes leían el texto palabra por palabra, en orden (arquitecturas recurrentes). Eso era lento y les costaba conectar palabras lejanas: al llegar al final de un párrafo, ya casi habían olvidado el principio. El Transformer rompe con eso: mira toda la secuencia a la vez y conecta cualquier par de palabras sin importar la distancia.

Las piezas del Transformer

Una entrada de texto atraviesa varias etapas:

  1. Embeddings — cada token se convierte en un vector, como vimos en embeddings.
  2. Codificación posicional (positional encoding) — como todo se procesa en paralelo, se suma a cada vector una señal que indica su posición. Sin esto, "el perro mordió al gato" y "el gato mordió al perro" serían idénticos.
  3. Bloques de atención — el corazón de la arquitectura, apilados muchas veces.
  4. Salida — una capa final que predice el siguiente token.

El corazón: la autoatención

El motor de cada bloque es la autoatención (self-attention): cada palabra "mira" a todas las demás y decide cuáles son relevantes. Le dedicamos una lección entera —el mecanismo de atención— así que aquí basta con recordar el trío que la hace funcionar:

  • Query (Q) — lo que esta palabra "busca".
  • Key (K) — lo que cada palabra "ofrece".
  • Value (V) — la información que aporta si resulta relevante.

Cada palabra compara su query con las keys de todas las demás; las que encajan reciben más peso, y con esos pesos se combinan los values:

Así, al procesar "banco" en "me senté en el banco del parque", la palabra presta más atención a "parque" que a "dinero", y resuelve la ambigüedad por contexto.

me senté el banco parque
Autoatención: al procesar "banco", el mayor peso (la línea más gruesa) apunta a "parque", que desambigua su significado.

Atención multi-cabeza

En vez de una sola atención, el Transformer corre varias en paralelo (multi-head attention). Cada "cabeza" aprende a fijarse en un tipo de relación distinto: una en la sintaxis, otra en concordancias, otra en el tema. Luego se combinan. Es como leer la frase con varios lentes a la vez.

En código

La autoatención, en su forma mínima, son unas pocas líneas de numpy:

import numpy as np

def softmax(z):
    e = np.exp(z - z.max(axis=-1, keepdims=True))
    return e / e.sum(axis=-1, keepdims=True)

def autoatencion(Q, K, V):
    d_k = Q.shape[-1]
    pesos = softmax(Q @ K.T / np.sqrt(d_k))  # cuánto mira cada palabra a las demás
    return pesos @ V                          # combina la información relevante

# 3 tokens representados por vectores de dimensión 4 (aquí Q=K=V para simplificar)
X = np.random.rand(3, 4)
print(autoatencion(X, X, X).shape)  # (3, 4): un vector "contextualizado" por token

En la práctica se usa una librería como Hugging Face transformers, que trae la arquitectura completa y modelos ya entrenados (lo veremos en los casos prácticos).

Para llevar

El Transformer procesa el texto en paralelo y, mediante la autoatención, deja que cada palabra pese la relevancia de todas las demás. Sumando codificación posicional, múltiples cabezas de atención y muchas capas apiladas, obtiene una comprensión del contexto sin precedentes. Es la arquitectura sobre la que se construyen todos los LLM modernos.