Valutazione end-to-end del modello linguistico di grandi dimensioni
In questa fase si valuta la soluzione Retrieval-Augmented Generation (RAG) esaminando le richieste utente previste che contengono i dati di base recuperati rispetto al modello linguistico. Prima di raggiungere questa fase, è necessario completare le fasi precedenti. È necessario raccogliere i documenti e le query di test, suddividere i documenti di test, arricchire i blocchi, incorporare i blocchi, creare un indice di ricerca e implementare una strategia di ricerca. È quindi necessario valutare ognuna di queste fasi e assicurarsi che i risultati soddisfino le aspettative. A questo punto, è necessario assicurarsi che la soluzione restituisca dati di base pertinenti per una query utente.
Questi dati di base costituisce il contesto per la richiesta inviata al modello linguistico per risolvere la query dell'utente. Le strategie di ingegneria del prompt non rientrano nell'ambito di questo articolo. Questo articolo illustra la valutazione della chiamata progettata al modello linguistico dal punto di vista dei dati di base. Questo articolo illustra le metriche di valutazione del modello linguistico comuni e metriche di somiglianza e valutazione specifiche che è possibile usare nei calcoli di valutazione del modello o come metriche autonome.
Questo articolo non tenta di fornire un elenco completo di metriche del modello linguistico o metriche di somiglianza e valutazione. L'importante da portare via da questo articolo è che ci sono diverse metriche, ognuna con casi d'uso distinti. Solo tu hai una comprensione olistica del tuo carico di lavoro. L'utente e i data scientist devono determinare cosa si vuole misurare e quali metriche sono appropriate.
Questo articolo fa parte di una serie. Leggere prima l'introduzione .
Metriche di valutazione del modello linguistico
Esistono diverse metriche che è consigliabile usare per valutare la risposta del modello linguistico, tra cui aderenza, completezza, utilizzo, pertinenza e correttezza. Poiché l'obiettivo generale del modello RAG è fornire dati pertinenti come contesto a un modello linguistico quando si genera una risposta, idealmente, ognuna delle metriche precedenti dovrebbe assegnare punteggi elevati. Tuttavia, a seconda del carico di lavoro, potrebbe essere necessario assegnare una priorità rispetto all'altra.
Importante
Le risposte del modello linguistico non sono deterministiche, il che significa che la stessa richiesta a un modello linguistico spesso restituisce risultati diversi. Questo concetto è importante per comprendere quando si usa un modello linguistico come parte del processo di valutazione. È consigliabile usare un intervallo di destinazione anziché una singola destinazione quando si valuta l'uso del modello linguistico.
Essere ben radicati
Radicamento, talvolta indicato come fedeltà , valuta se la risposta è basata completamente sul contesto. Verifica che la risposta non usi informazioni diverse da quelle presenti nel contesto. Una metrica di basso ancoraggio indica che il modello linguistico potrebbe fornire risposte imprecise o prive di senso.
Calcolare il radicamento
Usare i metodi seguenti per calcolare la base delle risposte:
- Groundedness basata sulla Sicurezza dei Contenuti di Azure AI è un modello personalizzato che usa l'inferenza del linguaggio naturale per determinare se le attestazioni, o in questo caso i blocchi, si basano sul contesto del documento originale.
- Radicamento basato su modelli linguistici di grandi dimensioni usa un modello linguistico per determinare il livello di radicamento della risposta.
- libreria della fedeltà di Ragas.
- Calcolo della fedeltà di MLflow.
Valutare la fondatezza
Un calcolo di bassa rilevanza indica che il modello linguistico non visualizza i segmenti come pertinenti. È necessario valutare se è necessario aggiungere dati alla raccolta, modificare la strategia di suddivisione in blocchi o le dimensioni dei blocchi o ottimizzare il prompt.
Completezza
Completeness misura se la risposta risponde a tutte le parti della domanda. Completezza consente di comprendere se le sezioni nel contesto sono pertinenti, direttamente correlate alla query e forniscono una risposta completa.
Calcolare la completezza
Usare i metodi seguenti per calcolare la completezza delle risposte:
- suggerimento di punteggio di recupero assistito dall'intelligenza artificiale.
- Un modello linguistico consente di misurare la qualità della risposta del modello linguistico. Per eseguire questa misurazione, è necessaria la domanda, il contesto e la risposta generata. I passaggi seguenti descrivono il processo generale:
- Usare il modello linguistico per riformulare, riepilogare o semplificare la domanda. Questo passaggio identifica la finalità.
- Chiedere al modello di verificare se la finalità o la risposta alla finalità viene trovata in o può essere derivata dai documenti recuperati. La risposta può essere "sì" o "no" per ogni documento. Le risposte che iniziano con "sì" indicano che i documenti recuperati sono rilevanti per la finalità o la risposta alla finalità.
- Calcolare il rapporto delle finalità che hanno una risposta che inizia con "sì".
- Quadrato del punteggio per evidenziare gli errori.
Valutare la completezza
Se la completezza è bassa, iniziare a lavorare per aumentarla valutando il modello di incorporamento. Confronta il vocabolario nel tuo contenuto con il vocabolario nel tuo modello di embedding. Determinare se è necessario un modello di incorporamento specifico del dominio o se è necessario ottimizzare un modello esistente. Il passaggio successivo consiste nel valutare la strategia di suddivisione in blocchi. Se si usa la suddivisione in blocchi a dimensione fissa, è consigliabile aumentare le dimensioni del blocco. È anche possibile valutare se i dati di test hanno dati sufficienti per risolvere completamente la domanda.
Utilizzo
Utilizzo valuta il livello in cui la risposta è costituita da informazioni dai frammenti nel contesto. L'obiettivo è determinare la misura in cui ogni blocco fa parte della risposta. Un utilizzo ridotto indica che i risultati potrebbero non essere rilevanti per la query. È consigliabile valutare l'utilizzo insieme alla completezza.
Calcolare l'utilizzo
Usare un modello linguistico per calcolare l'utilizzo. È possibile passare la risposta e il contesto che contiene i blocchi al modello linguistico. È possibile chiedere al modello linguistico di determinare il numero di blocchi che comportano la risposta.
Valutare l'utilizzo
La tabella seguente fornisce indicazioni su come valutare la completezza e l'utilizzo.
Pertinenza
Pertinenza valuta il grado in cui la risposta del modello linguistico è adeguata e correlata alla query.
Calcolare la pertinenza
Usare i metodi seguenti per calcolare la pertinenza delle risposte:
- Intelligenza Artificiale Assistita: Rilevanza in Azure AI Foundry
- Libreria di rilevanza delle risposte
- calcolo della pertinenza di MLflow
Nota
È possibile usare il portale di Azure AI Foundry per eseguire i calcoli o usare le indicazioni contenute in questo articolo per calcolare manualmente la pertinenza.
Valutare la pertinenza
Quando la pertinenza è bassa, eseguire le attività seguenti:
- Assicurarsi che i blocchi forniti al modello linguistico siano pertinenti.
- Determinare se eventuali blocchi rilevanti e validi non vengono restituiti. Se si individuano questi blocchi, valutare il modello di incorporamento.
- Se non sono presenti blocchi validi, verificare se esistono dati rilevanti. In caso affermativo, valutare la strategia di suddivisione in blocchi.
- Se vengono restituiti blocchi pertinenti, valuta il prompt.
I punteggi che metodi di valutazione come completezza output dovrebbero produrre risultati simili a quelli del punteggio di pertinenza.
Correttezza
correttezza misura il grado in cui la risposta è accurata e fattuale.
Calcolare l'accuratezza
Esistono diversi modi per valutare la correttezza, tra cui:
- Modello linguistico: usare un modello linguistico per calcolare la correttezza. È possibile passare la risposta al modello linguistico, idealmente un modello linguistico diverso da quello usato per generare il risultato. È possibile chiedere al modello linguistico di determinare se la risposta è effettiva o meno.
- origine attendibile esterna: usare un'origine attendibile esterna per convalidare la correttezza della risposta. A seconda dell'API dell'origine attendibile, è possibile usare l'origine attendibile da sola o con un modello linguistico.
Valutare la correttezza
Quando la correttezza è bassa, eseguire le attività seguenti:
- Assicurarsi che i blocchi forniti al modello linguistico siano effettivamente corretti e che non esista alcuna distorsione dei dati. Potrebbe essere necessario correggere eventuali problemi nei documenti o nel contenuto di origine.
- Se i blocchi sono effettivamente corretti, valuta il tuo invito.
- Valutare se nel modello sono presenti errori di ereditarietà che devono essere superati con dati di base aggiuntivi o l'ottimizzazione.
Metriche di somiglianza e valutazione
Esistono centinaia di metriche di somiglianza e valutazione che è possibile usare nell'analisi scientifica dei dati. Alcuni algoritmi sono specifici di un dominio, ad esempio la conversione da voce a testo o la traduzione da lingua a lingua. Ogni algoritmo ha una strategia univoca per calcolare la metrica.
I data scientist determinano cosa si vuole misurare e quale metrica o combinazione di metriche è possibile usare per misurarla. Ad esempio, per la traduzione linguistica, la metrica di valutazione bilingue (BLEU) controlla il numero di n-grammi presenti sia nella traduzione automatica che nella traduzione umana per misurare la somiglianza in base all'uso delle stesse parole nelle traduzioni. La similitudine del coseno utilizza incorporazioni tra le traduzioni automatiche e quelle umane per misurare la somiglianza semantica. Se l'obiettivo è avere una somiglianza semantica elevata e usare parole simili alla traduzione umana, è necessario ottenere un punteggio BLEU elevato con alta somiglianza coseno. Se ti interessa solo la somiglianza semantica, concentrati sulla somiglianza del coseno.
L'elenco seguente contiene un esempio di metriche comuni di somiglianza e valutazione. Si noti che le metriche di somiglianza elencate sono descritte come basate su token, basate su sequenza o basate su modifica. Queste descrizioni illustrano l'approccio usato dalle metriche per calcolare la somiglianza. L'elenco contiene anche tre algoritmi per valutare la qualità della traduzione testuale da una lingua a un'altra.
- Sottostringa comune più lunga è un algoritmo basato su sequenza che trova la sottostringa comune più lunga tra due stringhe. La percentuale della sottostringa comune più lunga si calcola prendendo la sottostringa più lunga e dividendola per il numero di caratteri della stringa di input più piccola o più grande.
- la sottosequenza comune più lunga (LCS) è un algoritmo basato su sequenza che trova la sottosequenza più lunga tra due stringhe. LCS non richiede che le sottosequenze siano in ordine consecutivo.
- somiglianza del coseno è un algoritmo basato su token che calcola il coseno dell'angolo tra i due vettori.
- Jaro-Winkler distanza è un algoritmo basato su modifica che conta il numero minimo di passaggi per trasformare una stringa in un'altra.
- distanza Hamming è un algoritmo basato sull'edit che misura il numero minimo di sostituzioni necessarie per trasformare una stringa in un'altra.
- indice Jaccard è un algoritmo basato su token che calcola la somiglianza dividendo l'intersezione di due stringhe per l'unione di tali stringhe.
- distanza Levenshtein è un algoritmo basato sulle modifiche che calcola la somiglianza determinandone il numero minimo di modifiche di singoli caratteri necessarie per trasformare una stringa in un'altra.
- BLEU valuta la qualità del testo risultante dalla traduzione automatica da una lingua a un'altra. BLEU calcola la sovrapposizione di n-grammi tra una traduzione automatica e una traduzione di qualità umana per eseguire questa valutazione.
- ROUGE è una metrica che confronta una traduzione automatica di una lingua con un'altra con una traduzione creata dall'utente. Esistono diverse varianti di ROUGE che utilizzano la sovrapposizione di n-grammi, bigrammi con salti, o la sottosequenza comune più lunga.
- METEOR valuta la qualità del testo risultante dalla traduzione automatica esaminando corrispondenze esatte, corrispondenze dopo stemming, sinonimi, parafrasazioni e allineamento.
Per altre informazioni sulle metriche comuni di somiglianza e valutazione, vedere le risorse seguenti:
Uso di più metriche di valutazione insieme
È consigliabile usare le metriche di valutazione del modello linguistico insieme per comprendere meglio le prestazioni della soluzione RAG. Di seguito sono riportati diversi esempi di uso di più metriche di valutazione.
Concretezza e correttezza
Le metriche di groundedness e correttezza insieme consentono di determinare se il sistema interpreta e usa il contesto in modo accurato. Se la base è elevata ma la correttezza è bassa, significa che il modello linguistico usa il contesto ma fornisce una risposta errata. La risposta errata potrebbe essere dovuta a un uso improprio del contesto o a problemi con i dati di origine. Ad esempio, se l'aderenza è 0,9 ma la correttezza è 0,4, indica che il sistema fa riferimento al materiale di origine corretto, ma trae conclusioni errate. Si consideri una risposta che indica "Einstein ha sviluppato la meccanica quantistica" in base a un contesto che menziona separatamente sia Einstein che la meccanica quantistica. Questa risposta è basata ma in realtà errata.
Questa combinazione di metriche è una delle posizioni in cui la priorità di uno rispetto all'altra potrebbe essere molto importante per il carico di lavoro specifico. Ad esempio, se i dati di origine contengono informazioni potenzialmente false in base alla progettazione e potrebbe essere fondamentale per il sistema conservare tali informazioni false nelle relative risposte. In tal caso è meglio dare priorità a una risposta ponderata rispetto a una risposta corretta. In altri casi, sarebbe preferibile che il carico di lavoro consultasse i dati di contesto, ma comunque la correttezza finale rimane la priorità.
Utilizzo e completezza
Le metriche di utilizzo e completezza insieme consentono di valutare l'efficacia del sistema di recupero. L'utilizzo elevato (0,9) con completezza bassa (0,3) indica che il sistema recupera informazioni accurate ma incomplete. Ad esempio, quando viene chiesto delle cause della seconda guerra mondiale, il sistema potrebbe recuperare perfettamente informazioni sull'invasione della Polonia, ma perdere altri fattori cruciali. Questo scenario può indicare che sono presenti blocchi con informazioni rilevanti che non sono state usate come parte del contesto. Per affrontare questo scenario, prendere in considerazione la restituzione di più blocchi, esaminare la strategia di classificazione dei blocchi e esaminare il prompt.
Fondamento, utilizzo e somiglianza
Le metriche di base, utilizzo e somiglianza consentono di identificare in che modo il sistema mantiene la verità durante la trasformazione delle informazioni. L'elevata fondamentazione (0,9) e l'utilizzo (0,9) con bassa somiglianza (0,3) indicano che il sistema sta utilizzando dati di riferimento accurati, ma sta parafrasando male. Per risolvere questo scenario, valutare la richiesta. Modificare la richiesta e testare i risultati.
Documentazione, creazione di report e aggregazione
È consigliabile documentare gli iperparametri scelti per un esperimento e le metriche di valutazione risultanti, in modo da comprendere in che modo gli iperparametri influiscono sui risultati. È consigliabile documentare gli iperparametri e i risultati a livelli granulari, ad esempio l'incorporamento o la valutazione della ricerca, e a livello di macro, come il test dell'intero sistema end-to-end.
Durante la progettazione e lo sviluppo, è possibile tenere traccia degli iperparametri e dei risultati manualmente. Tuttavia, l'esecuzione di più valutazioni rispetto all'intero documento di test e alla raccolta di query di test potrebbe comportare centinaia di esecuzioni di valutazione e migliaia di risultati. È consigliabile automatizzare la persistenza dei parametri e dei risultati per le valutazioni.
Dopo aver salvato gli iperparametri e i risultati, è consigliabile creare grafici e diagrammi per visualizzare il modo in cui gli iperparametri influiscono sulle metriche. La visualizzazione consente di identificare le scelte che portano a cali o picchi di prestazioni.
È importante comprendere che la progettazione e la valutazione della soluzione RAG non è un'operazione una tantum. La raccolta di documenti cambia nel tempo. Le domande che i tuoi clienti pongono cambiano nel tempo e la tua comprensione dei tipi di domande si evolve man mano che impari dalla produzione. È consigliabile rivedere nuovamente questo processo e riprovare. La gestione della documentazione delle valutazioni precedenti è fondamentale per le attività future di progettazione e valutazione.
Acceleratore dell'esperimento RAG
Questi articoli illustrano tutte le fasi e le scelte di progettazione coinvolte nella progettazione e nella valutazione di una soluzione RAG. Gli articoli sono incentrati sulle operazioni da eseguire, non su come farlo. Un team di progettazione che collabora con i principali clienti Microsoft ha sviluppato uno strumento denominato RAG Experiment Accelerator. Rag Experiment Accelerator è un framework di sperimentazione all'avanguardia. È stato progettato per ottimizzare e migliorare lo sviluppo di soluzioni RAG. Rag Experiment Accelerator consente a ricercatori e sviluppatori di esplorare e ottimizzare in modo efficiente i componenti critici che determinano le prestazioni rag. Questa innovazione in definitiva comporta una generazione di testo più accurata e coerente.
L'acceleratore di esperimenti RAG usa un'interfaccia della riga di comando, quindi è possibile sperimentare facilmente vari modelli di incorporamento, perfezionare le strategie di suddivisione in blocchi e valutare diversi approcci di ricerca per sbloccare il potenziale completo del sistema RAG. Consente di concentrarsi sugli aspetti principali dello sviluppo rag usando una semplice configurazione per l'ottimizzazione degli iperparametri.
Il framework offre anche supporto completo per la configurazione del modello linguistico. Questo supporto consente di trovare un equilibrio perfetto tra complessità del modello e qualità della generazione. Questo strumento consente di semplificare il processo di sperimentazione, risparmiare tempo e migliorare significativamente le prestazioni dei modelli RAG.
Rag con Vision Application Framework
Gran parte delle indicazioni contenute in questo articolo sull'uso dei media nella soluzione RAG proviene da un altro team di ingegneria che collabora con i principali clienti di Microsoft. Questo team ha scritto un framework denominato RAG con il Vision Application Framework. Questo framework fornisce una pipeline RAG basata su Python che elabora sia il contenuto testuale che quello dell'immagine dai documenti MHTML.
Il framework carica, suddivide e arricchisce testo e immagini da file MHTML. Inserisce quindi i blocchi in Ricerca di intelligenza artificiale di Azure. Il framework implementa la memorizzazione nella cache per l'arricchimento delle immagini per l'elaborazione e l'efficienza dei costi. Il framework incorpora anche la valutazione come parte della pipeline.
Contributori
Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai collaboratori seguenti.
- Raouf Aliouat | Ingegnere del software II
- Rob Bagby | Responsabile capo dei contenuti del Centro per l'Architettura
- Paul Butler | Ingegnere del Software
- Prabal Deb | Ingegnere Software Principale
- Hadri Soubhi | Senior Data Scientist
- Ritesh Modi | Ingegnere principale
- Ryan Pfalz | Responsabile Senior del Programma Tecnico
- Mahdi Setayesh | Ingegnere Software Principale
- Randy Thurman | Architetto Principale di Soluzioni Cloud AI