Ir para o conteúdo

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:

  1. 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).
  2. 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.
  3. 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.

\[ \underbrace{\text{KL}(p_{\text{dados}} \,\|\, p_\theta)}_{\text{média sobre os \textit{dados}}} \qquad\text{versus}\qquad \underbrace{\text{KL}(p_\theta \,\|\, p_{\text{dados}})}_{\text{média sobre o \textit{modelo}}} \]
  • 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

  1. Todo modelo generativo decompõe um problema intratável de amostragem em pedaços tratáveis. O corte escolhido decide custo, estabilidade e qualidade.
  2. 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.
  3. A KL é assimétrica. A KL para frente cobre modos e borra; a reversa procura modos e colapsa. Duas falhas famosas, uma causa.
  4. 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.
  5. 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.
  6. Avaliação e proveniência não estão resolvidas. Trate as duas como parte do trabalho.


  1. 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. ↩

  2. Kingma, D. P., & Welling, M. (2014). Auto-Encoding Variational Bayes — ICLR. O ELBO e o truque da reparametrização. ↩

  3. Goodfellow, I., et al. (2014). Generative Adversarial Networks — NeurIPS. ↩

  4. 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). ↩

  5. Xiao, Z., Kreis, K., & Vahdat, A. (2022). Tackling the Generative Learning Trilemma with Denoising Diffusion GANs — ICLR. Onde o trilema é enunciado com clareza. ↩

  6. 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. ↩

  7. 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. ↩