Allucinazioni: perché il tuo LLM locale inventa e come limiter
Un'allucinazione dell'IA è una risposta falsa formulata con la sicurezza di una risposta corretta: una data inventata, una citazione che non esiste, una funzione Python immaginaria. In un LLM locale, il fenomeno è lo stesso che nei grandi modelli cloud, talvolta più marcato con le quantizzazioni a pochi bit. Questa guida spiega da dove vengono queste invenzioni, senza gergo tecnico, poi elenca le impostazioni, i prompt e le misure di salvaguardia concrete per ridurle — e soprattutto i casi in cui non bisogna mai fidarsi della macchina.
#Che cos'è un'allucinazione
Il termine « allucinazione » indica ogni affermazione prodotta dal modello che è falsa, inventata o impossibile da verificare, ma presentata come un fatto. Non è un bug nel senso informatico: il programma funziona perfettamente, genera testo plausibile. Il problema è che « plausibile » e « vero » non sono la stessa cosa.
In pratica, un'allucinazione assume diverse forme: un numero preciso ma falso («la popolazione di questa città è di 47.312 abitanti»), una fonte che non esiste («secondo lo studio di Dupont et al., 2019»), un'API o un comando immaginario (`ollama sync --cloud`), oppure un mix di elementi veri ricomposti in modo errato. Il punto comune: il tono è sempre sicuro.
#Perché il modello inventa
Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
Un LLM è addestrato per una sola attività: completare del testo in modo statisticamente plausibile. Ha assimilato miliardi di frasi e ne ha estratto regolarità. Quando gli poni una domanda, non «consulta» una base di conoscenze: genera, parola dopo parola, la sequenza più probabile in base alla tua richiesta e al suo addestramento.
- Nessuna memoria fattuale affidabile
- Le conoscenze sono distribuite nei pesi della rete, non memorizzate come in un database. Il modello «ricorda» una tendenza, non un fatto esatto. I dettagli precisi (date, numeri, nomi propri rari) sono i primi a deformarsi.
- Un addestramento bloccato nel tempo
- Il modello non conosce nulla di successivo alla data limite dei suoi dati di addestramento. Se gli viene chiesto di un evento recente, non dice «non lo so»: estrapola da ciò che conosce, producendo così invenzioni.
- La propensione a rispondere
- Un LLM è ottimizzato per rispondere, non per rimanere in silenzio. Di fronte a una domanda di cui non conosce la risposta, la continuazione più probabile è spesso una risposta formulata con sicurezza piuttosto che un'ammissione di ignoranza.
- L'effetto della quantizzazione
- Comprimere un modello in Q4_K_M consente di risparmiare VRAM ma riduce leggermente la precisione. Nei compiti fattuali specialistici, una quantizzazione aggressiva può aumentare il tasso di informazioni inventate rispetto a Q8_0 o FP16.
- La casualità del sampling
- A ogni parola, il modello estrae a caso uno dei candidati probabili. Più questa estrazione è «creativa» (temperatura elevata), più il modello può deviare verso continuazioni improbabili — quindi false.
In altre parole, l'allucinazione non è un incidente: è il normale funzionamento di un sistema che produce testo plausibile senza avere accesso alla verità. Non la si elimina, la si riduce e la si controlla.
#Riconoscere un'informazione inventata
Prima di correggere, bisogna saper individuare i problemi. Alcuni segnali devono metterti subito in allerta.
- Una precisione sospetta
- Numeri precisi fino all'unità, date esatte, percentuali precise su un argomento di nicchia: più un'informazione è precisa senza una fonte, più è dubbia.
- Citazioni e link
- Titoli di articoli, nomi di autori, URL, numeri di pagina, riferimenti normativi. Gli LLM inventano fonti del tutto credibili. Nessun riferimento prodotto da un modello deve essere considerato reale senza verifica.
- Del codice che « dovrebbe » esistere
- Nomi di funzioni o di opzioni da riga di comando che sembrano logici ma non esistono. Il modello completa per analogia con API simili.
- Una risposta che cambia
- Ripeti esattamente la stessa domanda in una nuova conversazione. Se la risposta fattuale cambia da una volta all'altra, il modello sta tirando a indovinare anziché rispondere sulla base di ciò che sa.
#I parametri che limitano le invenzioni
I parametri di generazione regolano il compromesso tra creatività e affidabilità. Per tutto ciò che riguarda fatti, codice o estrazione di informazioni, si desidera un comportamento deterministico e cauto.
- temperature
- La leva principale. A 0, il modello sceglie sempre la parola più probabile: risposte stabili e prudenti. Aumenta il valore a 0,7–1,0 per la scrittura creativa, ma abbassalo a 0,1–0,3 per i compiti basati sui fatti.
- top_p
- Limita il campionamento ai candidati la cui probabilità cumulata raggiunge una soglia data. Un valore basso (0,1–0,5) elimina la coda lunga delle parole improbabili, spesso responsabili di risposte fuori controllo.
- top_k
- Limita il numero di candidati considerati a ogni passaggio. Un top_k basso (10–20) riduce il margine entro cui il modello può andare fuori strada.
- seed
- Fissare un seed rende la generazione riproducibile: a parità di impostazioni, lo stesso output. Indispensabile per verificare se una risposta è stabile o casuale.
- num_ctx
- La dimensione del contesto. Se è troppo ridotta, il modello «dimentica» l'inizio e può ricombinare frammenti in modo errato. Assicurati che i tuoi documenti di riferimento rientrino nella finestra.
Con Ollama, questi parametri si possono passare al momento della chiamata API oppure fissare in un Modelfile. Ecco un esempio di chiamata al daemon locale con impostazioni prudenti per ottenere risposte fattuali:
Per rendere queste impostazioni permanenti per un modello, le si inserisce in un Modelfile e si crea una variante dedicata ai compiti basati sui fatti:
#Prompt di cautela
Il modo in cui formuli la tua richiesta influisce molto sulla frequenza delle invenzioni. L'idea: consentire esplicitamente di non sapere e vietare di inventare.
- Dare il diritto di non sapere
- « Se non sei certo, rispondi: Non lo so. » Senza questo permesso, il modello riempirà il vuoto con un'invenzione.
- Richiedere l'ancoraggio
- « Rispondi soltanto basandoti sul testo qui sotto. Non utilizzare nessuna conoscenza esterna. » Forziamo il modello a limitarsi al contesto fornito.
- Chiedere le fonti nel testo
- «Per ogni affermazione, cita la frase esatta del documento che la giustifica.» Se il modello non trova una giustificazione, l'assenza diventa visibile.
- Separare fatti e ipotesi
- «Distingui ciò che è accertato da ciò che è una tua supposizione.» Questo spinge il modello a etichettare le proprie incertezze.
- Scomporre compiti complessi
- Una domanda suddivisa in più passaggi espliciti lascia meno spazio all'improvvisazione rispetto a un'unica domanda aperta molto ampia.
#Ancorare le risposte ai tuoi documenti
La tecnica più efficace contro le allucinazioni dell'IA rimane il RAG (Retrieval-Augmented Generation): invece di lasciare che il modello attinga alla propria memoria diffusa, gli forniamo i passaggi pertinenti dei tuoi documenti e gli chiediamo di rispondere solo sulla base di questi. Il modello passa dal ruolo di «fonte» a quello di «lettore».
- 01Indicizzare i tuoi documentiI tuoi file (PDF, appunti, documenti interni) vengono suddivisi in segmenti, trasformati in vettori da un modello di embedding e memorizzati in un database vettoriale.
- 02Trovare i passaggi rilevantiPer ogni domanda, il sistema cerca i frammenti semanticamente più vicini alla richiesta e li recupera.
- 03Inserire nel contestoI passaggi trovati vengono incollati nel prompt, accompagnati da un'istruzione rigorosa: rispondere soltanto basandosi su questi estratti.
- 04Generare con citazioniIl modello redige la risposta basandosi sugli estratti forniti, idealmente citando quelli utilizzati. Se non contengono la risposta, deve dirlo.
Open WebUI, collegato al daemon Ollama (http://localhost:11434), offre un RAG integrato: carichi documenti e li richiami con `#` nella conversazione. Per esigenze su misura, un database vettoriale e una pipeline sviluppata in proprio offrono maggiore controllo.
#Verificare sistematicamente
Nessuna tecnica rende un LLM affidabile al 100 %. La verifica quindi non è un'opzione: è una fase del workflow. Deve essere proporzionata alla posta in gioco.
- Confrontare con una fonte reale
- Ogni dato fattuale destinato a essere utilizzato (numero, data, citazione) va verificato consultando una fonte primaria. Il modello è un punto di partenza, mai una fonte di riferimento.
- Testare il codice prima di fidarsene
- Esegui ciò che il modello produce. Una funzione inesistente genera un errore immediato. Non copiare mai codice critico senza averlo eseguito.
- Confrontare due generazioni
- Ripeti la domanda con un seed diverso o in una nuova sessione. I punti stabili sono più affidabili; i punti che variano sono sospetti.
- Usare un secondo modello
- Far rileggere la risposta di un modello a un altro (o a una variante più grande) fa emergere le incoerenze evidenti.
- Mantenere una persona nel processo
- Per ogni decisione con conseguenze (salute, diritto, denaro, sicurezza), la validazione finale rimane umana. Nessuna eccezione.
#I casi in cui non bisogna mai fidarsi
In alcuni ambiti si concentrano le allucinazioni più pericolose. In questi casi, considera ogni output del modello come una bozza non verificata, da ritenere falsa fino a prova contraria.
- Salute e farmaci
- Posologie, interazioni, diagnosi. Un'informazione inventata può essere pericolosa. Il modello non è un professionista sanitario.
- Diritto e fiscalità
- Articoli di legge, giurisprudenza, obblighi dichiarativi. Gli LLM inventano riferimenti giuridici dal realismo ingannevole.
- Cifre e statistiche precise
- Popolazioni, tassi, importi, date esatte. I dettagli numerici sono il punto debole strutturale dei modelli.
- Eventi recenti
- Tutto ciò che è successivo alla data limite dei dati di addestramento. Il modello colmerà le lacune per estrapolazione senza segnalarlo.
- Citazioni e riferimenti
- Titoli, autori, URL, numeri di pagina. Verificare sistematicamente, senza eccezioni, prima di qualsiasi riutilizzo.
- Persone e fatti di nicchia
- Biografie di persone poco conosciute, dettagli oscuri: il modello ricompone frammenti e inventa il resto.
#Per approfondire
Ridurre le allucinazioni significa soprattutto combinare le giuste impostazioni e il giusto ancoraggio. Queste guide completano l'approccio:
- Temperatura, top-p, top-k: i parametri
- Per padroneggiare in dettaglio i parametri di campionamento citati qui e regolare con precisione il compromesso tra creatività e affidabilità.
- Scegliere la quantizzazione (Q4, Q5, Q8, FP16)
- Per capire l'effetto della compressione sulla precisione fattuale e decidere quando l'affidabilità è prioritaria.
- Padroneggiare i system prompt
- Per approfondire i prompt che invitano alla prudenza e fissare un comportamento predefinito che eviti di inventare informazioni.
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.