Phase 08 - Lesson 01
Modelos Gerativos — Taxonomia & História
Todo modelo de imagem, modelo de texto, modelo de vídeo e modelo 3D se encaixa em um de cinco grupos. Escolha o grupo errado e você lutará contra a matemática por semanas. Escolha o correto e os últimos doze anos de progresso da área se organizarão de forma clara na sua cabeça.
Tipo: Aprender Linguagens: Python Pré-requisitos: Fase 2 (ML Fundamentals), Fase 3 (Deep Learning Core), Fase 7 · 14 (Transformers) Tempo: ~45 minutos
O Problema
Um modelo gerativo faz um único trabalho: a partir de amostras de treinamento extraídas de uma distribuição desconhecida p_data(x), gerar novas amostras que pareçam ter vindo dessa mesma distribuição. Rostos, frases, arquivos MIDI, estruturas de proteínas — se você olhar de perto, é tudo o mesmo problema.
O detalhe é que p_data vive em um espaço com milhões de dimensões (uma imagem RGB de 512x512 tem ~786k dimensões), as amostras residem em uma fina variedade (manifold) dentro desse espaço, e você talvez tenha apenas cerca de 10 milhões de exemplos. Tentar estimar a densidade por força bruta é inútil. Todo modelo gerativo é um compromisso que troca um problema difícil por outro ligeiramente menos difícil.
Cinco famílias sobreviveram aos últimos doze anos. Saber qual compromisso cada família faz revela por que ela vence em algumas tarefas e falha completamente em outras.
O Conceito
1. Densidade explícita, tratável. Escreva log p(x) como uma soma que você realmente possa calcular. Modelos autorregressivos (PixelCNN, WaveNet, GPT) fatoram p(x) = ∏ p(x_i | x_<i). Fluxos de normalização (Normalizing flows, como RealNVP, Glow) constroem p(x) como uma transformação inversível de uma base simples. Pró: verossimilhança exata, perda de treinamento limpa. Contra: a inferência autorregresiva é sequencial (lenta para sequências longas), os fluxos precisam de arquiteturas inversíveis (o que restringe a arquitetura).
2. Densidade explícita, aproximada. Limite log p(x) por baixo (ELBO) e otimize esse limite. VAEs (Kingma 2013) usam um codificador-decodificador com uma distribuição a posteriori variacional. Modelos de difusão (DDPM, Ho 2020) treinam um eliminador de ruído (denoiser) que otimiza implicitamente um ELBO ponderado. A difusão é a arquitetura base dominante para imagem, vídeo e 3D em 2026.
3. Densidade implícita. Ignore a densidade completamente; aprenda um gerador G(z) que produz amostras e um discriminador D(x) que distingue o real do falso. GANs (Goodfellow 2014). Rápidas na inferência (uma única passada para a frente) mas notoriamente instáveis durante o treinamento. StyleGAN 1/2/3 continuam sendo o estado da arte para fotorrealismo em domínios fixos (rostos, quartos) mesmo em 2026.
4. Baseados em score / tempo contínuo. Aprenda o gradiente da densidade de log ∇_x log p(x) (o score) diretamente. Song & Ermon (2019) mostraram que a correspondência de score (score matching) generaliza a difusão para uma EDE (Equação Diferencial Estocástica). O flow matching (Lipman 2023) é a grande novidade de 2024-2026: treinamento livre de simulação, caminhos mais retos, amostragem de 4 a 10 vezes mais rápida que o DDPM. Stable Diffusion 3, Flux, AudioCraft 2 usam flow matching.
5. Autorregressivo baseado em tokens sobre códigos discretos. Comprima dados de alta dimensão com um VQ-VAE ou quantizador residual em uma sequência curta de tokens discretos e, em seguida, use um Transformer para modelar a sequência de tokens. Parti, MuseNet, AudioLM, VALL-E, e o tokenizador de patches da Sora usam isso. Este é o grupo 1 adicionado de um tokenizador aprendido.
Uma breve história
| Ano | Modelo | Por que foi importante |
|---|---|---|
| 2013 | VAE (Kingma) | Primeiro modelo gerativo profundo com uma perda de treinamento utilizável. |
| 2014 | GAN (Goodfellow) | Densidade implícita, sem verossimilhança — amostras incrivelmente nítidas. |
| 2015 | DRAW, PixelCNN | Geração sequencial de imagens. |
| 2017 | Glow, RealNVP | Fluxos inversíveis; verossimilhança exata com profundidade. |
| 2017 | Progressive GAN | Primeiros rostos de megapixel. |
| 2019 | StyleGAN / StyleGAN2 | Rostos fotorrealistas ainda difíceis de superar para esse domínio específico. |
| 2020 | DDPM (Ho) | A difusão torna-se prática. |
| 2021 | CLIP, DALL-E 1, VQGAN | Texto para imagem ganha o grande público. |
| 2022 | Imagen, Stable Diffusion 1, DALL-E 2 | Difusão latente + condicionamento de texto = commodity. |
| 2022 | ControlNet, LoRA | Controle preciso sobre difusão pré-treinada. |
| 2023 | SDXL, Midjourney v5, Flow matching | Escala + melhor dinâmica de treinamento. |
| 2024 | Sora, Stable Diffusion 3, Flux.1 | Difusão de vídeo; vitória do flow matching. |
| 2025 | Veo 2, Kling 1.5, Runway Gen-3, Nano Banana | Vídeo de nível de produção. |
| 2026 | Consistency + Rectified Flow | Amostragem em um único passo a partir de arquiteturas base de difusão. |
A triagem de cinco perguntas
Quando um novo artigo de modelo gerativo for lançado, responda a estas cinco perguntas antes de ler a seção de metodologia.
- O que está sendo modelado? Pixels, latentes, tokens discretos, Gaussianas 3D, malhas, formas de onda?
- A densidade é explícita ou implícita? Eles escrevem o
log p(x)? - Amostragem: passo único ou iterativa? Iterativa significa inferência mais lenta; passo único geralmente significa adversarial ou destilada.
- Condicionamento: incondicional, classe, texto, imagem, pose? Isso determina a perda e a estrutura da arquitetura.
- Avaliação: FID, CLIP score, IS, preferência humana, acurácia da tarefa? Cada um tem modos de falha conhecidos (ver Lição 14).
Você responderá novamente a estas cinco perguntas para cada lição nesta fase. Ao final, elas se tornarão reflexo.
Pratique
O código para esta lição é uma visualização leve: ajustar uma mistura de Gaussianas 1D a partir de amostras usando três abordagens simples (densidade de kernel, histograma discreto e um gerador "estilo GAN" de amostra mais próxima) para que você possa ver a diferença entre densidade explícita e implícita em um problema que cabe em uma única tela.
Execute code/main.py. Ele extrai 2000 amostras de uma mistura de Gaussianas com dois modos e depois 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)
Observe: os dois primeiros permitem perguntar "quão provável é este ponto?". O terceiro não permite. Esta é a distinção de densidade explícita vs implícita que será importante para todas as lições futuras.
Use
Qual família, para qual tarefa, em 2026?
| Tarefa | Melhor família | Por quê |
|---|---|---|
| Rostos fotorrealistas, domínio estreito | StyleGAN 2/3 | Ainda mais nítido, inferência mais rápida. |
| Texto para imagem geral | Difusão latente + flow matching | SD3, Flux.1, DALL-E 3. |
| Texto para imagem rápido | Rectified flow + destilação | SDXL-Turbo, SD3-Turbo, LCM. |
| Texto para vídeo | Transformer de difusão + flow matching | Sora, Veo 2, Kling. |
| Voz + música | AR baseada em tokens (AudioLM, VALL-E, MusicGen) ou flow matching (AudioCraft 2) | Tokens discretos escalam de forma barata. |
| Cenas 3D | Ajuste de Gaussian Splatting, prior de difusão | 3D-GS para reconstrução, difusão para novas visões. |
| Estimação de densidade (sem amostragem) | Fluxos | Única família com log p(x) exato. |
| Simulação / física | Flow matching, score SDE | Caminhos retilíneos, campos vetoriais suaves. |
Entregue
Salve como outputs/skill-model-chooser.md.
A skill recebe uma descrição de tarefa e gera: (1) qual família usar, (2) uma lista classificada de três opções abertas e três hospedadas, (3) o modo de falha provável que você deve observar e (4) um orçamento de computação/tempo.
Exercícios
- Fácil. Para cada um destes cinco produtos, identifique a família e a arquitetura base: ChatGPT image, Midjourney v7, Sora, Runway Gen-3, ElevenLabs. Use evidências de relatórios técnicos públicos.
- Médio. O artigo que você vai ler amanhã promete amostragem 100 vezes mais rápida que a difusão. Escreva três perguntas para verificar se esse ganho de velocidade sobrevive ao condicionamento e à alta resolução.
- Difícil. Escolha um domínio do seu interesse (ex. estrutura de proteínas, CAD, moléculas, trajetórias). Responda à triagem de cinco perguntas para o modelo atual no estado da arte desse domínio e esboce o que um modelo melhor mudaria.
Termos-Chave
| Termo | O que dizem | O que realmente significa |
|---|---|---|
| Modelo gerativo | "Faz coisas novas" | Aprende um amostrador para p_data(x), opcionalmente expõe log p(x). |
| Densidade explícita | "Você pode avaliá-la" | O modelo fornece um log p(x) em forma fechada ou tratável. |
| Densidade implícita | "Estilo GAN" | Apenas um amostrador — nenhuma forma de avaliar p(x) de um ponto fornecido. |
| ELBO | "Limite inferior de evidência" | Um limite inferior tratável para log p(x); VAEs e difusão o otimizam. |
| Score | "Gradiente da densidade de log" | ∇_x log p(x); modelos de difusão e EDE aprendem esse campo. |
| Hipótese do manifold | "Os dados vivem em uma superfície" | Dados de alta dimensão se concentram em uma variedade de baixa dimensão; motivo pelo qual a redução de dimensionalidade funciona. |
| Autorregresivo | "Prever o próximo pedaço" | Fatora a probabilidade conjunta como produto de condicionais. |
| Latente | "Código comprimido" | Representação de baixa dimensão a partir da qual um decodificador pode reconstruir a entrada. |
Nota de produção: cinco famílias, cinco formatos de inferência
Cada família mapeia para uma curva de custo de servidor de inferência diferente. A literatura de inferência em produção define a inferência de LLM como prefill + decode; a mesma decomposição se aplica aqui:
- Autorregresivo (grupos 1 e 5). A decodificação sequencial domina a latência; KV-cache, continuous batching (loteamento contínuo) e decodificação especulativa se aplicam diretamente.
- VAE / difusão / flow-matching (grupos 2 e 4). Não existe decodificação no sentido de LLM. Custo =
num_steps × step_cost, e ostep_costé uma passada para a frente (forward pass) do transformer ou U-Net na resolução latente total. Os controles de produção são a contagem de passos (DDIM / DPM-Solver / destilação), tamanho do lote (batch size) e precisão (bf16 / fp8 / int4). - GAN (grupo 3). Uma única passada para a frente. Sem cronograma (schedule), sem KV-cache. TTFT ≈ latência total. É por isso que StyleGAN ainda vence na experiência de usuário em domínios específicos.
Quando você vir "mais rápido que difusão" no resumo de um artigo, traduza para "menos passos × mesmo custo por passo" ou "mesmo número de passos × custo por passo mais barato". Todo o resto é marketing.
Leituras Complementares
- Goodfellow et al. (2014). Generative Adversarial Nets — o artigo da GAN.
- Kingma & Welling (2013). Auto-Encoding Variational Bayes — o artigo do VAE.
- Ho, Jain, Abbeel (2020). Denoising Diffusion Probabilistic Models — o artigo do DDPM.
- Song et al. (2021). Score-Based Generative Modeling through SDEs — difusão como uma EDE.
- Lipman et al. (2023). Flow Matching for Generative Modeling — o artigo do flow matching.
- Esser et al. (2024). Scaling Rectified Flow Transformers for High-Resolution Image Synthesis — Stable Diffusion 3.