VQ-Diffusione

'VQ-Diffusione'

La Diffusione Quantizzata del Vettore (VQ-Diffusion) è un modello di diffusione latente condizionale sviluppato dall’Università di Scienza e Tecnologia della Cina e da Microsoft. A differenza dei modelli di diffusione più comunemente studiati, i processi di rumore e denoise di VQ-Diffusion operano su uno spazio latente quantizzato, ovvero lo spazio latente è composto da un insieme discreto di vettori. I modelli di diffusione discreti sono meno esplorati rispetto ai loro corrispettivi continui e offrono un interessante punto di confronto con i modelli autoregressivi (AR).

  • Modello Hugging Face
  • Hugging Face Spaces
  • Implementazione Originale
  • Articolo

Demo

🧨 Diffusers ti permette di eseguire VQ-Diffusion con poche righe di codice.

Installare le dipendenze

pip install 'diffusers[torch]' transformers ftfy

Caricare il pipeline

from diffusers import VQDiffusionPipeline

pipe = VQDiffusionPipeline.from_pretrained("microsoft/vq-diffusion-ithq")

Se si desidera utilizzare pesi FP16

from diffusers import VQDiffusionPipeline
import torch

pipe = VQDiffusionPipeline.from_pretrained("microsoft/vq-diffusion-ithq", torch_dtype=torch.float16, revision="fp16")

Spostarsi sulla GPU

pipe.to("cuda")

Eseguire il pipeline!

prompt = "Un orsacchiotto che gioca in piscina."

image = pipe(prompt).images[0]

Architettura

VQ-VAE

Le immagini vengono codificate in un insieme di “token” discreti o vettori di embedding utilizzando un codificatore VQ-VAE. Per fare ciò, le immagini vengono divise in patch e quindi ogni patch viene sostituita dall’elemento più vicino di un codebook con un vocabolario di dimensioni fisse. Ciò riduce la dimensionalità dello spazio dei pixel di input. VQ-Diffusion utilizza la variante VQGAN di Taming Transformers. Questo post sul blog è una buona risorsa per una migliore comprensione dei VQ-VAE.

VQ-Diffusion utilizza un VQ-VAE pre-addestrato che è stato congelato durante il processo di addestramento della diffusione.

Processo di avanzamento

Nel processo di diffusione in avanti, ogni token latente può rimanere uguale, essere campionato nuovamente in un diverso vettore latente (ognuno con la stessa probabilità) o essere mascherato. Una volta che un token latente viene mascherato, rimarrà mascherato. α t \alpha_t α t ​ , β t \beta_t β t ​ e γ t \gamma_t γ t ​ sono iperparametri che controllano il processo di diffusione in avanti dal passo t − 1 t-1 t − 1 al passo t t t . γ t \gamma_t γ t ​ è la probabilità che un token non mascherato diventi mascherato. α t + β t \alpha_t + \beta_t α t ​ + β t ​ è la probabilità che un token non mascherato rimanga lo stesso. Il token può passare a qualsiasi vettore latente individuale non mascherato con una probabilità di β t \beta_t β t ​ . In altre parole, α t + K β t + γ t = 1 \alpha_t + K \beta_t + \gamma_t = 1 α t ​ + K β t ​ + γ t ​ = 1 dove K K K è il numero di vettori latenti non mascherati. Per ulteriori dettagli, consultare la sezione 4.1 dell’articolo.

Approssimazione del processo inverso

Un trasformatore encoder-decoder approssima le classi dei latenti non rumorosi, x 0 x_0 x 0 ​ , condizionati alla traccia, y y y . L’encoder è un codificatore di testo CLIP con pesi congelati. Il trasformatore decoder fornisce un’attenzione globale non mascherata a tutti i pixel latenti e produce le log-probabilità della distribuzione categorica su gli embedding vettoriali. Il trasformatore decoder predice l’intera distribuzione dei latenti non rumorosi in un solo passaggio in avanti, fornendo auto-attenzione globale su x t x_t x t ​ . Formulare il problema come sequenza condizionale su sequenza di valori discreti fornisce una certa intuizione su perché il trasformatore encoder-decoder è adatto.

La sezione sui modelli AR fornisce ulteriori dettagli sull’architettura di VQ-Diffusion in confronto ai modelli basati su trasformatori AR.

Taming Transformers fornisce una buona discussione sulla conversione di pixel grezzi in token discreti in uno spazio latente compresso in modo che i transformers diventino computazionalmente fattibili per i dati delle immagini.

VQ-Diffusion in Contesto

Modelli di Diffusione

