Attention Is All You Need: el paper que creó a ChatGPT (y cómo usarlo a tu favor)

Attention Is All You Need: el paper que creó a ChatGPT (y cómo usarlo a tu favor)

ChatGPT, Gemini, Llama, DeepSeek… todos tienen algo en común, y está escondido en una letra: la T de GPT significa Transformer.

Y el Transformer no salió de la nada. Salió de un paper de 15 páginas publicado en 2017 por ocho investigadores de Google (Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser e Illia Polosukhin) con un título casi arrogante: “Attention Is All You Need”. La atención es todo lo que necesitas.

Tenían razón. Ese paper es probablemente el más influyente de la década en inteligencia artificial.

Te lo voy a explicar sin que necesites un doctorado en matemáticas: qué problema resolvió, cómo funciona por dentro, por qué fue tan importante y, lo más útil, cómo usar ese conocimiento para sacarle más jugo a la IA que usas todos los días.


El problema: las máquinas leían con una linterna

Antes de 2017, los modelos de lenguaje usaban redes recurrentes (RNN, LSTM, GRU). Funcionaban así: leían el texto palabra por palabra, de izquierda a derecha, y cada palabra actualizaba una especie de “memoria” que pasaba a la siguiente.

Imagínate leer un libro en una habitación oscura con una linterna que solo ilumina una palabra a la vez. Tienes que ir recordando todo lo anterior mientras avanzas. Eso generaba dos problemas serios:

  1. No se podía paralelizar. Para procesar la palabra 100 había que procesar antes la 99, y antes la 98… Las GPU, que son buenísimas haciendo miles de cálculos al mismo tiempo, se quedaban esperando. Entrenar modelos grandes era lentísimo.
  2. Se olvidaban de lo que estaba lejos. Mientras más distancia había entre dos palabras relacionadas, más se diluía la información en el camino (el famoso desvanecimiento del gradiente). Al final de un párrafo largo, el modelo ya no recordaba bien el principio.

La idea: que cada palabra mire a todas las demás

La propuesta del paper fue radical: eliminar por completo la lectura secuencial. En vez de una linterna, prender la luz de toda la habitación. Cada palabra (técnicamente, cada token) puede mirar directamente a todas las demás, al mismo tiempo.

Eso se llama autoatención (self-attention). Un ejemplo:

«El gato no cruzó la calle porque estaba muy cansado.»

¿Quién estaba cansado, el gato o la calle? Tú lo sabes al instante. Con autoatención, el modelo calcula qué tanto se relaciona “estaba” con cada palabra de la frase, y le asigna mucho peso a “gato”. Así entiende el contexto.

Query, Key y Value: como buscar en una biblioteca

Piensa en cómo buscas en una biblioteca: escribes lo que necesitas en el buscador, el sistema lo compara con las etiquetas de cada libro y te llevas los libros que mejor coinciden. La atención funciona igual, con tres piezas:

  • Query (la búsqueda): lo que un token necesita saber de los demás.
  • Key (la etiqueta): lo que cada token anuncia que ofrece, para que lo encuentren.
  • Value (el contenido): la información que ese token entrega cuando lo eligen.

El detalle importante: cada token tiene las tres al mismo tiempo. Todos buscan, todos se anuncian y todos aportan contenido.

Sigamos el viaje de la palabra “estaba” en nuestra frase:

«El gato no cruzó la calle porque estaba muy cansado.»

  1. Busca. Su Query dice algo como: “soy un verbo y necesito saber quién es el que está”.
  2. Compara. Esa búsqueda se compara con la Key de cada palabra de la frase. La Key de “gato” anuncia algo como “soy un sustantivo, un ser vivo que puede hacer cosas”, así que coincide mucho. La de “calle” coincide poco y la de “porque”, casi nada.
  3. Mezcla. Esos puntajes se convierten en porcentajes y con ellos se mezclan los Values. Por ejemplo (los números son ilustrativos):
PalabraCoincidencia con la búsqueda de “estaba”Cuánto aporta su contenido
gatoAlta~70%
calleBaja~10%
cansadoMedia~15%
el restoMuy baja~5%

El resultado es una nueva versión de “estaba” que ya lleva dentro la información de “gato”. Ahora el modelo sabe quién estaba cansado.

Y ojo con algo: nadie programó a mano esas búsquedas ni esas etiquetas. Los ejemplos entre comillas son una forma de explicarlo; en la realidad son vectores de números que el modelo aprende solo durante el entrenamiento, después de leer miles de millones de frases.

La fórmula del paper es esta (y te prometo que es la única):

Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V

En español: multiplica cada búsqueda por todas las etiquetas (QKᵀ), convierte esos puntajes en porcentajes que suman 100% (softmax) y usa esos porcentajes para mezclar los contenidos (V). El √dₖ es un detalle técnico pero clave: divide los números para que no crezcan demasiado, porque si crecen, el entrenamiento se vuelve inestable.

