Visión general
¿De dónde viene?
El Transformer nació para traducción automática neuronal. El reto: transformar una secuencia de palabras en otra preservando significado, orden, dependencias y contexto.
Los modelos previos (RNN/LSTM/GRU) procesaban tokens en secuencia. Esto limitaba la paralelización y creaba dificultades con dependencias de largo alcance.
El paper central: Vaswani et al. 2017 "Attention Is All You Need"
¿Qué resolvió?
| Problema | Solución |
|---|---|
| Secuencialidad de RNNs | Cálculo paralelo por capa |
| Dependencias largas | Self-attention directo |
| Alineamiento flexible | Enc-dec attention |
| Falta de orden | Positional encoding |
| Capacidad limitada | Multi-head + FFN |
Encoder (BERT-style)
Usa solo el encoder del Transformer. Atiende a todos los tokens bidireccionalmente.
Comprensión Clasificación, NER, QA
Decoder (GPT-style)
Usa solo el decoder con atención causal. Genera tokens de izquierda a derecha.
Generación Completado, traducción, chat
Encoder-Decoder (T5-style)
Arquitectura completa. El encoder procesa la entrada y el decoder genera la salida.
Secuencia-a-Secuencia Traducción, resumen
Arquitectura del Transformer
Diagrama interactivo de flujo: encoder, decoder y memoria
El punto crítico es distinguir de dónde vienen Q, K y V. En self-attention los tres salen de la misma secuencia; en cross-attention, Q viene del decoder y K,V vienen de la memoria producida por el encoder.
Selecciona un bloque para ver su descripción
El diagrama muestra el flujo de información por capa. Observa especialmente la ruta horizontal: la salida del encoder alimenta la cross-attention del decoder como memoria K,V.
Configuración base del paper original
| Hiperparámetro | Valor base | Descripción |
|---|---|---|
| Capas encoder/decoder | N = 6 | Número de bloques apilados |
| Dimensión del modelo | d_model = 512 | Ancho de todas las representaciones |
| Cabezas de atención | h = 8 | Atenciones paralelas |
| d_k = d_v | 64 | 512 / 8 = 64 por cabeza |
| Dimensión FFN interna | d_ff = 2048 | Capa oculta de la FFN |
| Dropout | 0.1 | Regularización |
Mecanismos de Atención
Intuición
Al generar una palabra, no todas las palabras de entrada importan lo mismo. La atención aprende a asignar pesos a las posiciones relevantes.
Ejemplo: al traducir black cat → le chat noir, al generar noir el modelo debe atender principalmente a black, no a todas las palabras por igual.
Cálculo básico (encoder-decoder attention)
Sea h₁, …, hₙ la secuencia de estados del encoder. En el paso t del decoder:
Donde cₜ es el vector de contexto dinámico usado por el decoder en el paso t.
Scaled Dot-Product Attention — Paso a paso interactivo
Ejemplo con 3 tokens: gato negro corre — vectores de dimensión dk = 2 para visualización.
Es la pregunta que hace cada token: “¿qué tipo de información necesito de la secuencia?”
Es la etiqueta consultable de cada token: “¿qué información puedo ofrecer y cuándo soy relevante?”
Es el contenido que se copiará o mezclará si el token recibe atención alta.
En self-attention, Q, K y V salen de la misma secuencia. En cross-attention, Q sale del decoder y K,V salen del encoder. La diferencia no es la fórmula; es la fuente de las matrices.
Los vectores apuntan en direcciones similares. El token de la fila considera relevante al token de la columna.
Hay relación parcial. Puede aportar algo, pero no domina la mezcla final.
Poca compatibilidad. Después del softmax recibirá un peso menor.
Ejemplo fila gato:
S[gato,gato] = 1.0×0.8 + 0.5×0.4 = 1.00
S[gato,negro] = 1.0×0.3 + 0.5×0.9 = 0.75
S[gato,corre] = 1.0×0.6 + 0.5×0.2 = 0.70
Cada fila suma 1. El valor más alto en cada fila (resaltado) indica el token al que más atiende cada posición.
Visualización de pesos de atención — Heatmap interactivo
Oración: "El gato negro corre rápido hoy" — pesos simulados de una capa de self-attention. Haz clic en una celda para interpretar la relación fila → columna.
Multi-Head Attention
Fórmula
Dimensiones (modelo base)
- h = 8 cabezas, d_model = 512
- d_k = d_v = d_model/h = 64
- WiQ, WiK ∈ ℝ512×64
- WiV ∈ ℝ512×64
- WO ∈ ℝ512×512
¿Por qué múltiples cabezas?
Una sola atención queda limitada a una única proyección. Las múltiples cabezas permiten:
- Head 1: puede capturar relaciones locales / sintácticas
- Head 2: puede capturar dependencias semánticas
- Head 3: puede atender a posiciones o marcadores específicos
- ... cada cabeza aprende un criterio de compatibilidad diferente
Flujo pedagógico — cómo trabaja Multi-Head
La intuición importante: no son h copias idénticas. Cada cabeza recibe proyecciones aprendidas distintas, atiende con sus propios criterios y luego todas sus salidas se recombinan.
X se multiplica por pesos distintos: WQi, WKi, WVi. Cada cabeza ve un subespacio diferente.
Cada cabeza calcula su propia matriz Ai y su propia mezcla AiVi. Esto ocurre simultáneamente.
Las salidas de las cabezas se pegan en la dimensión de features: [head₁ | head₂ | ... | headh].
WO mezcla las cabezas y devuelve la representación al tamaño d_model para continuar con residual, LayerNorm y FFN.
Visualización por cabeza — Patrones de atención simulados
Selecciona una cabeza para ver su patrón de atención. Tokens: Elgatonegrocorre
Componentes del Transformer
Positional Encoding
Fórmula sinusoidal (Vaswani et al.)
Donde pos es la posición del token e i es el índice de dimensión. Cada dimensión oscila a una frecuencia diferente.
Señal multiescala: dimensiones de alta frecuencia cambian rápido (distinguen posiciones cercanas), las de baja frecuencia cambian lento (distinguen posiciones lejanas).
Propiedad relativa: Para cualquier desplazamiento fijo k, PEpos+k puede expresarse como transformación lineal de PEpos, facilitando que el modelo aprenda relaciones relativas.
Sin parámetros: No agrega parámetros entrenables y puede extrapolarse a longitudes no vistas (con limitaciones).
| Tipo | PPL ↓ | BLEU ↑ |
|---|---|---|
| Sinusoidal (Vaswani et al.) | 4.92 | 25.8 |
| Aprendida | 4.92 | 25.7 |
En el paper original, el rendimiento fue casi idéntico. La sinusoidal se eligió por no agregar parámetros y por posibilitar extrapolación.
Visualización — patrones sinusoidales
Cada fila = posición (0-15). Cada columna = dimensión. Colores representan el valor del positional encoding.
Feed-Forward Network (FFN)
¿Qué hace?
Después de que la atención mezcla información entre tokens, la FFN transforma cada representación individualmente.
- Se aplica posición por posición (los mismos pesos para todas las posiciones)
- No introduce interacción nueva entre tokens
- Atención = comunicación entre tokens
- FFN = procesamiento local por token
Dimensiones (modelo base)
| Capa | Tamaño |
|---|---|
| Entrada (x) | d_model = 512 |
| Capa oculta (ReLU) | d_ff = 2048 |
| Salida | d_model = 512 |
Add & LayerNorm (Residual + Normalización)
Residual connection
Suma la entrada x con la salida de la subcapa. Esto:
- Mejora el flujo de gradientes en redes profundas
- Permite que el modelo aprenda correcciones sobre la identidad
- Facilita entrenar N=6 o más capas sin degradación
Layer Normalization
Normaliza a lo largo de la dimensión de features (no del batch). Para cada token calcula media y varianza propias.
γ y β son parámetros aprendidos. Estabiliza las activaciones sin depender del tamaño de batch.
Comparación estructural: RNN vs CNN vs Self-Attention
| Capa | Complejidad | Operaciones secuenciales | Longitud máx. de ruta |
|---|---|---|---|
| Self-Attention | O(n²d) | O(1) | O(1) |
| Recurrente (RNN) | O(nd²) | O(n) | O(n) |
| Convolucional | O(knd²) | O(1) | O(logkn) |
BERT — Bidirectional Encoder Representations from Transformers
Arquitectura
| Variante | Capas | H | Cabezas | Parámetros |
|---|---|---|---|---|
| BERT Base | 12 | 768 | 12 | 110M |
| BERT Large | 24 | 1024 | 16 | 340M |
Input = TokenEmb + SegmentEmb + PositionEmb
Cada vector tiene dimensión H (768 en Base).
Pre-entrenamiento: dos tareas
Se enmascara el 15% de los tokens y se entrena al modelo para predecirlos usando el contexto completo (bidireccional).
Estrategia: 80% → [MASK], 10% → palabra aleatoria, 10% → sin cambio.
Esto evita que el modelo dependa exclusivamente del token [MASK] durante fine-tuning.
Dado un par (A, B), predecir si B sigue naturalmente a A en el texto.
50% pares reales (IsNext), 50% pares aleatorios (NotNext).
El vector [CLS] al final se usa para la clasificación binaria.
Nota: RoBERTa eliminó NSP y mejoró resultados entrenando más tiempo con más datos.
Demo interactivo — Masked Language Modeling
Haz clic en los tokens coloreados para enmascararlos. Luego pulsa Predecir para ver las predicciones del modelo (simuladas).
Fine-tuning: la misma arquitectura, distintas tareas
Agregar capa sobre [CLS]. Análisis de sentimiento, detección de spam.
Capa sobre cada token. Personas, organizaciones, lugares.
Predecir inicio/fin de respuesta en el párrafo. SQuAD benchmark.
Familia BERT — modelos derivados relevantes
GPT — Generative Pretrained Transformers
Arquitectura — Decoder-only
Cada bloque del decoder en GPT incluye:
- Masked self-attention — atiende solo a posiciones previas (máscara causal triangular)
- Feed-Forward Network — transformación no lineal por token
- Add & LayerNorm — residuales y normalización
Objetivo de pre-entrenamiento
El modelo aprende a maximizar la probabilidad del siguiente token dado el contexto previo. Es autoregresivo: cada token generado se agrega al contexto para predecir el siguiente.
Evolución — GPT-1 a GPT-4
GPT-1 — 117M parámetros
Proof of concept. Decoder-only con 12 capas. Demuestra que el pre-entrenamiento + fine-tuning funciona en NLP.
GPT-2 — 1.5B parámetros, ctx: 1024
Entrenado en WebText (Reddit). Mayor coherencia de largo aliento. Demostró capacidad de generación de texto convincente.
GPT-3 — 175B parámetros, ctx: 2048
Emergencia del few-shot in-context learning. Sin fine-tuning, puede resolver tareas con pocos ejemplos en el prompt.
GPT-3.5 / ChatGPT — RLHF
Reinforcement Learning from Human Feedback. Modelo aprende a seguir instrucciones y genera respuestas más útiles y seguras.
GPT-4 — Multimodal, ctx: 32k+
Procesa texto e imágenes. MMLU: 86.4%. Red-teaming y alineación. Escalamiento predecible via power laws.
Demo interactivo — Generación autoregresiva
Pulsa Siguiente token para ver cómo GPT genera texto token por token, con la distribución de probabilidad en cada paso.
Técnicas modernas con modelos GPT
Diseñar la entrada al modelo para inducir el comportamiento deseado sin modificar los pesos.
Funciona bien en modelos instructivos (GPT-3.5+, GPT-4) entrenados con RLHF.
Ejemplo: "Eres un experto en… Responde concisamente…"
Incluir ejemplos (few-shot) directamente en el prompt. El modelo generaliza sin actualizar pesos.
Zero-shot: sin ejemplos. One-shot: un ejemplo. Few-shot: varios ejemplos.
Emerge con fuerza en modelos grandes (GPT-3+).
Incluir pasos de razonamiento intermedios en el prompt o pedirle al modelo que "piense paso a paso".
Mejora notablemente tareas de razonamiento, aritmética y lógica en modelos grandes.
Requiere modelos grandes: GPT-2 no puede hacer CoT efectivo.
Comparación: BERT vs GPT
Tabla resumen completa
| Aspecto | BERT | GPT |
|---|---|---|
| Arquitectura base | Encoder Transformer | Decoder Transformer |
| Dirección de atención | Bidireccional | Unidireccional (causal) |
| Objetivo de pre-entrenamiento | MLM + NSP | Autoregressive LM |
| Masked attention | No (excepto padding) | Sí (máscara causal) |
| Tarea principal | Comprensión (NLU) | Generación (NLG) |
| Fine-tuning típico | Por tarea, pesos actualizados | Zero/few-shot con prompts |
| Token especial de salida | [CLS] para clasificación | Último token → predicción |
| Paralelismo en entrenamiento | Sí (todos los tokens a la vez) | Sí (teacher forcing) |
| Paralelismo en inferencia | Sí | No (autoregresivo) |
Literatura clave
- Vaswani et al. (2017) — Attention Is All You Need. NeurIPS.
- Devlin et al. (2018) — BERT: Pre-training of Deep Bidirectional Transformers.
- Radford et al. (2018) — Improving Language Understanding by Generative Pre-Training. (GPT)
- Radford et al. (2019) — Language Models are Unsupervised Multitask Learners. (GPT-2)
- Brown et al. (2020) — Language Models are Few-Shot Learners. (GPT-3)
- Liu et al. (2019) — RoBERTa: A Robustly Optimized BERT Pretraining Approach.
- He et al. (2021) — DeBERTa: Decoding-enhanced BERT with Disentangled Attention.
- Jain & Wallace (2019) — Attention is not Explanation.
- Wiegreffe & Pinter (2019) — Attention is not not Explanation.
- Wei et al. (2022) — Emergent Abilities of Large Language Models.