Il panorama dell'intelligenza artificiale generativa è in continua evoluzione, e le soluzioni basate su Generazione Aumentata dal Recupero (RAG) stanno diventando un pilastro fondamentale per applicazioni che richiedono risposte accurate e contestualmente pertinenti. Per chiunque sia coinvolto nello sviluppo o nell'implementazione di questi sistemi, sorgono numerose domande sulla loro efficacia e affidabilità. Come si può garantire che una soluzione RAG funzioni come previsto? Quali sono i parametri chiave per misurarne il successo?

La strategia di valutazione è la chiave per il successo delle soluzioni RAG

Una strategia chiara e ben definita durante l'intero processo di sviluppo di una soluzione basata su RAG è assolutamente cruciale per un percorso di successo fino alla produzione. Troppo spesso, osserviamo nelle fasi pilota valutazioni empiriche di natura eterogenea, che talvolta mancano di riproducibilità. Questo rappresenta un ostacolo significativo. Per poter migliorare le prestazioni di una soluzione RAG in fase di sviluppo o per diagnosticare correttamente un problema in produzione, è imperativo che le attività di valutazione siano riproducibili e rapidamente eseguibili. Le pipeline RAG dovrebbero essere valutate in modo sistematico e coerente, sia per quanto riguarda le loro componenti di recupero (retrieval) sia per quelle di generazione (generation).

Comprendere le prestazioni di una soluzione RAG: quando è essenziale?

La comprensione approfondita delle prestazioni di una soluzione basata su RAG riveste un ruolo decisivo in diverse fasi del ciclo di vita della soluzione, in particolare durante:

  • la fase di progettazione e prototipazione, per guidare le scelte architetturali iniziali;
  • la fase di sviluppo e test, per iterare e ottimizzare le prestazioni;
  • la fase di implementazione e messa in produzione, per garantire il rispetto degli standard di qualità;
  • il monitoraggio e la manutenzione post-produzione, per identificare e risolvere tempestivamente eventuali regressioni o problemi.

Tuttavia, lo sforzo necessario per costruire un motore di valutazione non dovrebbe essere sottovalutato, specialmente quando si tratta di creare un set di dati "gold standard" (o di riferimento), completo di risposte e contesti di riferimento. La creazione di tali set di dati richiede tempo, competenza e risorse significative, ma è fondamentale per una valutazione obiettiva e comparabile.

LLMaaJ (LLM as a Judge): una metrica innovativa

Nel corso dell'ultimo anno, LLMaaJ (LLM as a Judge) si è affermato come una metrica leader per superare la sfida della costruzione di un motore di valutazione basato su riferimenti. Questa tecnica di valutazione ha dimostrato una buona correlazione con il giudizio umano, offrendo un modo più pratico ed efficiente per valutare le prestazioni dei sistemi RAG. LLMaaJ consente di quantificare diverse proprietà che non possono essere valutate con le metriche e i benchmark esistenti, tra cui:

  • la completezza della risposta;
  • l'accuratezza fattuale, verificando che la risposta non contenga allucinazioni;
  • la pertinenza della risposta rispetto alla query dell'utente;
  • la coerenza del linguaggio e dello stile;
  • la fluidità e la leggibilità della generazione;
  • la sicurezza, garantendo che la risposta non sia tossica o bias.

Ad esempio, quando si utilizza un modello di valutazione per giudicare l'output di altri modelli, il prompt di valutazione dovrebbe includere una descrizione degli attributi da valutare e della scala di valutazione, e dovrebbe essere interpolato per includere la risposta da valutare. In questo contesto, il modello viene istruito a valutare lo stile linguistico della risposta e a restituire una classificazione. Ciò permette di ottenere un feedback qualitativo e quantitativo su aspetti più sottili della generazione di testo.