Varias cabezas leen mejor que una

En lugar de calcular la atención una sola vez, el Transformer la calcula 8 veces en paralelo (en su versión base), cada una en un subespacio distinto. Es lo que se llama atención multi-cabezal (multi-head attention).

Piénsalo como 8 lectores revisando el mismo texto, cada uno con un lente diferente: uno se fija en la gramática, otro en a qué se refieren los pronombres, otro en el tema general.

Los autores lo comprobaron con experimentos: con una sola cabeza, la calidad de traducción cayó 0,9 puntos BLEU (de 25,8 a 24,9). Pero con 32 cabezas también empeoró (25,4), porque cada una quedaba con muy poquito espacio para trabajar. Ni tan poco, ni tanto.

¿Y el orden de las palabras?

Aquí hay un detalle curioso: como la atención mira todo al mismo tiempo, por sí sola no sabe en qué orden estaban las palabras. Para ella, “el perro mordió al hombre” y “el hombre mordió al perro” serían lo mismo.

La solución fue la codificación posicional: a cada token se le suma una especie de “marca de posición” construida con ondas de seno y coseno de distintas frecuencias. Así el modelo sabe quién va primero y quién después, sin volver a la lectura secuencial.


¿Por qué fue tan importante?

Porque resolvió los dos problemas de un solo golpe:

Redes recurrentes (RNN/LSTM)Transformer
Cómo procesaPalabra por palabra, en filaTodas las palabras al mismo tiempo
Distancia entre dos palabras lejanasCrece con el texto (la información se diluye)Siempre un solo paso (conexión directa)
Uso de GPUDesaprovechadoParalelización masiva

Y los números lo respaldaron. En el benchmark de traducción inglés-alemán WMT 2014, el Transformer grande sacó 28,4 BLEU, superando por más de 2 puntos a todo lo que existía, incluidos los “ensambles” de varios modelos. Y lo hizo con mucho menos cómputo: unas 2,3 × 10¹⁹ operaciones frente a 7,7 × 10¹⁹ del mejor modelo convolucional ensamblado. El modelo grande se entrenó en 3,5 días con 8 GPU.

Pero lo verdaderamente revolucionario no fue la traducción. Fue que, al poder entrenarse en paralelo, el tamaño de los modelos dejó de estar limitado por el algoritmo y pasó a depender solo del hardware disponible. Eso abrió la puerta a escalar: más datos, más parámetros, más GPU. Así llegamos a los LLMs.

El precio a pagar: el costo cuadrático

No todo es gratis. Como cada token mira a todos los demás, si tu texto tiene n tokens, el modelo calcula n × n relaciones. Duplica el texto y el trabajo de la atención se cuadruplica.

Por eso los contextos largos son caros, y por eso existe toda una línea de investigación para hacer la atención más eficiente (como FlashAttention, que reorganiza los cálculos dentro de la GPU sin perder exactitud). Es el mismo muro que modelos como Gemini 4 Argon han tenido que derribar para generar respuestas de un millón de tokens.


Las tres familias que nacieron del Transformer

El diseño original tenía dos partes: un codificador (que lee y entiende la entrada) y un decodificador (que genera la salida token por token). De ahí salieron tres familias:

FamiliaEjemplosPara qué sirve
Solo codificadorBERT, RoBERTa, ModernBERTEntender texto: clasificar, extraer información, embeddings
Solo decodificadorGPT, Llama, Gemini, DeepSeekGenerar texto: chat, razonamiento, código. Es la base de los LLMs
Codificador-decodificadorT5, BARTTransformar un texto en otro: traducir, resumir

Esto tiene implicaciones prácticas. Por ejemplo, Laya está construido sobre ModernBERT (solo codificador) y por eso clasifica rapidísimo sin generar texto, como vimos en JEV vs. Laya. En cambio, los LLMs generativos escriben token por token, que es justamente lo que hace que usarlos para decisiones simples sea un desperdicio.

Y la idea no se quedó en el texto: el Vision Transformer (ViT) parte las imágenes en cuadritos y los trata como si fueran palabras, y AlphaFold usa atención para predecir la forma 3D de las proteínas.


Cómo usar esto a tu favor (aunque nunca vayas a entrenar un modelo)

Aquí viene lo bueno. No necesitas programar un Transformer para beneficiarte de entender cómo funciona. Cinco consejos prácticos que salen directamente de su arquitectura:

1. La IA no lee palabras, lee tokens

Los modelos no ven letras ni palabras: ven tokens, pedazos de palabras convertidos en números (con un método llamado Byte Pair Encoding). Y los tokenizadores están optimizados sobre todo para inglés.

Qué significa para ti: un texto en español o un JSON puede consumir entre un 30% y un 150% más de tokens que el mismo contenido en inglés. Eso es más costo en la API y menos espacio en la ventana de contexto. Si trabajas con APIs, mide el consumo real con herramientas como tiktoken y quita espacios y relleno innecesarios.