I modelli di diffusione contemporanei sono per lo più continui. Nel processo in avanti, i modelli di diffusione continui aggiungono iterativamente rumore gaussiano. Il processo inverso è approssimato tramite p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_{\theta}(x_{t-1} | x_t) = N(x_{t-1}; \mu_{\theta}(x_t, t), \Sigma_{\theta}(x_t, t)) p θ ​ ( x t − 1 ​ ∣ x t ​ ) = N ( x t − 1 ​ ; μ θ ​ ( x t ​ , t ) , Σ θ ​ ( x t ​ , t ) ) . Nel caso più semplice di DDPM, la matrice di covarianza è fissa, una U-Net è addestrata per prevedere il rumore in x t x_t x t ​ e x t − 1 x_{t-1} x t − 1 ​ è derivato dal rumore.

Il processo inverso approssimato è strutturalmente simile al processo inverso discreto. Tuttavia, nel caso discreto, non c’è un analogo chiaro per prevedere il rumore in x t x_t x t ​ e prevedere direttamente la distribuzione per x 0 x_0 x 0 ​ è un obiettivo più chiaro.

C’è una quantità minore di letteratura che tratta modelli di diffusione discreti rispetto ai modelli di diffusione continui. Deep Unsupervised Learning using Nonequilibrium Thermodynamics introduce un modello di diffusione su una distribuzione binomiale. Argmax Flows and Multinomial Diffusion estende la diffusione discreta alle distribuzioni multinomiali e addestra un transformer per prevedere la distribuzione non rumorosa per un compito di modellazione del linguaggio. Structured Denoising Diffusion Models in Discrete State-Spaces generalizza la diffusione multinomiale con processi di rumorizzazione alternativi — uniforme, assorbimento, Gaussiana discretizzata e distanza di incorporamento dei token. Processi di rumorizzazione alternativi sono anche possibili nei modelli di diffusione continua, ma come indicato nel documento, solo il rumore gaussiano additivo ha ricevuto una significativa attenzione.

Modelli Autoregressivi

È forse più interessante confrontare VQ-Diffusion con i modelli AR in quanto più frequentemente presentano transformers che effettuano previsioni su distribuzioni discrete. Sebbene i transformers abbiano dimostrato successo nella modellazione AR, soffrono ancora di una riduzione lineare della velocità di inferenza per un aumento della risoluzione dell’immagine, accumulo di errori e un bias direzionale. VQ-Diffusion migliora su tutti e tre i punti critici.

I modelli di generazione di immagini AR sono caratterizzati dalla suddivisione della probabilità dell’immagine in modo che ogni pixel sia condizionato ai pixel precedenti in un ordine di scansione raster (da sinistra a destra, dall’alto in basso) cioè p ( x ) = ∏ i p ( x i ∣ x i − 1 , x i − 2 , . . . x 2 , x 1 ) p(x) = \prod_i p(x_i | x_{i-1}, x_{i-2}, … x_{2}, x_{1}) p ( x ) = ∏ i ​ p ( x i ​ ∣ x i − 1 ​ , x i − 2 ​ , . . . x 2 ​ , x 1 ​ ) . Di conseguenza, i modelli possono essere addestrati massimizzando direttamente la log-verosimiglianza. Inoltre, i modelli AR che operano su valori di pixel (non latenti), prevedono i valori dei canali da una distribuzione multinomiale discreta, cioè prima viene campionato il valore del canale rosso da un softmax a 256 vie, e quindi la previsione del canale verde è condizionata al valore del canale rosso.

I modelli generativi di immagini AR sono evoluti architetturalmente con molto lavoro per rendere i transformers computazionalmente fattibili. Prima dei modelli basati su transformers, PixelRNN, PixelCNN e PixelCNN++ erano lo stato dell’arte.

Image Transformer fornisce una buona discussione sui modelli non basati su transformers e la transizione a modelli basati su transformers (vedere il documento per le citazioni omesse).

Allenare le reti neurali ricorrenti per prevedere sequenzialmente ogni pixel anche di un’immagine di piccole dimensioni è computazionalmente molto sfidante. Pertanto, i modelli parallelizzabili che utilizzano reti neurali convoluzionali come il PixelCNN hanno recentemente ricevuto molta più attenzione e ora hanno superato il PixelRNN in termini di qualità.

Un svantaggio delle CNN rispetto alle RNN è il loro tipicamente limitato campo recettivo. Questo può influire negativamente sulla loro capacità di modellare fenomeni a lungo raggio comuni nelle immagini, come la simmetria e l’occlusione, specialmente con un numero ridotto di strati. Aumentare il campo recettivo ha dimostrato di migliorare significativamente la qualità (Salimans et al.). Tuttavia, ciò comporta un costo significativo in termini di numero di parametri e di conseguenza delle prestazioni computazionali e può rendere più sfidante l’addestramento di tali modelli.