Come ulteriore opzione, di seguito è riportato un esempio di prompting "few-shot" per una valutazione guidata da LLM per le attività di riconoscimento di entità nominate (NER - Named Entity Recognition). Questo approccio dimostra come, con pochi esempi, un LLM possa essere istruito a svolgere compiti di valutazione complessi, riducendo la necessità di etichettare manualmente grandi volumi di dati per creare set di dati di riferimento.

La complessità dei sistemi RAG e gli strumenti di valutazione

La complessità dei sistemi RAG è influenzata in modo significativo dalla natura enigmatica dei Large Language Models (LLM) stessi, oltre che dalle componenti complesse e interconnesse all'interno della pipeline RAG. Dato il ritmo rivoluzionario con cui la tecnologia avanza, la valutazione di un sistema così intricato diventa un compito sempre più arduo. Per affrontare questa sfida, sono stati sviluppati numerosi benchmark e strumenti di valutazione specifici per i sistemi RAG. Queste risorse sono progettate per fornire un approccio standardizzato e sistematico per valutare le prestazioni e l'efficacia di questi sistemi.

Come illustrato, ad esempio, in una tabella adattata da "Evaluation of Retrieval-Augmented Generation: A Survey", esiste una vasta gamma di metodi e strumenti di valutazione RAG, ognuno con i propri punti di forza e aree di applicazione. Sebbene tale tabella non pretenda di essere esaustiva, essa serve a fornire una rapida panoramica del panorama attuale della valutazione RAG, evidenziando la diversità degli approcci disponibili sul mercato.

Sfide nella componente di recupero (retrieval)

Nel contesto della componente di recupero dei sistemi RAG, emergono diverse sfide cruciali:

  • la natura estesa e dinamica dei repository di conoscenza prospettici, che cambiano e crescono costantemente;
  • gli aspetti temporali dei dati, dove l'attualità e la validità delle informazioni sono critiche;
  • l'eterogeneità delle fonti di informazione, che possono presentare formati, stili e qualità diverse.

Di fronte a queste sfide, diventa evidente che le metriche di valutazione tradizionali come il recall e la precisione sono insufficienti e scarsamente adatte per una valutazione completa. Sono invece necessarie metriche più differenziate e dipendenti dal contesto, capaci di catturare efficacemente la complessità e le sfumature del processo di recupero.

Sfide nella componente di generazione (generation)

Per quanto riguarda la componente di generazione, è fondamentale considerare la relazione intricata tra la precisione del processo di recupero e la qualità dell'output generato. Questo richiede lo sviluppo e l'implementazione di metriche complete che possano consentire una valutazione olistica e sfumata delle prestazioni, assicurando che la generazione non sia solo grammaticalmente corretta, ma anche pertinente, coerente e non allucinatoria rispetto al contesto recuperato.

Valutazione del sistema RAG nel suo complesso

La valutazione del sistema RAG nel suo insieme richiede, a sua volta, un'indagine approfondita dell'impatto della componente di recupero sul processo di generazione, oltre a una valutazione dell'efficacia e dell'efficienza complessiva del sistema nel raggiungere i suoi obiettivi prefissati. Ciò significa considerare l'intero flusso di lavoro, dal recupero iniziale dei documenti alla formulazione della risposta finale, per assicurarsi che tutte le parti lavorino in armonia.

RAG Triad: un framework di valutazione integrato

RAG Triad è un framework di valutazione progettato per misurare l'affidabilità e l'accuratezza contestuale delle risposte dei Large Language Model (LLM). Consiste di tre valutazioni principali:

  • Rilevanza del contesto (Context Relevance): Valuta quanto il contesto recuperato sia pertinente alla query dell'utente.
  • Fondatezza (Groundedness): Verifica se la risposta dell'LLM sia completamente supportata dal contesto fornito, identificando le "allucinazioni".
  • Rilevanza della risposta (Answer Relevance): Misura quanto la risposta generata sia direttamente pertinente e utile per la domanda dell'utente.