2. El orden de tu prompt importa (y mucho)

Los modelos generativos usan atención causal: cada token solo puede mirar hacia atrás, nunca hacia adelante. Si pones la pregunta y las opciones antes del contexto, el modelo “lee” la pregunta sin haber visto todavía la información necesaria.

Además, en textos largos la atención tiene forma de U: el modelo atiende muy bien al principio y al final, pero se debilita en la mitad. Es el famoso Lost in the Middle, del que ya hablamos en desarrollo modular con IA.

Qué hacer:

  • Estructura tus prompts como Contexto → Pregunta → Opciones.
  • Pon el rol y las reglas importantes al inicio.
  • Pon los documentos de consulta en el medio.
  • Repite la pregunta y el formato de salida en la última línea.
[INICIO] Eres un analista financiero. Responde solo con datos del documento.

[MEDIO] Documento: <aquí va el informe trimestral completo>

[FINAL] Con base en el documento anterior: ¿cuál fue el margen neto del Q3?
Responde en una sola línea con el porcentaje y la página donde aparece.

Por cierto, por la misma razón la técnica BLUF (la respuesta primero) funciona tan bien para que las IAs citen tus artículos.

3. Deja quieto el comienzo del prompt (y ahorra plata)

Cuando el modelo genera texto, guarda en memoria las Keys y Values de lo que ya procesó para no recalcularlos. Eso se llama KV Cache, y los proveedores lo aprovechan con el prompt caching: si el inicio de tu prompt es idéntico al de una llamada anterior, te cobran menos y responde más rápido.

La trampa: si cambias un solo carácter al principio (por ejemplo, poner la fecha y hora actual o el ID del usuario en la primera línea), invalidas toda la caché que venía después.

Qué hacer: deja las instrucciones del sistema 100% fijas al inicio y pon lo variable (datos del usuario, fecha, mensaje) al final. Con descuentos de caché que pueden llegar al 95%, como en Gemini 4 Argon, la diferencia en la factura es enorme.

4. Pídele que piense en voz alta (cuando vale la pena)

Un Transformer no tiene un espacio oculto donde “pensar” antes de responder: su capacidad de cálculo está atada a los tokens que genera. Cuando le pides que razone paso a paso, cada paso intermedio queda escrito y disponible para que la atención lo use al calcular la respuesta final.

Pero ojo: no siempre conviene. Para tareas simples y bien definidas, como clasificar en categorías cerradas, el razonamiento largo agrega latencia y costo sin mejorar el resultado. Lo comprobé en mi experimento de clasificación de texto.

5. No le pidas JSON “por favor”: oblígalo

Escribir «responde en formato JSON» en el prompt funciona… casi siempre. Pero como la generación es probabilística, tarde o temprano se le escapa una coma o un valor que no existe en tu lista.

Qué hacer: usa el JSON Mode o los Structured Outputs de las APIs modernas (también llamado decodificación con gramática restringida). Estas funciones actúan directamente sobre las probabilidades del modelo y bloquean cualquier token que rompa tu esquema. No es una sugerencia; es una restricción. Y aun así, valida siempre la salida en tu código: en mi experimento, incluso con esquema estricto, DeepSeek Flash devolvió valores fuera del catálogo en 2 lotes.


Resumen: del paper a tu día a día

Concepto del TransformerCómo se comportaQué haces tú
Tokenización (BPE)Fragmenta más el español y el JSONMide tokens y quita relleno
Atención causalUn token no puede mirar hacia adelanteContexto primero, pregunta después
Lost in the MiddleLa atención se debilita en la mitadLo importante al inicio y repetido al final
KV Cache / Prompt cachingReutiliza lo calculado si el inicio es idénticoNada variable en las primeras líneas
Cómputo atado a tokensRazona mejor si escribe sus pasosPide paso a paso solo en tareas complejas
Generación probabilísticaPuede romper formatosUsa Structured Outputs, no instrucciones en texto

En resumen

“Attention Is All You Need” cambió una idea simple: en vez de leer con una linterna, prender la luz de toda la habitación. Esa decisión permitió entrenar en paralelo, conectar palabras lejanas sin perder información y escalar hasta los modelos que hoy usamos a diario.

Y entenderlo no es solo cultura general. Saber que el modelo lee tokens, que mira hacia atrás, que se distrae en la mitad y que reutiliza lo que ya calculó te convierte en un mejor usuario de la IA. Es exactamente el tipo de criterio que, como expliqué en La IA abarató el conocimiento, no el criterio, separa a quien usa la herramienta de quien la domina.


Fuentes y lecturas recomendadas

Ideas, herramientas y lecturas de IA que merecen ser probadas

EXPLORAR SILO COMPLETO→