Text Generation
La generazione di testo è il modo in cui i modelli linguistici scrivono: prevedono un token alla volta e scelgono ciascuno con decodifica greedy, beam search o campionamento.
La generazione di testo è la produzione automatica di linguaggio scritto da parte di un modello, che può creare una risposta di una riga, un rapporto completo o un programma. Oggi è svolta soprattutto da modelli linguistici di grandi dimensioni (LLM) che operano in modo autoregressivo: dato un prompt, il modello calcola una probabilità per ogni token del proprio vocabolario, ne seleziona uno, lo aggiunge e ripete il processo finché non decide di fermarsi. Lo stesso ciclo alimenta gli assistenti conversazionali, il completamento del codice, la traduzione automatica e la sintesi del testo. I sistemi precedenti compilavano modelli predefiniti o campionavano da modelli n-gram e di rete neurale ricorrente; il Transformer ha reso pratici output lunghi e coerenti a partire da GPT-2 nel 2019.
Come funziona la generazione autoregressiva#
La tokenizzazione converte il prompt in ID dei token e il modello li elabora tutti in un unico passaggio parallelo di prefill, memorizzando le chiavi e i valori di attenzione di ciascun token in una cache KV. A ogni passaggio di decodifica, il modello elabora solo il token più recente, legge la cache e produce i logit, un punteggio grezzo per ogni elemento del vocabolario, che una softmax converte in probabilità. Una strategia di decodifica seleziona il token successivo, che viene trasmesso all'utente e aggiunto alla sequenza. La generazione termina quando viene raggiunto un token di fine sequenza, una stringa di arresto o un limite di token, quindi la lunghezza dell'output viene decisa durante la generazione:
Il prefill è oneroso dal punto di vista computazionale e la decodifica è limitata dalla larghezza di banda della memoria, quindi i motori di serving pianificano con attenzione le due fasi, ad esempio con il prefill suddiviso in blocchi. Lo streaming consente alle applicazioni di mostrare il testo man mano che appare: l'interfaccia LLM di Ultralytics passa stream=True all'SDK OpenAI, così un'applicazione YOLO26 può mostrare la descrizione di una scena rilevata generata dal modello, token per token, all'arrivo di ogni evento response.output_text.delta.
Strategie di decodifica#
La strategia di decodifica influenza l'output tanto quanto il modello. La decodifica greedy sceglie sempre il token più probabile: è deterministica, ma tende a ripetersi. La ricerca beam conserva le k sequenze parziali più probabili e restituisce la migliore sequenza completa, risultando adatta alle attività con un'unica risposta corretta, come la traduzione. Il campionamento estrae token dalla distribuzione, di solito dopo averla rimodellata: la temperatura divide i logit prima della softmax, il campionamento top-k conserva solo i k token più probabili e il campionamento nucleus (top-p), proposto in The Curious Case of Neural Text Degeneration da Holtzman et al. nel 2019, conserva il più piccolo insieme di token le cui probabilità sommano a p. Un vocabolario di cinque token in PyTorch mostra entrambi gli effetti:
import torch
# Next-token logits over a five-word vocabulary after the prompt "I took the"
vocab = ["bus", "train", "car", "stairs", "banana"]
logits = torch.tensor([3.0, 2.4, 1.8, 0.6, -2.0])
# Temperature divides the logits: low values sharpen the distribution, high values flatten it
for temperature in [0.5, 1.0, 1.5]:
probs = torch.softmax(logits / temperature, dim=-1)
print(f"T={temperature}:", ", ".join(f"{w} {p:.2f}" for w, p in zip(vocab, probs)))
# Top-p (nucleus) sampling keeps the smallest set of tokens whose probabilities reach p
probs, order = torch.softmax(logits, dim=-1).sort(descending=True)
keep = probs.cumsum(dim=-1) - probs < 0.9
print("Top-p 0.9 keeps:", [vocab[i] for i in order[keep]])
# Sample from the renormalized nucleus
torch.manual_seed(0)
picks = torch.multinomial(probs[keep] / probs[keep].sum(), num_samples=10, replacement=True)
print("Samples:", [vocab[order[i]] for i in picks])Con temperatura 0.5, "bus" ottiene probabilità 0.71; con 1.5 scende a 0.42 e "banana" sale da 0.00 a 0.02. Top-p 0.9 conserva "bus", "train" e "car", che insieme rappresentano 0.95 della probabilità: "stairs" e "banana" non possono quindi essere campionati e dieci estrazioni producono una varietà di combinazioni dei tre token rimasti. Altri controlli agiscono sugli stessi logit: le penalità di ripetizione abbassano i punteggi dei token già usati e la decodifica vincolata maschera ogni token che violerebbe una grammatica o uno schema JSON, consentendo alle API di garantire output strutturati. La decodifica speculativa accelera la generazione permettendo a un piccolo modello di bozza di proporre più token, che il modello grande verifica in un solo passaggio.
Generazione di testo e termini correlati#
- Modellazione del linguaggio: apprendimento della probabilità del token successivo, l'obiettivo di addestramento che rende possibile la generazione. La generazione è l'uso di quel modello in fase di inferenza.
- Modelli sequence-to-sequence: modelli encoder-decoder che generano un testo di output a partire da un input distinto, come nella traduzione. Gli LLM con solo decoder gestiscono gli stessi compiti proseguendo un prompt.
- Modelli linguistici a diffusione: generano un intero brano perfezionando tutte le posizioni in parallelo in più passaggi di denoising, invece di elaborare un token alla volta.
- Da testo a immagine: riceve testo in input e produce pixel.
Qualità e rischi#
Il testo generato è scorrevole anche quando non è corretto, quindi le allucinazioni sono il rischio principale nelle attività fattuali; la generazione aumentata dal recupero (RAG) le riduce inserendo documenti di origine nel prompt. Temperature basse rendono le risposte più ripetibili, mentre temperature alte aumentano la varietà e la probabilità di scegliere un token improbabile e sbagliato. Anche riconoscere i testi scritti da una macchina è difficile, perciò si lavora alla filigrana per l'IA. Nell'articolo del 2020 su GPT-3, le persone incaricate di distinguere articoli di cronaca di 200 parole scritti dal modello da 175 miliardi di parametri da quelli scritti da esseri umani hanno indovinato solo nel 52% dei casi.










