Phase 08 - Lesson 01
Modelos Generativos — Taxonomía e Historia
Cada modelo de imagen, modelo de texto, modelo de video y modelo 3D cabe en uno de cinco grupos. Elige el grupo incorrecto y lucharás contra la matemática por semanas. Elige el correcto y los últimos doce años de progreso de la disciplina se organizarán de forma clara en tu cabeza.
Tipo: Aprender Lenguajes: Python Requisitos previos: Fase 2 (ML Fundamentals), Fase 3 (Deep Learning Core), Fase 7 · 14 (Transformers) Tiempo: ~45 minutos
El Problema
Un modelo generativo tiene una sola tarea: a partir de muestras de entrenamiento extraídas de una distribución desconocida p_data(x), generar nuevas muestras que parezcan provenir de esa misma distribución. Rostros, oraciones, archivos MIDI, estructuras de proteínas — si miras de cerca, todo es el mismo problema.
El detalle es que p_data vive en un espacio con millones de dimensiones (una imagen RGB de 512x512 tiene ~786k dimensiones), las muestras residen en una delgada variedad (manifold) dentro de ese espacio, y tal vez solo tengas unos 10 millones de ejemplos. Intentar estimar la densidad por fuerza bruta es inútil. Cada modelo generativo es un compromiso que intercambia un problema difícil por otro ligeramente menos difícil.
Cinco familias han sobrevivido a los últimos doce años. Saber qué compromiso hace cada familia te dice por qué gana en algunas tareas y falla por completo en otras.
El Concepto
1. Densidad explícita, manejable. Escribe log p(x) como una suma que realmente puedas evaluar. Los modelos autorregresivos (PixelCNN, WaveNet, GPT) factorizan p(x) = ∏ p(x_i | x_<i). Los flujos de normalización (Normalizing flows, como RealNVP, Glow) construyen p(x) como una transformación invertible de una base simple. Pros: verosimilitud exacta, pérdida de entrenamiento limpia. Contras: la inferencia autorregresiva es secuencial (lenta para secuencias largas), los flujos necesitan arquitecturas invertibles (lo que limita la arquitectura).
2. Densidad explícita, aproximada. Limita log p(x) por debajo (ELBO) y optimiza ese límite. Los VAE (Kingma 2013) usan un codificador-decodificador con una distribución a posteriori variacional. Los modelos de difusión (DDPM, Ho 2020) entrenan un eliminador de ruido (denoiser) que optimiza implícitamente un ELBO ponderado. La difusión es la arquitectura base dominante para imagen, video y 3D en 2026.
3. Densidad implícita. Ignora la densidad por completo; aprende un generador G(z) que produce muestras y un discriminador D(x) que distingue lo real de lo falso. GAN (Goodfellow 2014). Rápidas en la inferencia (una sola pasada hacia adelante) pero notoriamente inestables durante el entrenamiento. StyleGAN 1/2/3 siguen siendo el estado del arte para el fotorrealismo en dominios fijos (rostros, habitaciones) incluso en 2026.
4. Basados en score / tiempo continuo. Aprende el gradiente de la densidad de log ∇_x log p(x) (el score) directamente. Song & Ermon (2019) mostraron que la coincidencia de score (score matching) generaliza la difusión a una EDE (Ecuación Diferencial Estocástica). El flow matching (Lipman 2023) es la gran novedad de 2024-2026: entrenamiento libre de simulación, caminos más rectos, muestreo de 4 a 10 veces más rápido que DDPM. Stable Diffusion 3, Flux, AudioCraft 2 usan flow matching.
5. Autorregresivo basado en tokens sobre códigos discretos. Comprime datos de alta dimensión con un VQ-VAE o un cuantizador residual en una secuencia corta de tokens discretos, luego usa un Transformer para modelar la secuencia de tokens. Parti, MuseNet, AudioLM, VALL-E y el tokenizador de parches de Sora usan esto. Este es el grupo 1 sumado a un tokenizador aprendido.
Una breve historia
| Año | Modelo | Por qué fue importante |
|---|---|---|
| 2013 | VAE (Kingma) | Primer modelo generativo profundo con una pérdida de entrenamiento utilizable. |
| 2014 | GAN (Goodfellow) | Densidad implícita, sin verosimilitud — muestras sorprendentemente nítidas. |
| 2015 | DRAW, PixelCNN | Generación secuencial de imágenes. |
| 2017 | Glow, RealNVP | Flujos invertibles; verosimilitud exacta con profundidad. |
| 2017 | Progressive GAN | Primeros rostros de megapíxeles. |
| 2019 | StyleGAN / StyleGAN2 | Rostros fotorrealistas aún difíciles de superar para ese dominio específico. |
| 2020 | DDPM (Ho) | La difusión se vuelve práctica. |
| 2021 | CLIP, DALL-E 1, VQGAN | El texto a imagen se vuelve masivo. |
| 2022 | Imagen, Stable Diffusion 1, DALL-E 2 | Difusión latente + condicionamiento de texto = commodity. |
| 2022 | ControlNet, LoRA | Control preciso sobre difusión preentrenada. |
| 2023 | SDXL, Midjourney v5, Flow matching | Escala + mejor dinámica de entrenamiento. |
| 2024 | Sora, Stable Diffusion 3, Flux.1 | Difusión de video; victoria del flow matching. |
| 2025 | Veo 2, Kling 1.5, Runway Gen-3, Nano Banana | Video de nivel de producción. |
| 2026 | Consistency + Rectified Flow | Muestreo en un solo paso a partir de arquitecturas base de difusión. |
La triada de cinco preguntas
Cuando se publique un nuevo artículo de modelo generativo, responde a estas cinco preguntas antes de leer la sección de metodología.
- ¿Qué se está modelando? ¿Píxeles, latentes, tokens discretos, Gaussianas 3D, mallas, formas de onda?
- ¿La densidad es explícita o implícita? ¿Escriben
log p(x)? - Muestreo: ¿de un solo paso o iterativo? Iterativo significa inferencia más lenta; un solo paso generalmente significa adversarial o destilado.
- Condicionamiento: ¿incondicional, clase, texto, imagen, pose? Esto determina la pérdida y el soporte de la arquitectura.
- Evaluación: ¿FID, CLIP score, IS, preferencia humana, precisión de la tarea? Cada uno tiene modos de falla conocidos (ver Lección 14).
Responderás de nuevo a estas cinco preguntas en cada lección de esta fase. Al final, se convertirán en un reflejo.
Práctico
El código de esta lección es una visualización ligera: ajustar una mezcla de Gaussianas 1D a partir de muestras utilizando tres enfoques simples (densidad de kernel, histograma discreto y un generador "estilo GAN" de muestra más cercana) para que puedas ver la diferencia entre densidad explícita e implícita en un problema que cabe en una sola pantalla.
Ejecuta code/main.py. Extrae 2000 muestras de una mezcla de Gaussianas con dos modos, luego imprime:
explicit density (histogram): p(x in [-0.5, 0.5]) ≈ 0.38
approximate density (KDE): p(x in [-0.5, 0.5]) ≈ 0.41
implicit (nearest-sample gen): 20 new samples printed, no p(x)
Nota: los dos primeros te permiten preguntar "¿qué tan probable es este punto?". El tercero no. Esta es la distinción de densidad explícita vs implícita que será importante para todas las lecciones futuras.
Uso
¿Qué familia, para qué tarea, en 2026?
| Tarea | Mejor familia | Por qué |
|---|---|---|
| Rostros fotorrealistas, dominio estrecho | StyleGAN 2/3 | Aún más nítido, inferencia más rápida. |
| Texto a imagen general | Difusión latente + flow matching | SD3, Flux.1, DALL-E 3. |
| Texto a imagen rápido | Rectified flow + destilación | SDXL-Turbo, SD3-Turbo, LCM. |
| Texto a video | Transformer de difusión + flow matching | Sora, Veo 2, Kling. |
| Voz + música | AR basada en tokens (AudioLM, VALL-E, MusicGen) o flow matching (AudioCraft 2) | Los tokens discretos escalan de forma barata. |
| Escenas 3D | Ajuste de Gaussian Splatting, prior de difusión | 3D-GS para reconstrucción, difusión para nuevas vistas. |
| Estimación de densidad (sin muestreo) | Flujos | Única familia con log p(x) exacto. |
| Simulación / física | Flow matching, score SDE | Caminos rectilíneos, campos vectoriales suaves. |
Entrega
Guarda como outputs/skill-model-chooser.md.
La skill toma una descripción de tarea y genera: (1) qué familia usa, (2) una lista clasificada de tres opciones abiertas y tres alojadas, (3) el modo de falla probable en el que debes fijarte y (4) un presupuesto de cómputo/tiempo.
Ejercicios
- Fácil. Para cada uno de estos cinco productos, identifica la familia y la arquitectura base: ChatGPT image, Midjourney v7, Sora, Runway Gen-3, ElevenLabs. Utiliza evidencia de informes técnicos públicos.
- Medio. El artículo que vas a leer mañana promete un muestreo 100 veces más rápido que la difusión. Escribe tres preguntas para verificar si esa mejora de velocidad sobrevive al condicionamiento y a la alta resolución.
- Difícil. Elige un dominio que te interese (por ejemplo, estructura de proteínas, CAD, moléculas, trayectorias). Responde a las cinco preguntas de triaje para el modelo actual en el estado del arte de ese dominio y esboza qué cambiaría un modelo mejor.
Términos Clave
| Término | Lo que la gente dice | Lo que realmente significa |
|---|---|---|
| Modelo generativo | "Hace cosas nuevas" | Aprende un muestreador para p_data(x), opcionalmente expone log p(x). |
| Densidad explícita | "Puedes evaluarla" | El modelo proporciona un log p(x) en forma cerrada o manejable. |
| Densidad implícita | "Estilo GAN" | Solo un muestreador — no hay forma de evaluar p(x) para un punto dado. |
| ELBO | "Límite inferior de evidencia" | Un límite inferior manejable para log p(x); VAE y difusión lo optimizan. |
| Score | "Gradiente de densidad logarítmica" | ∇_x log p(x); los modelos de difusión y EDE aprenden este campo. |
| Hipótesis del manifold | "Los datos viven en una superficie" | Los datos de alta dimensión se concentran en una variedad de baja dimensión; por qué funciona la reducción de dimensionalidad. |
| Autorregresivo | "Predecir la siguiente parte" | Factoriza la probabilidad conjunta como producto de condicionales. |
| Latente | "Código comprimido" | Representación de baja dimensión a partir de la cual un decodificador puede reconstruir la entrada. |
Nota de producción: cinco familias, cinco formatos de inferencia
Cada familia se mapea a una curva de costo de servidor de inferencia diferente. La literatura de inferencia en producción define la inferencia de LLM como prefill + decode; la misma descomposición se aplica aquí:
- Autorregresivo (grupos 1 y 5). La decodificación secuencial domina la latencia; KV-cache, continuous batching (loteo continuo) y decodificación especulativa se aplican directamente.
- VAE / difusión / flow-matching (grupos 2 y 4). No hay decodificación en el sentido de LLM. Costo =
num_steps × step_cost, y elstep_costes una pasada hacia adelante (forward pass) de un transformer o U-Net en la resolución latente completa. Los controles de producción son el número de pasos (DDIM / DPM-Solver / destilación), el tamaño del lote (batch size) y la precisión (bf16 / fp8 / int4). - GAN (grupo 3). Una sola pasada hacia adelante. Sin cronograma (schedule), sin KV-cache. TTFT ≈ latencia total. Es por eso que StyleGAN sigue ganando en la experiencia de usuario en dominios específicos.
Cuando veas "más rápido que difusión" en el resumen de un artículo, tradúcelo a "menos pasos × mismo costo de paso" o "mismos pasos × costo de paso más barato". Todo lo demás es marketing.
Lecturas Adicionales
- Goodfellow et al. (2014). Generative Adversarial Nets — el artículo de GAN.
- Kingma & Welling (2013). Auto-Encoding Variational Bayes — el artículo de VAE.
- Ho, Jain, Abbeel (2020). Denoising Diffusion Probabilistic Models — el artículo de DDPM.
- Song et al. (2021). Score-Based Generative Modeling through SDEs — difusión como una EDE.
- Lipman et al. (2023). Flow Matching for Generative Modeling — el artículo de flow matching.
- Esser et al. (2024). Scaling Rectified Flow Transformers for High-Resolution Image Synthesis — Stable Diffusion 3.