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.