Capítulo 04 · Atención · 12 min
La atención es todo lo que necesitas
El mecanismo que lo cambia todo. Cómo cada token mira a todos los demás para entender el contexto.
El pronombre y el medico
Volvamos a esta frase:
"El medico envio a la enfermera a su casa porque ella..."
Para una persona, "ella" apunta naturalmente a la enfermera. Para un LLM no es obvio: cuando procesa el token ella, la palabra enfermera esta varias posiciones atras. Como las conecta?
Ese es el papel de la atencion.
Por que existe la atencion
Antes de 2017, los modelos de lenguaje eran sobre todo recurrentes (RNN, LSTM): leian el texto token por token, propagando un "estado oculto" que resumía todo lo visto hasta ese momento.
Problema: ese estado oculto es un cuello de botella. Todo debe pasar por ahi. A medida que la frase se alarga, la informacion antigua se diluye. Y el aprendizaje es secuencial: para tratar la palabra numero cien hay que haber tratado las 99 anteriores, lo que dificulta la paralelizacion.
El paper Attention Is All You Need (Vaswani et al., 2017) propone una ruptura:
Nada mas de recurrencia. Cada token mira directamente a todos los demas, en paralelo.
Es el mecanismo que hace posibles los modelos modernos.
La intuicion
En cada capa del modelo, cada token hace tres operaciones:
- Plantea una pregunta al resto de la frase (el vector Query).
- Cada otro token muestra una etiqueta que resume lo que es (el vector Key).
- El token compara su pregunta con cada etiqueta: donde hay coincidencia, recupera un poco de contenido (el vector Value).
Resultado: una nueva representacion para cada token, que es una suma ponderada de los demas, donde los pesos vienen de las correspondencias Q-K.
No hace falta memorizar la formula: conserva la idea. Cada token mira a los demas y mezcla lo que le parece interesante.
De donde salen Q, K y V exactamente?
No de la nada. Para cada token tomamos su vector de embedding x y lo multiplicamos por tres matrices aprendidas durante el entrenamiento:
Q = x · W_Q
K = x · W_K
V = x · W_V
Esas tres matrices W_Q, W_K, W_V son los parametros de la atencion. Son las mismas para todos los tokens dentro de una capa — es lo que el modelo ajusta, a golpe de gradiente, para que las "preguntas" correctas encuentren las "etiquetas" correctas.
El factor √d_k de la formula sirve para evitar que los productos escalares exploten cuando la dimension es grande. Sin el, los valores antes del softmax se vuelven enormes, el softmax se satura y el gradiente muere. Detalle tecnico, pero necesario.
Varias preguntas a la vez
Un unico conjunto de preguntas no basta. Un token puede necesitar mirar su sujeto sintactico y su correferencia y el verbo principal al mismo tiempo.
De ahi la multi-head attention: en vez de un solo sistema Q-K-V, hacemos funcionar varios en paralelo (normalmente 8, 16, 32). Cada uno aprende a especializarse en un tipo de relacion. En modelos entrenados se observan heads dedicados a:
- la atencion local (cada token mira a si mismo o a sus vecinos inmediatos)
- el vinculo sujeto-verbo
- las correferencias (pronombres hacia su referente)
- los delimitadores (puntuacion, inicio/fin de frase)
- la rima o la estructura poetica
- cosas que aun no sabemos nombrar
Manipula
La visualizacion muestra, en dos frases, como puede verse la atencion de distintas heads. Los patrones son estilizados (los pesos reales vendrian de un modelo entrenado), pero cada head corresponde a un comportamiento observado en modelos actuales.
Cada fila muestra cómo un token mira a todos los demás. Algunos heads siguen la sintaxis (sujeto ↔ verbo), otros capturan la semántica (referentes, antecedentes). Ninguno está programado a mano: estos patrones emergen del entrenamiento.
Tres cosas para probar:
- En El gato duerme con la head "Sujeto ↔ verbo", mira la fila
duerme. El peso mas fuerte va agato. El verbo ha "encontrado" su sujeto. - En Correferencia con la head "Correferencia", mira la fila
el. El peso mas fuerte vuelve aniño. Es exactamente el mecanismo que resuelve el enigma del pronombre. - En cualquier head, mira el triangulo superior derecho: es gris. Es la mascara causal — un token solo puede mirar los tokens anteriores. Es lo que obliga al modelo a predecir, no a copiar.
Causal o bidireccional?
No todas las atenciones son iguales. Existen dos regimenes.
Bidireccional. Cada token ve todos los demas, hacia atras y hacia adelante. Es lo que usan BERT (Google, 2018) o los encoders de T5. Esos modelos brillan a la hora de comprender una frase — clasificacion, pregunta-respuesta extractiva, busqueda semantica — pero no generan texto token a token.
Causal. Cada token solo ve los anteriores. Es la mascara triangular que vimos antes. Esa restriccion es lo que hace posible la generacion autoregresiva: para producir la siguiente palabra, el modelo necesita poder predecir solo a partir del pasado.
GPT, Claude, Llama, Gemini, Mistral — todos los LLM de gran consumo son modelos de atencion causal. Es esa mascara la que los hace capaces de predecir, no solo de describir.
La atencion cuesta
Esta elegancia tiene un precio. Para una secuencia de longitud n, calcular la matriz de atencion requiere O(n²) operaciones. Duplicar el tamaño del contexto cuadruplica el coste.
Por eso las ventanas de contexto estaban limitadas a 2.048 tokens en GPT-2, a 8.192 tokens en GPT-3.5, y se necesitaron trucos algoritmicos (FlashAttention, sliding window, sparse attention) para llegar a los 200.000 tokens actuales. Volvemos sobre estas tecnicas en el capitulo 18, donde se conectan con la memoria del KV cache.
La atencion es potente; tambien es el principal cuello de botella de los LLM modernos.
Lo siguiente
La atencion por si sola no hace un modelo de lenguaje. Hay que apilarla en bloques sucesivos, añadir capas de calculo "feed-forward", normalizaciones, conexiones residuales. Es la arquitectura Transformer completa: el tema del proximo capitulo.
Actualizado el