… l’autoattenzione può ottenere un migliore equilibrio nel compromesso tra il campo recettivo virtualmente illimitato dell’inevitabilmente sequenziale PixelRNN e il campo recettivo limitato del PixelCNN molto più parallelizzabile e delle sue varie estensioni.

Image Transformer utilizza i transformer limitando l’autoattenzione ai vicini locali dei pixel.

Taming Transformers e DALL-E 1 combinano convoluzioni e transformer. Entrambi addestrano un VQ-VAE per apprendere uno spazio latente discreto, e quindi un transformer viene addestrato nello spazio latente compresso. Il contesto del transformer è globale ma mascherato, perché l’attenzione è fornita su tutti i pixel latenti precedentemente predetti, ma il modello è ancora AR quindi l’attenzione non può essere fornita sui pixel non ancora predetti.

ImageBART combina convoluzioni, transformer e processi di diffusione. Apprende uno spazio latente discreto che viene ulteriormente compresso con un breve processo di diffusione multinomiale. Successivamente vengono addestrati transformer separati per invertire ciascun passaggio nel processo di diffusione. Il transformer di codifica fornisce un contesto globale su x t x_t x t ​ mentre il transformer di decodifica predice in modo autoregressivo i pixel latenti in x t − 1 x_{t-1} x t − 1 ​ . Di conseguenza, ogni pixel riceve un’attenzione incrociata globale sull’immagine più rumorosa. Vengono utilizzati da 2 a 5 passaggi di diffusione con più passaggi per dataset più complessi.

Nonostante i notevoli progressi compiuti, i modelli AR soffrono ancora di una diminuzione lineare della velocità di inferenza per un’increased image resolution, accumulo di errori e bias direzionale. Per modelli transformer AR di dimensioni equivalenti, il big-O dell’inferenza di VQ-Diffusion è migliore a condizione che il numero di passaggi di diffusione sia inferiore al numero di pixel latenti. Per il dataset ITHQ, la risoluzione latente è di 32×32 e il modello viene addestrato fino a 100 passaggi di diffusione per un miglioramento di circa 10 volte del big-O. In pratica, VQ-Diffusion “può essere 15 volte più veloce dei metodi AR pur ottenendo una migliore qualità dell’immagine” (vedi l’articolo per ulteriori dettagli). Inoltre, VQ-Diffusion non richiede il teacher-forcing e invece impara a correggere i token predetti in modo errato. Durante l’addestramento, le immagini rumorose sono sia mascherate che hanno i pixel latenti sostituiti con token casuali. VQ-Diffusion è in grado di fornire anche un contesto globale su x t x_t x t ​ mentre predice x t − 1 x_{t-1} x t − 1 ​ .

Prossimi passi con VQ-Diffusion e 🧨 Diffusers

Fino ad ora, abbiamo solo portato il modello di VQ-Diffusion addestrato sul dataset ITHQ. Sono stati rilasciati anche modelli di VQ-Diffusion addestrati su CUB-200, Oxford-102, MSCOCO, Conceptual Captions, LAION-400M e ImageNet.

VQ-Diffusion supporta anche una strategia di inferenza più veloce. La riparametrizzazione della rete si basa sulla posteriore del processo di diffusione condizionata sull’immagine non rumorosa che è trattabile. Una formula simile si applica quando si utilizza uno stride temporale, Δ t \Delta t Δ t , che salta un numero di passaggi di diffusione inversa, p θ ( x t − Δ t ∣ x t , y ) = ∑ x ~ 0 = 1 K q ( x t − Δ t ∣ x t , x ~ 0 ) p θ ( x ~ 0 ∣ x t , y ) p_\theta (x_{t – \Delta t } | x_t, y) = \sum_{\tilde{x}_0=1}^{K}{q(x_{t – \Delta t} | x_t, \tilde{x}_0)} p_\theta(\tilde{x}_0 | x_t, y) p θ ​ ( x t − Δ t ​ ∣ x t ​ , y ) = ∑ x ~ 0 ​ = 1 K ​ q ( x t − Δ t ​ ∣ x t ​ , x ~ 0 ​ ) p θ ​ ( x ~ 0 ​ ∣ x t ​ , y ) .

Improved Vector Quantized Diffusion Models migliora la qualità dei campioni rispetto a VQ-Diffusion con una guida discreta senza classificatori e una strategia di inferenza alternativa per affrontare il “problema della distribuzione congiunta” – vedere la sezione 3.2 per ulteriori dettagli. La guida discreta senza classificatori è integrata nei diffuser ma la strategia di inferenza alternativa non è stata ancora aggiunta.

Sono ben accetti i contributi!