Transformadores: qué son, cómo funcionan y por qué lo cambiaron todo
Explicación accesible de la arquitectura Transformer. Entiende la atención, los codificadores, los decodificadores y por qué ChatGPT no sería posible sin ellos.
Respuesta rápida
Un Transformer es una arquitectura de red neuronal que procesa secuencias enteras de una sola vez, sin depender de un estado interno que se actualice paso a paso. Su truco es el mecanismo de atención: cada palabra (o píxel, o fragmento de audio) puede "mirar" directamente a cualquier otra, independientemente de la distancia. Esto eliminó los cuellos de botella de las redes recurrentes y permitió entrenar modelos masivos como GPT o BERT.
El problema que resuelven
Si has programado alguna vez un bucle for, ya entiendes el problema de las redes neuronales recurrentes (RNN). Una RNN lee una secuencia como tú leerías esta frase: palabra por palabra, llevando en la memoria un resumen de lo visto hasta ahora.
El problema aparece cuando la frase es larga. Imagina que empiezas un párrafo con "Juan se compró un coche" y al final preguntas "¿De qué color era?". Una RNN tendría que recordar el color durante todo el párrafo, y la memoria se degrada con la distancia. A esto se le llama pérdida de dependencias a largo plazo.
Además, las RNN son secuenciales por naturaleza: no puedes procesar la palabra 10 hasta haber procesado la 9. Eso las hace lentas de entrenar y difíciles de paralelizar en GPUs modernas.
En 2017, un equipo de Google publicó un artículo titulado Attention Is All You Need. La propuesta era radical: olvídate de la recurrencia. Si el problema es que las palabras lejanas no se ven, haz que cada palabra pueda ver directamente a todas las demás. Así nació el Transformer.
La intuición de la atención
Imagina que estás en una sala llena de personas y alguien te pregunta: "¿Conoces a María?". Tu cerebro no revisa a todos los presentes uno por uno en orden. Directamente diriges tu atención hacia donde crees que está María. Le das más importancia a ciertas personas y menos al resto.
Eso es exactamente lo que hace la atención en un Transformer. Para cada palabra de la secuencia, el modelo calcula cuánto debe "fijarse" en cada una de las demás palabras.
Técnicamente, esto se implementa con tres vectores que se aprenden durante el entrenamiento:
- Query (Q): "¿Qué estoy buscando?"
- Key (K): "¿Qué información tengo para ofrecer?"
- Value (V): "¿Cuál es mi contenido real?"
La fórmula, conocida como producto escalar escalado, se escribe así:
No te asustes por la notación. En código Python con NumPy sería algo como:
import numpy as np
def atencion(Q, K, V):
d_k = Q.shape[-1]
scores = np.dot(Q, K.T) / np.sqrt(d_k) # similitudes
pesos = np.exp(scores) / np.sum(np.exp(scores), axis=-1, keepdims=True) # softmax
return np.dot(pesos, V) # combinación ponderada
El resultado es una nueva representación de cada palabra, ya "enriquecida" con el contexto de las palabras más relevantes para ella.
Multi-Head Attention: muchos pares de ojos
Una sola cabeza de atención aprende un tipo de relación. Pero el lenguaje tiene muchas: sinónimos, antónimos, referencias temporales, relaciones de género... Por eso los Transformers usan atención multi-cabezal (multi-head attention): varias capas de atención trabajando en paralelo, cada una aprendiendo patrones distintos.
Las salidas de todas las cabezas se concatenan y se proyectan linealmente para volver al tamaño original. En BERT-base se usan 12 cabezas; en GPT-3, 96. Más cabezas = más capacidad de capturar relaciones diversas, pero también más parámetros y más memoria.
Arquitectura codificador-decodificador
El Transformer original está formado por dos torres: codificadores y decodificadores.
Codificador: Lee toda la secuencia de entrada (por ejemplo, una frase en inglés) y genera una representación interna rica en contexto. Usa atención bidireccional: cada palabra ve a todas las demás, tanto las anteriores como las posteriores.
Decodificador: Genera la salida palabra por palabra (por ejemplo, la traducción en español). Tiene dos mecanismos de atención:
- Auto-atención enmascarada: cada palabra generada solo puede mirar hacia atrás, no hacia adelante. Esto evita que el modelo haga trampa y mire la respuesta correcta.
- Atención cruzada: consulta las representaciones del codificador para saber qué partes de la entrada son relevantes en cada paso.
Las conexiones residuales (las sumas Add & Norm) son críticas: permiten que el gradiente fluya sin atenuarse a través de las muchas capas. Sin ellas, una red de 24 o 96 capas sería imposible de entrenar.
¿Cómo sabe el modelo dónde está cada palabra?
Un detalle sutil: si todas las palabras se procesan en paralelo, ¿cómo sabe el modelo que "gato" aparece antes que "come"? Las RNN lo sabían implícitamente porque procesaban en orden. Los Transformers no.
La solución es el positional encoding: un vector numérico que se suma al embedding de cada token para codificar su posición en la secuencia. En el diseño original se usan funciones seno y coseno de diferentes frecuencias:
Hoy en día muchos modelos simplemente aprenden estos vectores de posición como parámetros entrenables. La idea es la misma: darle al modelo una señal de "dónde estoy".
Los tres grandes familias de Transformers
Desde 2017, la arquitectura original se ha ramificado en tres familias principales. Entender la diferencia es clave para leer papers o elegir modelos preentrenados:
| Familia | Arquitectura | Atención | Uso típico | Ejemplo |
|---|---|---|---|---|
| Secuencia a secuencia | Codificador + Decodificador | Bidireccional en encoder, causal en decoder | Traducción, resumen, QA | T5, BART |
| Auto-codificador | Solo codificadores | Bidireccional completa | Clasificación de texto, embeddings, NER | BERT, RoBERTa |
| Auto-regresivo | Solo decodificadores | Causal (solo mira hacia atrás) | Generación de texto, chatbots, código | GPT, LLaMA, Claude |
BERT (codificador puro) lee una frase entera y predice palabras enmascaradas. Es excelente para entender texto, pero no puede generarlo.
GPT (decodificador puro) genera texto palabra por palabra, cada una condicionada a las anteriores. Es el corazón de ChatGPT y todos los grandes modelos de lenguaje actuales.
T5 mantiene ambas torres y reformula cualquier tarea como "texto a texto": traducción, clasificación, resumen... todo se convierte en secuencia de entrada → secuencia de salida.
De las palabras a las imágenes (y más allá)
El Transformer nació para texto, pero su arquitectura es tan generalista que ha colonizado otros dominios:
- Visión (ViT): La imagen se divide en parches de 16×16 píxeles, cada parche se convierte en un "token" visual, y el Transformer procesa la secuencia de parches exactamente igual que palabras. Hoy compite con las redes convolucionales en ImageNet.
- Audio: Modelos como Whisper o Wav2Vec 2.0 convierten espectrogramas en secuencias de tokens y usan Transformers para transcribir voz a texto.
- Multimodal: Arquitecturas como CLIP o GPT-4o combinan texto e imágenes en una sola secuencia de tokens, permitiendo preguntar por una foto o generar una imagen desde una descripción.
La clave está en la tokenización: convertir cualquier tipo de dato en una secuencia de vectores. Una vez hecho eso, el Transformer no distingue si viene de una palabra, un píxel o una nota musical.
Preguntas frecuentes
¿Por qué los Transformers necesitan tantos datos?
Porque no tienen priores estructurales fuertes. Una red convolucional asume que los píxeles cercanos se relacionan; una RNN asume secuencialidad. El Transformer asume muy poco, así que debe aprender casi todo de los datos. Es un arquitecto generalista que necesita muchos ejemplos para especializarse.
¿Cuál es la diferencia entre "self-attention" y "cross-attention"?
La auto-atención (self-attention) compara elementos de la misma secuencia entre sí. La atención cruzada (cross-attention) compara una secuencia (por ejemplo, la frase en inglés) con otra (la traducción parcial en español). Es lo que permite al decodificador "consultar" al codificador.
¿Qué es la máscara causal y para qué sirve?
Es una matriz triangular que pone a las posiciones futuras antes del softmax. Como , esas posiciones quedan anuladas. Así, al generar la palabra número 5, el modelo no puede ver las palabras 6, 7, 8... Solo puede mirar hacia atrás.
¿Necesito entender todo esto para usar Hugging Face?
No. Puedes cargar un modelo preentrenado en tres líneas de Python y obtener resultados excelentes. Pero si entiendes qué hay dentro, sabrás por qué falla, cómo ajustarlo (fine-tuning) y cuándo un Transformer es la herramienta adecuada —y cuándo un simple if basta.
¿Quieres saber más? Si te interesa una visión rigurosa y matemática de todo lo explicado aquí, te recomiendo el artículo de Jordi de la Torre: Transformadores: Fundamentos teóricos y Aplicaciones. Es una referencia completa en español que profundiza en cada ecuación, algoritmo y variante de la arquitectura.
Artículos relacionados
¿Qué es realmente la IA? Mitos, realidades y una breve historia
Las diferencias claras entre IA, machine learning, deep learning y data science.
RelacionadoRedes Neuronales desde Cero: Guía Práctica con Python y TensorFlow
Construye tu primera red neuronal y entiende cómo aprende una máquina.
Sobre el autor
Apasionado por la tecnología y la innovación, con más de 20 años de experiencia en desarrollo de software y consultoría tecnológica. Su trayectoria profesional comenzó en 2001 como programador, evolucionando desde entonces combinando su amor por el código con una sólida visión de negocio.
Ha trabajado tanto en España como en el extranjero, en sectores diversos como telecomunicaciones, banca, seguros y marketing digital. Esta experiencia multidisciplinar le permite entender los retos técnicos desde una perspectiva de negocio real.
Hoy aporta su experiencia asesorando en la modernización de procesos y la implementación de herramientas tecnológicas que optimizan la gestión y las relaciones con clientes. Se especializa en ayudar a equipos a integrar inteligencia artificial de forma práctica y responsable.
Cree firmemente en el aprendizaje continuo y que el verdadero progreso solo se logra creciendo juntos.