Chain-of-Verification (IT)

From Systems analysis Wiki
Jump to navigation Jump to search

Chain-of-Verification (CoVe) — è un metodo proposto per ridurre il numero di allucinazioni (generazione di risposte fattualmente errate ma plausibili) nei grandi modelli linguistici (LLM)[1]. L'approccio, sviluppato da un gruppo di ricercatori di Meta AI sotto la guida di Shehzaad Dhuliawala e presentato nel lavoro «Chain-of-Verification Reduces Hallucination in Large Language Models» (2023), appartiene alla classe dei metodi di auto-verifica e auto-correzione (self-verification) degli LLM[2]. L'idea principale di CoVe consiste nella verifica graduale della risposta generata da parte del modello stesso, senza il ricorso a fonti esterne[2]. Ciò spinge il sistema a dedicare maggiori sforzi «ragionativi» all'auto-analisi della risposta e alla correzione dei propri errori prima di presentare la risposta all'utente[2].

Contesto: le allucinazioni nei modelli linguistici

I grandi modelli linguistici (LLM) soffrono spesso del fenomeno delle «allucinazioni» – la generazione di risposte che appaiono plausibili ma sono fattualmente errate[3]. Questo problema è ampiamente riconosciuto come irrisolto nel campo del NLP: anche i modelli più moderni possono fornire informazioni false con elevata sicurezza, ingannando gli utenti[1]. Ad esempio, un modello può convincentemente «inventare» un fatto inesistente o confondere i dati biografici di una persona nota. Poiché tali errori fattuali sono difficili da individuare senza una verifica dettagliata, i ricercatori sviluppano attivamente metodi per ridurre il numero di allucinazioni nelle risposte degli LLM.

Fasi del metodo CoVe

Il metodo Chain-of-Verification si realizza attraverso quattro passaggi sequenziali[2][2]:

  1. Generazione della risposta di base. Il modello, senza istruzioni speciali, genera una risposta iniziale alla richiesta originale (ipotesi di risposta di base)[3]. Questa risposta preliminare costituisce il punto di partenza e può contenere allucinazioni che dovranno essere scoperte nei passaggi successivi.
  2. Pianificazione delle domande di verifica. Disponendo della domanda originale e della risposta generata, il modello formula un elenco di domande di approfondimento che verificano la correttezza fattuale delle affermazioni contenute nella risposta di base[3]. Queste verification questions sono indirizzate ai fatti chiave della risposta e aiutano a individuare possibili errori o imprecisioni.
  3. Esecuzione della verifica (verificazione). Il modello risponde quindi in modo sequenziale e indipendente a ciascuna delle domande di verifica formulate, cercando di non fare affidamento sulla risposta iniziale per evitare distorsioni[3]. Le risposte ottenute vengono confrontate con la risposta originale per individuare contraddizioni o errori: in questo modo vengono identificate le parti della risposta originale che non sono supportate dai fatti.
  4. Formulazione della risposta finale. Infine, sulla base delle discrepanze riscontrate, il modello genera una risposta corretta e definitiva[3]. In questa risposta vengono apportate le correzioni tenendo conto dei risultati della verifica, il che ne aumenta l'accuratezza fattuale e riduce la probabilità di allucinazioni.

Ciascuna di queste fasi viene eseguita tramite ulteriori richieste allo stesso LLM, ma con istruzioni diverse[2]. Ovvero, il modello assume alternativamente il ruolo di chi risponde, poi di chi verifica (formula domande e risponde), e infine di redattore dell'output finale.

Varianti di implementazione della verifica

Gli autori del metodo hanno sperimentato diverse modalità di implementazione della fase di verifica, che si distinguono per il modo in cui le domande di verifica vengono formulate e le risposte ottenute[2]:

  • Approccio congiunto (Joint). Il modello genera sia le domande di verifica che le relative risposte nell'ambito di un'unica richiesta. Questa variante è meno preferibile, poiché il modello, rispondendo immediatamente, può allucinare fatti e ripetere gli errori della risposta originale a causa di distorsioni[3].
  • Approccio in due fasi (2-Step). Le domande di verifica vengono prima generate con una richiesta separata, e poi in una richiesta successiva il modello risponde all'elenco di domande così formato[3]. La separazione delle fasi aiuta a evitare l'influenza della risposta originale durante la generazione delle domande.
  • Verifica separata (Factored). Il modello risponde separatamente a ciascuna domanda di verifica, utilizzando più richieste sequenziali (una per domanda)[3]. Questo approccio impedisce il semplice copia-incolla di frammenti della risposta originale: le risposte alle domande di verifica vengono formulate in modo autonomo, riducendo il rischio di ripetere l'allucinazione iniziale. Lo svantaggio è l'aumento del costo computazionale, poiché il numero di richieste cresce proporzionalmente al numero di domande.
  • Verifica separata con revisione (Factored + Revise). Dopo aver ottenuto le risposte a tutte le domande di verifica, il modello esegue un'ulteriore fase di confronto e revisione. Tramite una richiesta separata, confronta i fatti ottenuti con la risposta originale e segnala esplicitamente le incongruenze, dopodiché genera la risposta finale con le correzioni[3]. Questo passaggio aggiuntivo costringe il sistema ad analizzare più attentamente le discrepanze e a integrare le informazioni corrette nell'output definitivo.

Risultati sperimentali

