Chain of Verification (CoVe)
La catena di verifica (CoVe) prevede che un LLM abbozzi una risposta, ponga domande mirate per verificarne i fatti, risponda a ciascuna in modo indipendente e riveda la bozza.
Chain of Verification (CoVe) è un metodo di prompting che riduce le allucinazioni nell’output dei modelli linguistici di grandi dimensioni (LLM), chiedendo al modello di verificare i fatti contenuti nella propria bozza. Il modello scrive una prima risposta, pianifica brevi domande di verifica che esaminano ogni affermazione fattuale, risponde alle domande senza basarsi sulla bozza e poi scrive una risposta finale che mantiene solo le affermazioni supportate dalle verifiche. Shehzaad Dhuliawala e i suoi colleghi di Meta AI hanno presentato il metodo nell’articolo del 2023 Chain-of-Verification Reduces Hallucination in Large Language Models. Il metodo funziona perché i modelli rispondono con maggiore precisione a domande brevi e mirate rispetto a quando enunciano gli stessi fatti in una risposta lunga: negli esperimenti dell’articolo con domande a elenco, solo circa il 17% delle entità elencate da Llama 65B era corretto, eppure lo stesso modello ha risposto correttamente a circa il 70% delle singole domande di verifica.
Come funziona Chain of Verification#
CoVe esegue quattro passaggi con lo stesso modello:
- Preparare una risposta di base: il modello risponde normalmente alla query. Se gli si chiede di nominare politici nati a New York City, potrebbe elencare Hillary Clinton, Donald Trump e Michael Bloomberg.
- Pianificare le domande di verifica: il modello legge la propria bozza e formula una domanda per ogni affermazione verificabile, ad esempio «Dove è nata Hillary Clinton?» e «Dove è nato Michael Bloomberg?».
- Rispondere a ogni domanda in modo indipendente: il modello risponde alle domande usando nuovi prompt che non contengono la bozza, così non può semplicemente ripetere l’errore precedente. Clinton è nata a Chicago e Bloomberg a Boston, mentre Trump è nato nel Queens.
- Scrivere la risposta finale rivista: il modello rivede la bozza alla luce delle risposte, eliminando o correggendo ogni affermazione non confermata; in questo caso, nell’elenco rimane Trump.
È importante quanto il terzo passaggio isoli rigorosamente ogni domanda. L’articolo ha confrontato quattro varianti: joint, in cui la pianificazione e le risposte avvengono in un unico prompt che contiene ancora la bozza; two-step, che risponde a tutte le domande in un secondo prompt senza la bozza; factored, che risponde a ogni domanda con un prompt distinto; e factor+revise, che aggiunge una verifica esplicita di ogni risposta rispetto all’affermazione originale. Tutte le varianti che escludevano la bozza dai prompt di verifica hanno generato meno allucinazioni della variante joint, perché un modello che può vedere la propria bozza tende a ripetere i propri errori.
Risultati#
Con Llama 65B, CoVe ha aumentato la precisione nelle domande sugli elenchi di Wikidata da 0.17 a 0.36 e ha portato l'F1 sul benchmark closed-book MultiSpanQA da 0.39 a 0.48. Nelle biografie in forma estesa, la variante factor+revise ha aumentato il FActScore, la percentuale di fatti atomici supportati da Wikipedia, da 55.9 a 71.4, superando il 58.7 riportato per ChatGPT e il 61.6 di PerplexityAI basato sul recupero. Questi miglioramenti hanno un costo in termini di latenza di inferenza: le varianti fattorizzate richiedono una chiamata al modello aggiuntiva per ogni domanda di verifica.
CoVe a confronto con le tecniche correlate#
- Prompting a catena di pensiero: chiede al modello di ragionare passo dopo passo prima di rispondere, aiutandolo con la logica e la matematica. CoVe verifica le affermazioni fattuali dopo che è stata prodotta una bozza.
- Generazione aumentata dal recupero (RAG): ancora la risposta ai documenti recuperati fin dall'inizio. CoVe nella sua versione originale si basa solo sulle conoscenze del modello, ma le due tecniche si combinano naturalmente quando le domande di verifica trovano risposta tramite un motore di ricerca o un indice di documenti.
- Entropia semantica: rileva le probabili allucinazioni campionando diverse risposte e misurando quanto differiscono nei loro significati. CoVe va oltre e corregge la risposta.
- Dibattito tra IA: due modelli sostengono posizioni opposte, così un giudice può individuare gli errori. CoVe è un singolo modello che verifica sé stesso senza un avversario.
Verificare le affermazioni con gli strumenti#
Non è necessario rispondere alle domande di verifica attingendo alla memoria del modello. Le pipeline le indirizzano verso strumenti che contengono le informazioni attendibili: un motore di ricerca per i fatti di dominio pubblico, un database vettoriale di documenti aziendali oppure un modello di visione per le affermazioni relative a un'immagine. Quando un modello visione-linguaggio scrive una didascalia per un'immagine, un modello Ultralytics YOLO26 di rilevamento degli oggetti può rispondere a ogni domanda «quanti» basandosi sulla didascalia, indipendentemente dalla bozza:
from collections import Counter
from ultralytics import YOLO
# Claims extracted from a draft caption: "A bus, four people, and a bicycle on a street"
draft_counts = {"bus": 1, "person": 4, "bicycle": 1}
# Answer each verification question with a detector that never sees the draft
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
detected = Counter(result.names[int(c)] for c in result.boxes.cls)
# Keep claims the detector confirms and mark the rest for revision
for name, claimed in draft_counts.items():
verdict = "keep" if detected[name] == claimed else f"revise to {detected[name]}"
print(f"How many '{name}'? Draft: {claimed}, detector: {detected[name]} -> {verdict}")Ogni riga stampata corrisponde a una domanda di verifica e contiene l'affermazione della bozza, la risposta indipendente del rilevatore e la decisione applicata alla didascalia finale.
Applicazioni nel mondo reale#
- Assistenza sanitaria: gli assistenti che riassumono la letteratura medica verificano i nomi dei farmaci, i dosaggi e le interazioni ponendo domande separate prima che un medico consulti il riepilogo.
- Risposta alle domande: gli assistenti di ricerca e supporto verificano le risposte sugli elenchi, le date e i dati biografici, ovvero i tipi di affermazioni per cui il documento ha misurato i maggiori miglioramenti.
- Report di produzione: un LLM che redige un report di turno verifica ogni difetto menzionato confrontandolo con i registri del sistema di ispezione, prima di archiviare il report.
- Elaborazione dei documenti: i valori estratti da contratti o fatture vengono richiesti di nuovo, un campo alla volta, e confrontati con la prima estrazione.
Limiti#
CoVe individua gli errori che il modello commette in modo incoerente, ma non può rilevare una convinzione errata che il modello mantiene in ogni contesto, perché la risposta indipendente ripete lo stesso errore. Verifica le affermazioni fattuali, ma non corregge il ragionamento errato tra fatti corretti, e moltiplica il numero di chiamate al modello per ogni risposta. Anche la variante migliore descritta nel documento ha lasciato senza supporto il 28.6% dei fatti atomici nelle sue biografie, la parte restante del suo FActScore di 71.4.










