16. Generative Models
Todo modelo generativo responde a uma pergunta: como transformar uma distribuição da qual você consegue amostrar em outra da qual não consegue? Você tem um gerador de números aleatórios. Você quer uma fotografia. A distância entre essas duas coisas é a área inteira.
Ninguém ataca isso de frente. \(p(x)\) sobre um milhão de pixels não é algo que se escreva e só a constante de normalização já é intratável. Então toda família deste módulo faz o mesmo movimento — decompor o problema difícil de amostragem numa sequência de problemas fáceis — e elas diferem apenas em onde cortam. Essa escolha determina tudo o que vem depois: estabilidade de treino, qualidade das amostras, se você ganha uma verossimilhança e quantas passagens diretas custa uma imagem.
Este capítulo é o mapa. Os sete seguintes são o território.
Quatro formas de cortar o problema
| Família | A decomposição | Treinada por | Custo de amostragem | Dá verossimilhança? |
|---|---|---|---|---|
| Autorregressiva | Regra da cadeia: \(p(x) = \prod_i p(x_i \mid x_{<i})\) | Máxima verossimilhança, direto | Uma passagem por dimensão | Exata |
| Variável latente (VAE) | \(p(x) = \int p(x\mid z)\,p(z)\,dz\) — um \(z\) simples, um decodificador aprendido | Um limite inferior da verossimilhança (ELBO) | Uma passagem | Um limite |
| Adversarial (GAN) | Nenhuma decomposição. Aprenda um gerador e um crítico que o julgue | Um jogo minimax | Uma passagem | Nenhuma |
| Difusão / fluxo | Tempo: um caminho do ruído aos dados, aprendido como correção local | Regressão sobre um alvo conhecido | Dezenas a centenas de passagens | Sim, pela ODE |
Duas dessas linhas já estão aposentadas como métodos de manchete e duas movem o mundo. O resto deste capítulo é o porquê.
O mesmo alvo, três amostradores
Abaixo, a mesma distribuição de dados — oito gaussianas num anel — é gerada de três formas. Toda grandeza no painel é exata: o score, o campo de velocidade e as marginais discretas têm forma fechada para este alvo, então nada é treinado e nada é aproximado. O que você observa é a decomposição, isolada de qualquer questão sobre se uma rede a ajustou bem.
Três lições e elas generalizam muito além deste brinquedo:
- O custo autorregressivo é o número de dimensões. Duas aqui e de graça. Uma por pixel ou por token em dados reais — e é por isso que modelos autorregressivos de imagem trabalham sobre 1024 tokens latentes e não sobre um milhão de pixels (capítulo 23).
- O custo da difusão é o número de passos e ele é um botão. Arraste para 1: um único passo de Euler não acompanha um caminho curvo e toda amostra cai no meio do anel. Com 8 passos, 20% das amostras ainda caem fora dos dados; com 32 é cerca de 1%, que é o piso que uma amostra perfeita deste tamanho mostraria de qualquer jeito. Esse botão — qualidade trocada por latência, na inferência, depois do treino — é a propriedade que fez a difusão vencer.
- Estocasticidade compra robustez em contagens intermediárias de passos. Ligue a correção de Langevin: com 8 ou 16 passos o amostrador fica mensuravelmente melhor, porque os erros são corrigidos em vez de acumulados; com 128 os dois já convergiram e ela não compra nada. É a troca ODE-versus-SDE em miniatura.
A assimetria que explica borrão e colapso
O outro eixo não é custo, é falha e há uma única ideia por baixo dos dois modos de falha mais famosos da área.
Ajustar um modelo é minimizar uma divergência e a divergência KL não é simétrica. A direção em que você a escreve muda o que você obtém quando o modelo não consegue representar os dados exatamente — o que é sempre.
- A KL para frente é punida onde quer que os dados tenham massa e o modelo não. O ótimo dela cobre tudo, inclusive o vale vazio entre os modos. Isto é máxima verossimilhança — o que VAEs e modelos autorregressivos otimizam — e é exatamente por isso que as amostras deles parecem médias. Borrão não é bug do decodificador. É o objetivo recebendo o que pediu.
- A KL reversa só é punida onde o modelo põe massa e é indiferente a dados que ela nunca visita. O ótimo dela escolhe um modo e abandona o resto: toda amostra plausível, uma parte inteira da distribuição desaparecida. Isso é colapso de modos e o ponto é enunciá-lo como propriedade de um objetivo, não como acidente de treino.
Diga uma vez, use sete vezes
Borrado e colapsado não são defeitos sem relação. São as duas pontas de uma mesma assimetria. Todo modelo deste módulo se posiciona em algum ponto dela e saber onde diz como serão suas amostras antes mesmo de rodá-lo.
O trilema e como ele foi quebrado
Durante boa parte dos anos 2010 a área parecia um trade-off rígido de três pontas5:
-
Alta qualidade das amostras
-
Cobertura de modos e diversidade
-
Amostragem rápida
GANs pegaram qualidade e velocidade e abriram mão da cobertura. VAEs e fluxos pegaram cobertura e velocidade e abriram mão da qualidade. A difusão pegou qualidade e cobertura e abriu mão da velocidade — e esse acabou sendo o canto certo, porque velocidade é a única das três que dá para comprar de volta depois. Qualidade e cobertura são decididas no treino; o número de passos de amostragem é decidido na inferência. A história dos últimos três anos é em boa parte a história de recomprá-la: solvers melhores, fluxos retificados, destilação para um punhado de passos e então para um.
Os sete capítulos e para que serve cada um
| Capítulo | Família | Por que está aqui |
|---|---|---|
| 17 · VAE | Variável latente | Não é um gerador de imagens competitivo e não é por isso que importa. É o compressor sobre o qual todo modelo de difusão latente roda e o lugar mais claro para aprender a ideia de espaço latente. |
| 18 · GAN | Adversarial | Deslocada como geradora. A perda dela sobrevive em toda parte — em decodificadores de autoencoder, super-resolução, vocoders e destilação de um passo. |
| 19 · CLIP | Não generativo | A ponte. Aprender um espaço compartilhado imagem–texto é o que tornou possível condicionar numa frase; tudo depois deste capítulo é condicionado a texto. |
| 20 · Stable Diffusion | Difusão | O sistema completo: espaço latente, U-Net, condicionamento por texto, guidance sem classificador, samplers. |
| 21 · Flow matching | Fluxo | A reformulação que simplificou o treino e endireitou os caminhos e que hoje sustenta o estado da arte. |
| 22 · Diffusion Transformers | Difusão | Substituir a U-Net por um Transformer e ganhar leis de escala para geração de imagens. |
| 23 · Geração autorregressiva | Autorregressiva | Gerar imagens como sequências de tokens — a rota para modelos any-to-any genuinamente unificados. |
Uma história curta, lida como sequência de gargalos
Cada era se entende melhor por qual das quatro decomposições era acessível na época.
| Quando | O que aconteceu | O gargalo que caiu |
|---|---|---|
| 1948 | Os n-gramas de Shannon geram texto | Nenhum ainda — mas a regra da cadeia como recurso generativo |
| 1985–2006 | Máquinas de Boltzmann, deep belief nets1 | Aprender uma distribuição sem rótulos. Amostrar seguiu intratável. |
| 2013 | VAE2 — o truque da reparametrização | Retropropagar através de um nó aleatório. Modelos de variável latente viraram treináveis por gradiente. |
| 2014 | GAN3 | Precisar de uma verossimilhança tratável. A qualidade saltou; cobertura e estabilidade foram o preço. |
| 2015–2020 | Difusão4 — de curiosidade a DDPM | Qualidade de amostragem sem treino adversarial, cortando o problema ao longo do tempo. |
| 2021 | CLIP, difusão latente | Condicionar em linguagem e rodar difusão num espaço 64× menor — o que a tornou viável numa GPU. |
| 2022–2023 | Stable Diffusion, DALL·E 2, Midjourney | Acesso. Pesos abertos e o começo das discussões de direito autoral e proveniência. |
| 2023–2024 | Flow matching, DiT, destilação | Caminhos mais retos, um backbone escalável e contagens de passos caindo de 1000 para menos de 10. |
| 2024–2026 | Vídeo, any-to-any, tempo real | Coerência ao longo do tempo e um modelo que lê e escreve toda modalidade. |
Duas coisas que este curso vai repetir
Avaliação é genuinamente um problema em aberto. O FID é o número padrão e é um substituto ruim para o que importa — é sensível ao extrator de features, não é uma distância confiável entre artigos e descorrelaciona do julgamento humano a partir de certo ponto. O capítulo 8.3 é sobre como fazer melhor.
Os dados de treino são o trabalho de outras pessoas. De onde vieram as imagens, se houve consentimento, o estilo de quem um modelo reproduz sob demanda e o que acontece com as pessoas cujo trabalho era aquilo — nada disso está resolvido, tudo isso está em litígio ativo e faz parte da decisão de engenharia, não de um módulo de ética pregado no final.
Pontos principais
- Todo modelo generativo decompõe um problema intratável de amostragem em pedaços tratáveis. O corte escolhido decide custo, estabilidade e qualidade.
- Custo autorregressivo escala com dimensões; custo de difusão escala com passos. É por isso que as imagens foram para o espaço latente e por que contagens de passos são o que todo mundo otimiza.
- A KL é assimétrica. A KL para frente cobre modos e borra; a reversa procura modos e colapsa. Duas falhas famosas, uma causa.
- O trilema — qualidade, cobertura, velocidade — foi quebrado escolhendo o canto em que a propriedade ausente podia ser recomprada depois. A difusão abriu mão da velocidade e depois a pegou de volta.
- VAEs e GANs continuam em toda parte, como componentes e não como geradores. Leia os capítulos 17 e 18 com isso em mente.
- Avaliação e proveniência não estão resolvidas. Trate as duas como parte do trabalho.
-
Hinton, G. E., & Sejnowski, T. J. (1986). Learning and relearning in Boltzmann machines — em Parallel Distributed Processing. Modelagem generativa baseada em energia, décadas antes de ser acessível. ↩
-
Kingma, D. P., & Welling, M. (2014). Auto-Encoding Variational Bayes — ICLR. O ELBO e o truque da reparametrização. ↩
-
Goodfellow, I., et al. (2014). Generative Adversarial Networks — NeurIPS. ↩
-
Ho, J., Jain, A., & Abbeel, P. (2020). Denoising Diffusion Probabilistic Models — NeurIPS. O artigo que tornou a difusão competitiva, sobre a base de Sohl-Dickstein et al. (2015). ↩
-
Xiao, Z., Kreis, K., & Vahdat, A. (2022). Tackling the Generative Learning Trilemma with Denoising Diffusion GANs — ICLR. Onde o trilema é enunciado com clareza. ↩
-
Song, Y., et al. (2021). Score-Based Generative Modeling through Stochastic Differential Equations — ICLR. A unificação de difusão e score matching e o amostrador preditor–corretor usado no painel acima. ↩
-
Bond-Taylor, S., Leach, A., Long, Y., & Willcocks, C. G. (2022). Deep Generative Modelling: A Comparative Review of VAEs, GANs, Normalizing Flows, Energy-Based and Autoregressive Models — IEEE TPAMI. O survey para ler junto com este módulo. ↩