Il metodo Chain-of-Verification è stato testato su una serie di compiti sensibili all'accuratezza fattuale delle risposte[1]. Tra questi vi erano: domande di enumerazione di fatti da una base di conoscenza (elenchi da Wikidata e categorie di Wikipedia), domande a risposta multipla provenienti da diverse parti del testo (MultiSpanQA), nonché compiti di generazione di testo esteso (ad esempio, biografie)[1].

I risultati hanno mostrato una significativa riduzione delle allucinazioni in tutti i tipi di compiti con l'utilizzo di CoVe rispetto ai modelli originali privi di auto-verifica[1]. Particolarmente efficace si è rivelata la variante factored + revise – verifica separata con confronto finale dei fatti. Questo approccio ha dato i migliori risultati in termini di accuratezza: ad esempio, nel compito di generazione di testo biografico, l'applicazione di CoVe al modello LLaMA-65B (LLM da 65 miliardi di parametri) ha aumentato la sua metrica fattologica FactScore da ~63,7 a ~71,4 punti[2]. L'aumento del FactScore indica che le risposte finali hanno iniziato a contenere più fatti verificati e meno informazioni inventate.

Inoltre, l'LLM dotata della catena di verifica ha potuto superare persino alcuni sistemi più potenti o appositamente equipaggiati. Così, LLaMA-65B con CoVe ha mostrato un FactScore più elevato rispetto a ChatGPT (modello di OpenAI) e ha superato Perplexity.ai — un modello integrato con la ricerca su Internet per il supporto fattuale delle risposte[2]. Ciò è notevole, poiché Perplexity utilizza fonti esterne per la ricerca di informazioni, mentre CoVe ottiene il miglioramento della qualità affidandosi esclusivamente alle capacità interne di ragionamento e auto-verifica del modello[2]. Va detto che sui fatti più rari (quando sono richieste conoscenze specifiche) un sistema di retrieval come Perplexity mantiene ancora il vantaggio, tuttavia sulla maggior parte delle domande CoVe ha fornito risposte più accurate[2].

Limiti e prospettive

È opportuno osservare che, sebbene Chain-of-Verification riduca notevolmente la quota di allucinazioni, questo metodo non è in grado di eliminarle completamente. Il modello può ancora commettere errori se le domande di verifica non hanno coperto qualche dettaglio errato, o se l'LLM stessa non conosce il fatto corretto. Inoltre, CoVe aumenta il carico computazionale: per una singola richiesta dell'utente è necessario effettuare più chiamate sequenziali al modello (generazione della risposta, generazione delle domande, risposte ad esse, assemblaggio finale), mentre un modello ordinario risponde in un solo passaggio[2]. Tuttavia, gli autori dimostrano che in termini di costi complessivi CoVe è paragonabile ad altri approcci multi-fase per il rilevamento delle allucinazioni e rimane una soluzione praticabile[2].

Nel loro lavoro, i ricercatori di Meta AI hanno indicato possibili direzioni di miglioramento del metodo. Una delle vie più ovvie è combinare CoVe con l'utilizzo di strumenti esterni, ad esempio collegando un modulo di ricerca su Internet o di basi di conoscenza nella fase di verifica[2]. Ciò consentirebbe di ottenere informazioni affidabili dall'esterno e di confermare o confutare ancora più efficacemente i fatti della risposta originale. In questo modo, Chain-of-Verification rappresenta un passo verso sistemi AI più responsabili e accurati: dimostra che, costringendo il modello a riesaminare criticamente la propria risposta, è possibile migliorarne sensibilmente la qualità e ridurre la diffusione di fatti inventati nel testo generato[2].

Riferimenti

  • Articolo originale «Chain-of-Verification Reduces Hallucination in Large Language Models» su arXiv
  • Articolo «Chain-of-Verification Reduces Hallucination in Large Language Models» in ACL Anthology
  • Chain of Verification (CoVe) — Understanding & Implementation — articolo su Medium

Bibliografia

  • Dhuliawala, S. et al. (2023). Chain-of-Verification Reduces Hallucination in Large Language Models. arXiv:2309.11495.
  • Manakul, P. et al. (2023). SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models. arXiv:2303.08896.
  • Yang, B. et al. (2025). Hallucination Detection in Large Language Models with Metamorphic Relations. arXiv:2502.15844.
  • Liang, X. et al. (2024). Internal Consistency and Self-Feedback in Large Language Models: A Survey. arXiv:2407.14507.
  • Lightman, H. et al. (2023). Let's Verify Step by Step. arXiv:2305.20050.
  • Ling, Z. et al. (2023). Deductive Verification of Chain-of-Thought Reasoning. arXiv:2306.03872.
  • Lyu, Q. et al. (2023). Faithful Chain-of-Thought Reasoning. arXiv:2301.13379.
  • Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
  • Wei, J. et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
  • Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
  • Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.

Note

  1. 1.0 1.1 1.2 1.3 1.4 Dhuliawala, Shehzaad et al. «Chain-of-Verification Reduces Hallucination in Large Language Models». arXiv. [1]
  2. 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 Dhuliawala, Shehzaad et al. «Chain-of-Verification Reduces Hallucination in Large Language Models». ACL Anthology. [2]
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 chowdhury, sourajit roy. «Chain of Verification (CoVe) — Understanding & Implementation». Medium. [3]