Ho aggiunto uno strato di verifica al mio RAG locale per individuare le allucinazioni
Ho costruito un assistente alla ricerca locale utilizzando Ollama. Funziona sui miei documenti personali. Nulla lascia la mia macchina.
Volevo fermare le allucinazioni. Uno strumento che cita un numero errato pur sembrando sicuro di sé è pericoloso.
Ho aggiunto uno strato di verifica. Funziona in tre passaggi:
- Suddividere la risposta in piccole affermazioni.
- Utilizzare un LLM per verificare ogni affermazione rispetto alla fonte.
- Segnalare le affermazioni che la fonte non supporta.
I risultati mi hanno insegnato una dura lezione. Ho sbagliato due volte sui miei stessi dati.
Primo, il modello ha fornito un numero reale ma ha usato il contesto sbagliato. Ha citato un AUROC di 0,804 per un set di test inesistente. Il numero era reale. Il contesto era una menzogna. Il mio verificatore l'ha approvato perché le cifre corrispondevano.
Secondo, il modello ha preso un numero da una parte diversa del documento. Ha attribuito un valore all'esperimento sbagliato.
Ecco cosa ho imparato testando questo sistema:
La verifica individua solo i valori assenti. Se un numero non è affatto presente nel testo, il verificatore lo individua. Se il numero è reale ma associato al fatto sbagliato, spesso fallisce.
I giudici basati sullo stesso modello hanno dei punti ciechi. Se lo stesso modello scrive la risposta e la giudica, approva automaticamente i propri errori. Utilizzare un modello diverso per la valutazione aiuta a individuare i numeri attribuiti erroneamente.
Una segnalazione non significa sempre una menzogna. Una segnalazione può significare tre cose:
- Un'allucinazione reale.
- Un errore di recupero (retrieval) in cui la fonte non è stata trovata.
- Un fatto vero che non era presente nel testo recuperato. Quando vedi una segnalazione, prova a recuperare nuovamente i dati invece di limitarti a eliminare l'affermazione.
- Hai bisogno di una ground truth. Non puoi misurare le allucinazioni senza conoscere le risposte reali. Ho rischiato di pubblicare due risultati falsi sul mio stesso lavoro. Una semplice ricerca tra i miei file ha risolto entrambi gli errori.
Consigli pratici per il tuo RAG:
- Usa un modello diverso per la valutazione rispetto a quello che fornisce la risposta.
- Concentrati su un migliore recupero (retrieval). La maggior parte delle "allucinazioni" sono solo fallimenti del recupero.
- Considera le segnalazioni come uno spunto per approfondire, non solo come un segno di errore.
Optional learning community: https://t.me/GyaanSetuAi