RadAR: dall’autoregressione sequenziale a quella spaziale per generare immagini più velocemente (paper breakdown)

RadAR riorganizza l'autoregressione in anelli concentrici, genera token in parallelo e corregge errori con nested attention, accelerando drasticamente l'inference.

RadAR: dall’autoregressione sequenziale a quella spaziale per generare immagini più velocemente (paper breakdown)
Condividi:

In From Sequential to Spatial: Reordering Autoregression for Efficient Visual Generation (arXiv:2512.24639) gli autori propongono RadAR, un framework autoregressivo per image generation che sostituisce l'ordine raster-scan con un ordine radiale: si parte da un "centro", si espande verso l'esterno in anelli/bordi, e si predicono in parallelo tutti i token dello stesso anello.

Il punto critico è la stabilità: generare tanti token insieme aumenta incoerenze ed error propagation. RadAR risponde con una nested attention mechanism che separa "correzione" dell'area già generata e "generazione" dell'area nuova, riducendo il rischio di collapse. In pratica, riporta un taglio netto degli inference steps (da 256 a 13 nel claim principale; ~10 negli esperimenti su ImageNet 256x256) e un boost di throughput fino a ~5.6x rispetto a un AR token-by-token comparabile.

RadAR: Obiettivi e domande di ricerca

  • RQ1 - Un ordine di generazione "spaziale" può ridurre gli inference steps senza perdere qualità rispetto all'AR classico? Sì: RadAR passa da 256 step (token-by-token su griglia 16x16) a 13 nel claim principale e ~10 negli esperimenti, mantenendo metriche competitive (FID/IS/Precision/Recall) su ImageNet 256x256.

  • RQ2 - Come si evita che la parallelizzazione per anelli produca incoerenze e accumulo di errori? Con nested attention: causal tra step, bidirectional dentro lo step, e un vincolo causal tra area "nota" e area "nuova" per non far "inquinare" la correzione dagli errori della regione appena generata; inoltre la generazione aggiorna dinamicamente il contesto e abilita una correzione implicita.

  • RQ3 - Il modello è flessibile (numero di step variabile / zero-shot editing-outpainting)? Gli autori sostengono che, predicendo ground-truth values (non residual), RadAR può variare gli step senza dover riaddestrare tokenizer+generator e mostra capacità zero-shot su out-painting e class-conditional editing.

RadAR: Metodi e tecniche

Radial-Parallel Autoregressive Modeling (riordino dei token)

L'idea è rimpiazzare la sequenza 1D raster con una sequenza di set 2D: si fa center-cropping progressivo della latent map quantizzata fqf_q per ottenere g1,,gN{g_1,\dots,g_N} con range spaziale crescente fino a coprire tutta la mappa.

p(g1,g2,,gN)=i=1Np ⁣(gig1,g2,,gi1)p(g_1, g_2, \ldots, g_N) = \prod_{i=1}^{N} p\!\left(g_i \mid g_1, g_2, \ldots, g_{i-1}\right)

Operativamente, lo step kk riceve l'area già generata e "aggiunge un bordo" attorno: i token del bordo (non ancora noti) vengono inizializzati con un learnable prompt pRc×1×1p \in \mathbb{R}^{c\times 1 \times 1}, poi il Transformer predice i token del nuovo anello in parallelo.

Pseudo-codice (semplificato, aderente alla logica di Algorithm 1):

def radar_prepare_targets(fq, P_list, prompt_p):
    # fq: quantized latent feature map [c, h, w]
    # P_list: patch sizes per step (from small center crop -> full map)
    Rs, Rgt = [], []
    for i, Pi in enumerate(P_list, start=1):
        gi = center_crop(fq, Pi)      # g_i target tokens
        Rgt.append(gi)
        if i < len(P_list):
            Pi1 = P_list[i]           # P_{i+1}
            Si1 = repeat_to_size(prompt_p, Pi1)  # fill with learnable prompt
            Si1 = center_fill(Si1, gi, Pi, Pi1)  # inject known center into bigger canvas
            Rs.append(Si1)            # regression input for next step
    return Rs, Rgt

Nested Attention Mechanism (stabilità + correzione)

RadAR deve conciliare due obiettivi nella stessa forward pass:

  1. correggere lievi errori nell'area già generata;
  2. generare contenuto nuovo nel bordo appena espanso.

Per farlo, usa una maschera/struttura di attention "annidata":

  • causal tra step (ordine autoregressivo rispettato),
  • bidirectional dentro lo stesso step (coerenza spaziale),
  • causal tra "known area" → "expanded area" dentro lo step, così l'area nuova non influenza le decisioni di correzione dell'area nota. In inference con KV-cache non serve maschera esplicita.

Uno schema (mask logica) per step kk:

def nested_attention_mask(idx_known, idx_new, T):
    # T = total tokens in current step canvas
    # idx_known: indices of already-generated tokens (green)
    # idx_new:   indices of newly-expanded tokens (blue)
    M = torch.full((T, T), fill_value=-float("inf"))
    # Known area: attend only to known (no leakage from new -> known correction)
    M[idx_known[:, None], idx_known[None, :]] = 0.0
    # New area: attend to all previous + current-step tokens (bidirectional within step)
    M[idx_new[:, None], :] = 0.0
    # Optionally enforce step-level causality across time if packing multiple steps
    return M

Training tricks: RDS, RNI, TPT (ablation-driven)

Gli autori isolano quattro contributi con ablation:

  • NAM (nested attention) migliora FID separando correzione e generazione.
  • RDS (Random Dropout Sampling): campionamento che espone il modello a "range di inferenza" variabili e aumenta flessibilità sul numero di step.
  • RNI (Random Noise Input): rende il modello più tollerante allo scarto tra output generato e ground-truth, migliorando IS.
  • TPT (Tokenizer Post-Training): riduce il gap tra latent space visto dal tokenizer in training e quello "visitato" dal generator.

In Tabella 2, la versione completa (NAM+RDS+RNI+TPT) migliora progressivamente FID/IS rispetto alla baseline senza componenti.

Tokenizer Post-training con semantic regularization (DINOv2)

Il tokenizer è fine-tuned e regolarizzato semanticamente usando feature da un visual encoder pre-addestrato (DINOv2-B), allineando feature del decoder (proiettate via MLP) alle feature DINO tramite cosine similarity.

LVQGAN=Lrecon+LGAN+Lpercp+Lvq\mathcal{L}_{\text{VQGAN}}=\mathcal{L}_{\text{recon}}+\mathcal{L}_{\text{GAN}}+\mathcal{L}_{\text{percp}}+\mathcal{L}_{\text{vq}}L=λNn=1Ncos ⁣(fdec,n(l),  ϕ ⁣(fnDINO))  +  LVQGAN\mathcal{L}=\frac{\lambda}{N}\sum_{n=1}^{N}\cos\!\Big(f^{(l)}_{\text{dec},n},\;\phi\!\big(f^{\text{DINO}}_n\big)\Big)\;+\;\mathcal{L}_{\text{VQGAN}}

Inoltre, nella fase post-training, l'input allo step successivo non è puro teacher forcing: è una combinazione tra output dello step precedente e ground-truth in un certo rapporto (il paper lo descrive, senza dettagliare qui il coefficiente).

RadAR: Dataset utilizzati

  • ImageNet-1K (ILSVRC 2012, 256x256 per il training del generator): RadAR è addestrato su ImageNet-1K 256x256; il tokenizer viene inizializzato da LlamaGen e fine-tuned su ImageNet-1K anche con risoluzioni campionate casualmente.
  • Nessun dataset aggiuntivo dichiarato per i risultati principali; le demo "zero-shot" (out-painting, editing) sono mostrate come generalizzazione del modello, non come training su dataset dedicati.

RadAR: Licenze

  • Paper (arXiv:2512.24639): licenza CC BY 4.0.
  • Code/weights RadAR: non risultano rilasciati pubblicamente nella pagina arXiv al momento, quindi nessuna licenza applicabile agli artefatti software del paper.
  • Dipendenze citate (rilevanti se si replica):
    • DINOv2: repository Meta con licenza Apache-2.0.
    • LlamaGen (usato per inizializzare il tokenizer): indicato come MIT nelle pagine del progetto/repo.
    • ImageNet: richiede accettazione dei termini d'uso; fonti terze riportano vincoli non-commercial per ricerca/educazione (verificare l'accordo associato al proprio accesso).

RadAR FAQs

Mauro Sciancalepore - Notizie AI, Deep Learning e Ricerca

Resta aggiornato sulle ultime notizie di Intelligenza Artificiale e Deep Learning. Approfondimenti completi sulla ricerca e stato dell'arte.

© 2026 mauroscia.it
Tutti i diritti riservati.