Queste valutazioni mirano a identificare le allucinazioni delle risposte dell'LLM controllando la rilevanza del contesto, la fondatezza delle risposte al contesto e la corrispondenza delle risposte alle richieste degli utenti. Questo approccio a tre punte offre una visione completa dell'accuratezza e dell'utilità del sistema RAG.

Metrice di valutazione automatica

La valutazione RAG può essere condotta utilizzando sia metriche automatiche basate su riferimenti sia metriche senza riferimenti. Esiste una classifica su HuggingFace che mostra quanto bene gli LLM open source si comportano l'uno rispetto all'altro, fornendo un punto di riferimento utile per confrontare le prestazioni dei modelli.

Metrice di recupero basate su riferimenti

Le seguenti metriche di recupero sono basate su riferimenti, il che implica che ogni "chunk" di informazione (contesto) deve essere identificato in modo univoco (contexts_id) e ogni domanda deve possedere ID univoci dei contesti "ground-truth" (veri o di riferimento).

Le metriche di valutazione dipendenti dal ranking, utilizzate nei sistemi di raccomandazione, sono ben adatte per i sistemi RAG.

MRR (Mean Reciprocal Rank)

L'MRR è utilizzato in Unitxt e misura la posizione del primo documento rilevante nei risultati di ricerca. Un valore MRR elevato, vicino a 1, indica che i risultati rilevanti sono visualizzati più in alto, suggerendo un'elevata qualità della ricerca. Al contrario, un MRR inferiore indica prestazioni di ricerca più scarse, con risposte rilevanti posizionate più in basso nei risultati.

  • Vantaggi: Sottolinea l'importanza del primo risultato rilevante, che è spesso cruciale negli scenari di ricerca.
  • Svantaggi: Una limitazione è che la query non viene penalizzata per l'assegnazione di un rango basso ad altre verità fondamentali (ground truths); inoltre, non è adatto per la valutazione dell'intera lista di risultati recuperati, poiché si concentra solo sul primo elemento rilevante.

NDCG@k (Normalized Discounted Cumulative Gain)

Il NDCG@k è una metrica di qualità del ranking che valuta quanto bene una lista di elementi è ordinata rispetto a un ranking ideale, dove tutti gli elementi rilevanti si trovano in cima. Viene calcolato dividendo il DCG@k (Discounted Cumulative Gain a k) per l'IDCG@k (Ideal Discounted Cumulative Gain a k), che rappresenta il punteggio di una lista di elementi perfettamente ordinata fino alla posizione k. Il DCG misura la rilevanza cumulativa degli elementi in una lista. Il valore di NDCG@k si situa tra 0 e 1.

  • Vantaggi: Tiene conto della posizione degli elementi rilevanti, offrendo una visione più completa della qualità del ranking; può essere adattato a diversi livelli di ranking (ad esempio, NDCG@k).
  • Svantaggi: Più complesso da calcolare e interpretare rispetto a metriche più semplici come l'MRR; richiede un ranking ideale per il confronto, che potrebbe non essere sempre disponibile o facile da definire.

MAP (Mean Average Precision)

Il MAP (Mean Average Precision) è una metrica che valuta il ranking di ogni documento correttamente recuperato all'interno di una lista di risultati. È vantaggioso quando il sistema deve considerare l'ordine dei risultati e recuperare più documenti in un singolo passaggio.

  • Vantaggi: Considera sia la precisione che il recall, offrendo una valutazione equilibrata delle prestazioni; è adatto per compiti che richiedono più documenti rilevanti e il loro ordine corretto.
  • Svantaggi: Può essere più intenso dal punto di vista computazionale rispetto a metriche più semplici; la sua definizione precisa si conclude qui, ma è generalmente riconosciuto che richiede un set di verità fondamentale per il calcolo.

Attraverso l'applicazione di queste metriche e l'adozione delle migliori pratiche descritte, gli sviluppatori e gli ingegneri possono affinare le loro soluzioni RAG, garantendo non solo prestazioni eccellenti ma anche un'affidabilità e un'accuratezza che soddisfino le esigenze sempre crescenti del mondo digitale.