Consolidare la rotta: orientarsi nella valutazione delle applicazioni basate su LLM |  di Stijn Goossens |  Novembre 2023

 | Intelligenza-Artificiale

Perché è importante valutare le app LLM e come iniziare

Un pirata con un ginocchio ferito chiede consiglio al suo assistente di primo soccorso con sede a LLM. Immagine generata dall’autore con DALL·E 3.

I Large Language Models (LLM) sono di gran moda e molte persone li stanno incorporando nelle loro applicazioni. I chatbot che rispondono a domande sui database relazionali, gli assistenti che aiutano i programmatori a scrivere il codice in modo più efficiente e i copiloti che intraprendono azioni per tuo conto sono alcuni esempi. Le potenti funzionalità dei LLM ti consentono di avviare progetti con un rapido successo iniziale. Tuttavia, quando si passa da un prototipo a un’app LLM matura, diventa essenziale un solido quadro di valutazione. Un tale quadro di valutazione aiuta la tua app LLM a raggiungere prestazioni ottimali e garantisce risultati coerenti e affidabili. In questo post del blog tratteremo:

  1. La differenza tra la valutazione di un’applicazione LLM e un’applicazione basata su LLM
  2. L’importanza della valutazione dell’app LLM
  3. Le sfide della valutazione delle app LLM
  4. Iniziare
    UN. Raccolta dati e creazione di un set di test
    B. Misurazione delle prestazioni
  5. Il quadro di valutazione dell’app LLM

Utilizzando l’esempio immaginario di FirstAidMatey, un assistente di pronto soccorso per pirati, navigheremo attraverso i mari delle tecniche di valutazione, delle sfide e delle strategie. Concluderemo con i punti salienti e gli approfondimenti. Quindi, salpiamo per questo viaggio illuminante!

La valutazione dei singoli Large Language Models (LLM) come GPT-4 di OpenAI, PaLM 2 di Google e Claude di Anthropic viene generalmente eseguita con test di benchmark come MMLU. In questo post del blog, tuttavia, siamo interessati a valutare le applicazioni basate su LLM. Si tratta di applicazioni basate su un LLM e contenenti altri componenti come un framework di orchestrazione che gestisce una sequenza di chiamate LLM. Spesso il Retrieval Augmented Generation (RAG) viene utilizzato per fornire contesto al LLM ed evitare allucinazioni. In breve, RAG richiede che i documenti di contesto siano incorporati in un archivio vettoriale da cui i frammenti rilevanti possono essere recuperati e condivisi con LLM. A differenza di un LLM, un’applicazione basata su LLM (o app LLM) è progettata per eseguire molto bene una o più attività specifiche. Trovare la giusta configurazione spesso comporta qualche sperimentazione e miglioramento iterativo. RAG, ad esempio, può essere implementato in molti modi diversi. Un framework di valutazione, come discusso in questo post del blog, può aiutarti a trovare la configurazione migliore per il tuo caso d’uso.

Un LLM diventa ancora più potente se utilizzato nel contesto di un’applicazione basata su LLM.

FirstAidMatey è un’applicazione basata su LLM che aiuta i pirati con domande come “La mia mano è rimasta intrappolata nelle corde e ora è gonfia, cosa dovrei fare, amico?”. Nella sua forma più semplice, l’orchestrator è costituito da un singolo prompt che invia la domanda dell’utente a LLM e gli chiede di fornire risposte utili. Può anche istruire il LLM a rispondere in Pirate Lingo per una comprensione ottimale. Come estensione, potrebbe essere aggiunto un archivio vettoriale con documentazione di pronto soccorso incorporata. In base alla domanda dell’utente, la documentazione pertinente può essere recuperata e inclusa nel prompt, in modo che LLM possa fornire risposte più accurate.

Prima di entrare nel dettaglio, vediamo perché dovresti impostare un sistema per valutare la tua applicazione basata su LLM. Gli obiettivi principali sono tre:

  • Consistenza: Garantisci risultati dell’app LLM stabili e affidabili in tutti gli scenari e scopri le regressioni quando si verificano. Ad esempio, quando migliori le prestazioni dell’app LLM in uno scenario specifico, vuoi essere avvisato nel caso in cui comprometta le prestazioni in un altro scenario. Quando utilizzi modelli proprietari come GPT-4 di OpenAI, sei soggetto anche al loro programma di aggiornamento. Man mano che vengono rilasciate nuove versioni, la versione corrente potrebbe essere obsoleta nel tempo. La ricerca lo dimostra il passaggio a una versione GPT più recente non è sempre positivo. Pertanto, è importante essere in grado di valutare in che modo questa nuova versione influisce sulle prestazioni della tua app LLM.
  • Approfondimenti: capire dove l’app LLM funziona bene e dove c’è spazio per miglioramenti.
  • Analisi comparativa: stabilisci standard di prestazione per l’app LLM, misura l’effetto degli esperimenti e rilascia nuove versioni con sicurezza.

Di conseguenza, otterrai i seguenti risultati:

  • Guadagno fiducia e soddisfazione degli utenti perché la tua app LLM funzionerà in modo coerente.
  • Aumentare la fiducia delle parti interessate perché puoi mostrare le prestazioni dell’app LLM e come le nuove versioni migliorano rispetto a quelle precedenti.
  • Aumenta il tuo vantaggio competitivo poiché puoi iterare rapidamente, apportare miglioramenti e distribuire con sicurezza nuove versioni.

Dopo aver letto i vantaggi di cui sopra, è chiaro perché l’adozione di un’applicazione basata su LLM può essere vantaggiosa. Ma prima di poterlo fare, dobbiamo risolvere quanto segue due sfide principali:

  • Mancanza di dati etichettati: A differenza delle tradizionali applicazioni di machine learning, quelle basate su LLM non necessitano di dati etichettati per essere avviate. Gli LLM possono svolgere molte attività (come la classificazione del testo, il riepilogo, la generazione e altro) immediatamente, senza dover mostrare esempi specifici. Questo è fantastico perché non dobbiamo aspettare dati ed etichette, ma d’altra parte significa anche che non abbiamo dati per verificare le prestazioni dell’applicazione.
  • Più risposte valide: In un’app LLM, lo stesso input può spesso avere più di una risposta giusta. Ad esempio, un chatbot potrebbe fornire varie risposte con significati simili oppure potrebbe essere generato codice con funzionalità identiche ma strutture diverse.

Per affrontare queste sfide, dobbiamo definire dati e parametri appropriati. Lo faremo nella prossima sezione.

Raccolta dati e creazione di un set di test

Per valutare un’applicazione basata su LLM, utilizziamo un set di test composto da casi di test, ciascuno con input e obiettivi specifici. Ciò che contengono dipende dallo scopo dell’applicazione. Ad esempio, un’applicazione di generazione di codice si aspetta istruzioni verbali come codice di input e di output in cambio. Durante la valutazione gli input verranno forniti all’app LLM e l’output generato potrà essere confrontato con l’obiettivo di riferimento. Ecco alcuni casi di test per FirstAidMatey:

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *