Autoregressive

[autoregrèssiv]

Modello che genera output un pezzo alla volta, usando ciò che ha già generato come input per il pezzo successivo. Tutti gli LLM funzionano così.

Un modello autoregressive genera l'output un pezzo alla volta. Genera la parola 1, poi usa la parola 1 come input per generare la parola 2, poi usa 1 e 2 per generare la 3, e così via. Mai indietro, sempre avanti.

Tutti gli LLM moderni sono autoregressive. ChatGPT, Claude, Gemini, Llama: vedi le parole apparire una alla volta? Non è effetto scenico, è proprio così che funzionano dentro. Generano un token, lo aggiungono al contesto, ne generano un altro.

Conseguenze pratiche di essere autoregressive:

  • Velocità limitata: non puoi parallelizzare la generazione. Un modello che scrive 50 token al secondo li scrive uno dopo l'altro, punto.
  • Errori che si propagano: se il modello sbaglia il primo token, gli sbagli successivi peggiorano. Ecco perché le allucinazioni spesso si "cascano" dentro frasi sempre più assurde.
  • Costo lineare nell'output: 1000 token in output costano 1000 forward pass del modello. Per questo l'output è più caro dell'input nei prezzi API.

Esistono alternative: i diffusion model (usati per immagini) generano tutto in parallelo iterando il rumore. Per il testo si stanno provando approcci non-autoregressive ma per ora gli LLM autoregressive vincono in qualità.

Curiosità: BERT, il modello di Google del 2018, NON era autoregressive. Vedeva tutto il testo insieme. Ottimo per capire, pessimo per generare. Per questo BERT non scrive, classifica.