Utilizzando LLM per valutare LLM

Utilizzando LLM per valutare i prodotti LLM

Immagine generata da DALL-E 3 di OpenAI.

Puoi chiedere a ChatGPT di agire in un milione di modi diversi: come il tuo nutrizionista, tutor di lingua, medico, ecc. Non sorprende quindi vedere molti demo e prodotti lanciati sopra l’API di OpenAI. Ma sebbene sia facile far agire gli LLM in un certo modo, assicurarsi che abbiano un buon rendimento e che completino accuratamente il compito assegnato è una storia completamente diversa.

Il problema è che molti criteri a cui teniamo sono estremamente soggettivi. Le risposte sono accurate? Le risposte sono coerenti? È stata coinvolta qualche allucinazione? È difficile costruire metriche quantificabili per la valutazione. Per lo più, hai bisogno di un giudizio umano, ma è costoso far controllare un gran numero di output degli LLM dagli esseri umani.

Inoltre, gli LLM hanno molti parametri che puoi regolare. Prompt, temperatura, contesto, ecc. Puoi specializzare i modelli su un set di dati specifico per adattarli al tuo caso d’uso. Con l’ingegneria dei prompt, anche chiedere a un modello di fare un respiro profondo [1] o rendere la tua richiesta più emotiva [2] può migliorare le prestazioni. C’è molto spazio per personalizzare e sperimentare, ma dopo aver apportato modifiche, è necessario capire se il sistema sia migliorato o peggiorato nel complesso.

Dato che il lavoro umano è lento e costoso, c’è un forte incentivo a trovare metriche automatiche per questi criteri più soggettivi. Un approccio interessante, che sta diventando popolare, è quello di utilizzare gli LLM per valutare l’output degli LLM stessi. Dopotutto, se ChatGPT può generare una risposta buona e coerente a una domanda, può anche dire se un determinato testo è coerente? Questo apre una scatola piena di potenziali pregiudizi, tecniche e opportunità, quindi immergiamoci.

Bias degli LLM

Se hai una reazione emotiva negativa sulla creazione di metriche e valutatori utilizzando gli LLM, le tue preoccupazioni sono fondate. Questo potrebbe essere un modo terribile per propagare i pregiudizi esistenti.

Ad esempio, nell’articolo G-Eval, di cui parleremo in dettaglio in seguito, i ricercatori hanno mostrato che la valutazione basata sugli LLM dà punteggi più alti ai riassunti di GPT-3.5 rispetto ai riassunti scritti da umani, anche quando i giudici umani preferiscono i riassunti scritti da umani.

Un altro studio, intitolato “Large Language Models are not Fair Evaluators” [3], ha scoperto che quando viene chiesto di scegliere quale delle due opzioni presentate è migliore, c’è un significativo pregiudizio nell’ordine in cui vengono presentate le opzioni. Ad esempio, GPT-4 preferiva spesso la prima opzione fornita, mentre ChatGPT preferiva la seconda. Puoi semplicemente chiedere la stessa domanda con l’ordine invertito e vedere quanto sono coerenti gli LLM nelle loro risposte. Successivamente, sono state sviluppate tecniche per mitigare questo pregiudizio eseguendo più volte gli LLM con ordini diversi delle opzioni.

Valutare i valutatori

Alla fine, vogliamo sapere se gli LLM possono svolgere il compito altrettanto bene o in modo simile ai valutatori umani. Possiamo ancora affrontare questo come un problema scientifico:

  1. Stabilire criteri di valutazione.
  2. Chiedere agli umani e agli LLM di valutare secondo i criteri.
  3. Calcolare la correlazione tra la valutazione umana e quella degli LLM.

In questo modo, possiamo avere un’idea di quanto gli LLM assomiglino ai valutatori umani.

Infatti, ci sono già diversi studi simili a questo, che mostrano che per determinati compiti, gli LLM fanno un lavoro molto migliore rispetto a metriche di valutazione più tradizionali. Ed è utile notare che non abbiamo bisogno di una correlazione perfetta. Se valutiamo su molti esempi, anche se la valutazione non è perfetta, potremmo comunque avere un’idea se il nuovo sistema sta performando meglio o peggio. Potremmo anche utilizzare gli valutatori LLM per evidenziare casi limite preoccupanti per i valutatori umani.

Diamo uno sguardo ad alcune delle metriche e dei valutatori recentemente proposti che si basano principalmente sugli LLM.

G-Eval

G-Eval [4] funziona delineando prima i criteri di valutazione e quindi chiedendo semplicemente al modello di dare un punteggio. Ad esempio, potrebbe essere utilizzato per compiti di riassunto e generazione di dialoghi.

G-Eval ha i seguenti componenti:

  1. Prompt. Definisce il compito di valutazione e i suoi criteri.
  2. Istruzioni intermedie. Schematizza le istruzioni intermedie per la valutazione. In realtà, chiedono all’LLM di generare questi passaggi.
  3. Funzione di punteggio. Invece di prendere il punteggio LLM come valore assoluto, guardiamo sotto il cofano alle probabilità dei token per ottenere il punteggio finale. Quindi, se chiedi di valutare da 1 a 5, invece di prendere semplicemente il numero fornito dall’LLM (ad esempio “3”), guarderemmo la probabilità di ogni rango e calcoleremmo il punteggio ponderato. Questo perché i ricercatori hanno scoperto che di solito una sola cifra domina la valutazione (ad esempio, restituendo principalmente 3) e anche quando chiedi all’LLM di restituire un valore decimale, tende comunque a restituire interi.
Prompts G-Eval per calcolare la coerenza su una scala da 1 a 5. Puoi trovare ulteriori esempi nell'articolo originale.

È stato scoperto che G-Eval supera significativamente le metriche tradizionali basate sul riferimento, come BLEU e ROUGE, che avevano una correlazione relativamente bassa con i giudizi umani. Sulla superficie, sembra piuttosto semplice, in quanto chiediamo semplicemente all’LLM di eseguire la valutazione. Potremmo anche cercare di suddividere i compiti in componenti più piccole.

FactScore

FactScore (Precisione fattuale in Atomicity Score) [5] è una metrica per la precisione fattuale. Le due idee chiave sono trattare i fatti atomici come unità e basare la fiducia su una particolare fonte di conoscenza.

Per la valutazione, si suddivide la generazione in “fatti” atomici (ad esempio “È nato a New York”) e quindi si controlla per ciascun fatto se è supportato dalla data fonte di conoscenza. Il punteggio finale viene calcolato dividendo il numero di fatti supportati per il numero totale di fatti.

Nell’articolo, i ricercatori hanno chiesto agli LLM di generare biografie di persone e successivamente hanno utilizzato articoli di Wikipedia su di loro come fonte di verità. Il tasso di errore per gli LLM che seguono la stessa procedura degli esseri umani era inferiore al 2%.

FactScore per generare una biografia di Bridget Moynahan. Vedi anche l'articolo originale.

RAGAS

Ora, diamo un’occhiata a alcune metriche per la generazione potenziata dalla ricerca (RAG). Con RAG, si recupera prima il contesto rilevante da una base di conoscenza esterna e poi si chiede all’LLM di rispondere alla domanda basandosi su quei fatti.

RAGAS (Valutazione della generazione potenziata dalla ricerca) [6] è un nuovo framework per valutare le RAG. Non è una singola metrica, ma piuttosto una collezione di metriche. Le tre proposte nell’articolo sono veridicità, rilevanza delle risposte e rilevanza del contesto. Queste metriche illustrano perfettamente come si possa suddividere la valutazione in compiti più semplici per gli LLM.

Veridicità misura quanto le risposte siano radicate nel contesto fornito. È molto simile a FactScore, nel senso che si suddivide prima la generazione nell’insieme delle affermazioni e quindi si chiede all’LLM se l’affermazione è supportata dal contesto dato. Il punteggio corrisponde al numero di affermazioni supportate diviso per il numero totale di affermazioni. Per la veridicità, i ricercatori hanno riscontrato una correlazione molto alta con gli annotatori umani.

Rilevanza delle risposte cerca di catturare l’idea che la risposta affronti effettivamente la domanda. Si comincia chiedendo all’LLM di generare domande basate sulla risposta. Per ogni domanda generata, si può calcolare la similarità (creando una rappresentazione e utilizzando la similarità coseno) tra la domanda generata e la domanda originale. Facendo ciò n volte e facendo la media dei punteggi di similarità, si ottiene il valore finale per la rilevanza delle risposte.

Rilevanza del contesto si riferisce a quanto il contesto fornito sia pertinente. Significa che il contesto fornito contiene solo le informazioni necessarie per rispondere alla domanda. Nel caso ideale, forniamo al LLM le informazioni corrette per rispondere alla domanda e solo quelle. La rilevanza del contesto viene calcolata chiedendo al LLM di estrarre le frasi nel contesto fornito che erano rilevanti per la risposta. Basta quindi dividere il numero di frasi rilevanti per il numero totale di frasi per ottenere il punteggio finale.

Puoi trovare ulteriori metriche e spiegazioni (insieme al repository GitHub open-source) qui.

Il punto chiave è che possiamo trasformare la valutazione in un sottoproblema più piccolo. Invece di chiedere se l’intero testo è supportato dal contesto, chiediamo solo se un piccolo fatto specifico è supportato dal contesto. Invece di dare direttamente un numero per determinare la rilevanza della risposta, chiediamo al LLM di pensare a una domanda per la risposta data.

Conclusioni

Valutare i LLM è un argomento di ricerca estremamente interessante che riceverà sempre più attenzione man mano che sempre più sistemi raggiungono la produzione e vengono applicati in contesti sempre più critici per la sicurezza.

Potremmo anche utilizzare queste metriche per monitorare le prestazioni dei LLM in produzione, per accorgerci se la qualità delle uscite inizia a degradarsi. Soprattutto per le applicazioni con costi elevati in caso di errori, come il settore sanitario, sarà cruciale sviluppare linee guida e sistemi per individuare e ridurre gli errori.

Sebbene ci siano sicuramente dei pregiudizi e dei problemi nell’utilizzare i LLM come valutatori, dovremmo comunque mantenere una mente aperta e affrontarli come un problema di ricerca. Naturalmente, gli esseri umani continueranno comunque a essere coinvolti nel processo di valutazione, ma le metriche automatiche potrebbero aiutare a valutare parzialmente le prestazioni in alcuni contesti.

Queste metriche non devono sempre essere perfette; devono solo funzionare abbastanza bene da guidare lo sviluppo dei prodotti nella giusta direzione.

Un ringraziamento speciale a Daniel Raff e Yevhen Petyak per il loro feedback e suggerimenti.

Pubblicato originariamente su Medplexity substack.

  1. Yang, Chengrun, et al. Large Language Models as Optimizers. arXiv, 6 settembre 2023. arXiv.org, https://doi.org/10.48550/arXiv.2309.03409.
  2. Li, Cheng, et al. Large Language Models Understand and Can Be Enhanced by Emotional Stimuli. arXiv, 5 novembre 2023. arXiv.org, https://doi.org/10.48550/arXiv.2307.11760.
  3. Wang, Peiyi, et al. Large Language Models Are Not Fair Evaluators. arXiv, 30 agosto 2023. arXiv.org, https://doi.org/10.48550/arXiv.2305.17926.
  4. Liu, Yang, et al. G-Eval: NLG Evaluation Using GPT-4 with Better Human Alignment. arXiv, 23 maggio 2023. arXiv.org, https://doi.org/10.48550/arXiv.2303.16634.
  5. Min, Sewon, et al. FActScore: Fine-Grained Atomic Evaluation of Factual Precision in Long Form Text Generation. arXiv, 11 ottobre 2023. arXiv.org, https://doi.org/10.48550/arXiv.2305.14251.
  6. Es, Shahul, et al. RAGAS: Automated Evaluation of Retrieval Augmented Generation. 1, arXiv, 26 settembre 2023. arXiv.org, https://doi.org/10.48550/arXiv.2309.15217.