La ricerca della Fudan University esplora l'implementazione ottimale delle tecniche RAG (Retrieval-Augmented Generation) per migliorare la qualità delle risposte dei modelli linguistici. Le tecniche RAG combinano il recupero di informazioni rilevanti e la generazione di testo, aggiornando costantemente i modelli linguistici e riducendo le allucinazioni. Questo approccio è particolarmente utile per applicazioni aziendali, migliorando l'accuratezza e la pertinenza delle risposte fornite ai clienti, integrando informazioni aggiornate e ottimizzando i processi interni.
La ricerca, condotta da Xiaohua Wang, Zhenghua Wang, Xuan Gao, Feiran Zhang, Yixin Wu, Zhibo Xu, Tianyuan Shi, Zhengyuan Wang, Shizheng Li, Qi Qian, Ruicheng Yin, Changze Lv, Xiaoqing Zheng e Xuanjing Huang della School of Computer Science presso l'Università di Fudan a Shanghai, Cina, ha esplorato le pratiche ottimali per l'implementazione delle tecniche di generazione aumentata dal recupero (Retrieval Augmented Generation, RAG). Questa tecnologia si è dimostrata efficace nell'integrare informazioni aggiornate, ridurre le allucinazioni (ovvero, errori o informazioni non verificate generate dai modelli) e migliorare la qualità delle risposte, soprattutto in ambiti specializzati.
Le tecniche di Recupero e Generazione (RAG) rappresentano un'innovativa metodologia che combina due processi distinti ma complementari: il recupero delle informazioni e la generazione del testo. Il recupero delle informazioni (retrieval) implica la ricerca e l'estrazione di dati rilevanti da una vasta base di conoscenze, spesso utilizzando motori di ricerca specializzati o database strutturati. La generazione (generation), invece, si occupa della produzione di testi coerenti e informativi basati sui dati recuperati, utilizzando modelli linguistici avanzati come GPT (Generative Pre-trained Transformer).
Questa sinergia tra recupero e generazione è particolarmente vantaggiosa per mantenere i modelli linguistici costantemente aggiornati, migliorando così la precisione e la pertinenza delle risposte fornite. Ad esempio, nel contesto delle ricerche accademiche o delle applicazioni aziendali, un sistema RAG può accedere a pubblicazioni recenti o report di settore, integrando queste informazioni nelle risposte generate per fornire dati aggiornati e contestualmente rilevanti.
Tuttavia, la realizzazione pratica di questi sistemi non è priva di sfide. Molti approcci proposti per migliorare i modelli linguistici attraverso recuperi dipendenti dalle query presentano ancora una complessa implementazione e tempi di risposta prolungati. Un tipico flusso di lavoro RAG comprende più fasi di elaborazione, come la selezione delle fonti, il filtraggio delle informazioni recuperate e la generazione del testo finale. Ogni fase può essere implementata in vari modi, influenzando l'efficienza complessiva del sistema.
La ricerca sulle tecniche RAG ha esplorato diverse combinazioni di questi approcci per individuare le pratiche migliori. Attraverso vari esperimenti, sono state proposte strategie per implementare RAG che equilibriano prestazioni ed efficienza. Ad esempio, l'uso di modelli già addestrati su ampi insiemi di dati può diminuire i tempi di elaborazione, mentre l'integrazione di meccanismi di feedback continuo può migliorare la qualità delle risposte generate. Inoltre, tecniche come l'ottimizzazione dei modelli linguistici con dati specifici del settore possono aumentare la pertinenza delle informazioni fornite. È stato anche dimostrato che le tecniche di recupero multimodale, che combinano diversi tipi di dati come testo e immagini, possono migliorare significativamente le capacità di risposta a domande basate su input visivi e velocizzare la creazione di contenuti multimodali utilizzando una strategia chiamata "recupero come generazione".
Le risorse relative a questa ricerca sono disponibili su https://github.com/FudanDNN-NLP/RAG.
Utilizzo delle tecniche RAG (Retrieval Augmented Generation) in azienda
Immaginiamo un'azienda che produce beni di consumo e che vuole migliorare il servizio clienti integrando un sistema di intelligenza artificiale avanzato. Questo sistema dovrebbe essere in grado di rispondere in modo accurato e tempestivo alle domande dei clienti riguardanti i prodotti, le politiche di reso, la disponibilità degli articoli, ecc.
1. Implementazione di un LLM (Large Language Model):
La prima fase consiste nell'implementare un modello linguistico pre-addestrato (LLM) come GPT-4. Questo modello è in grado di comprendere e generare testo in linguaggio naturale, ma ha bisogno di essere costantemente aggiornato con le informazioni più recenti per rispondere in modo accurato e pertinente.
2. Integrazione con un sistema di recupero e generazione (RAG):
Per migliorare la precisione e la pertinenza delle risposte, l'azienda decide di integrare un sistema RAG. Il sistema RAG inizia con il recupero delle informazioni rilevanti dai database interni dell'azienda (come il catalogo prodotti, le FAQ, i manuali d'uso, ecc.) e da fonti esterne affidabili (come recensioni di prodotti, notizie di settore, ecc.).
3. Processo di recupero:
Quando un cliente pone una domanda, il sistema RAG utilizza tecniche avanzate di retrieval per cercare e recuperare le informazioni più rilevanti dai database disponibili. Ad esempio, se un cliente chiede informazioni su un particolare prodotto, il sistema recupera i dettagli del prodotto, recensioni recenti e informazioni sulla disponibilità in magazzino.
4. Processo di generazione:
Successivamente, il sistema utilizza le informazioni recuperate per generare una risposta coerente e informativa. Il modello linguistico pre-addestrato (come GPT-4) elabora i dati e crea un testo che risponde in modo naturale e comprensibile alla domanda del cliente.
5. Feedback e miglioramento continuo:
Il sistema raccoglie feedback sulle risposte fornite per migliorare continuamente la qualità delle informazioni generate. Ad esempio, se il cliente ritiene che la risposta non sia stata utile, il feedback viene utilizzato per affinare il modello e migliorare le future risposte.
6. Esempio pratico di utilizzo:
Un cliente interessato all'acquisto di un nuovo frullatore interagisce con il sistema di chat automatico sul sito web dell'azienda, chiedendo se il modello KTX di frullatore, noto per le buone recensioni, è disponibile anche con funzionalità aggiuntive per impasti. In questa situazione, il sistema di Recupero e Generazione (RAG) entra in azione per fornire una risposta dettagliata e personalizzata.
Il sistema utilizza algoritmi di ricerca avanzati per raccogliere dati dal database interno. Questi algoritmi esaminano non solo la disponibilità del modello KTX, ma anche le specifiche tecniche per identificare se include o è compatibile con accessori per impasti. Dopo aver recuperato le informazioni, inclusi i feedback di altri clienti su accessori compatibili, il sistema elabora i dati per creare una risposta completa. Utilizzando un tono amichevole e informativo, il sistema risponde che il modello KTX è molto apprezzato per la sua efficacia e versatilità. Inoltre, esso è compatibile con l'accessorio "Mix-Blade", ottimo per preparare impasti leggeri e pastelle. Questo accessorio è venduto separatamente e attualmente disponibile nel catalogo online.
Per arricchire l'esperienza del cliente, il sistema offre ulteriori opzioni, come aiutare a completare l'ordine sia per il frullatore KTX che per l'accessorio "Mix-Blade" direttamente attraverso la chat. In alternativa, il sistema può inviare i link diretti ai prodotti nel sito o organizzare una consulenza telefonica con uno specialista per discutere ulteriormente delle esigenze del cliente.
In questo modo, il sistema RAG risponde efficacemente alle domande del cliente e anticipa anche eventuali esigenze aggiuntive, migliorando l'esperienza d'acquisto e aumentando la soddisfazione del cliente attraverso interazioni personalizzate e informazioni utili.
In questo modo, l'integrazione di tecniche RAG permette all'azienda di fornire un servizio clienti altamente efficiente e accurato, migliorando la soddisfazione del cliente e ottimizzando i processi interni.
Approfondimento delle tecniche RAG (Retrieval Augmented Generation)
I modelli di linguaggio generativo di grandi dimensioni possono generare informazioni superate o inventare contenuti che sembrano credibili ma sono completamente o parzialmente falsi. Questo accade anche se tali modelli sono stati adattati alle preferenze umane attraverso tecniche di apprendimento, come l'apprendimento per rinforzo. Per affrontare questi problemi, esistono tecniche chiamate "generazione aumentata dal recupero" (RAG), che combinano i vantaggi dei modelli pre-addestrati con quelli basati sul recupero delle informazioni. Questo approccio crea un sistema robusto che migliora le prestazioni dei modelli linguistici. Inoltre, RAG consente di creare velocemente applicazioni per organizzazioni e settori specifici senza dover modificare i parametri del modello, purché siano forniti documenti rilevanti per il compito richiesto.
Sono stati proposti diversi metodi RAG per migliorare i modelli di linguaggio di grandi dimensioni utilizzando recuperi basati sulle domande specifiche degli utenti. Un tipico processo RAG include vari passaggi: classificare le domande per capire se è necessario cercare informazioni aggiuntive, recuperare i documenti rilevanti, riordinare questi documenti in base alla loro importanza per la domanda, organizzare i documenti in modo strutturato per una migliore comprensione e, infine, sintetizzare le informazioni chiave eliminando quelle ridondanti.
L'implementazione di RAG richiede anche decisioni su come suddividere correttamente i documenti, quali tipi di rappresentazioni utilizzare per le diverse parti dei documenti, quale database utilizzare per memorizzare efficacemente queste rappresentazioni e quali metodi utilizzare per migliorare i modelli di linguaggio.
Ogni fase del processo può essere realizzata in modi diversi. Ad esempio, per trovare i documenti rilevanti, si possono riscrivere le domande prima di effettuare la ricerca, oppure generare risposte simulate e confrontarle con i documenti disponibili. Un altro approccio è utilizzare modelli di embedding, che sono migliorati confrontando coppie di domande e risposte corrette e non corrette. Le tecniche scelte per ciascun passaggio e le loro combinazioni influenzano notevolmente l'efficacia e l'efficienza dei sistemi RAG. Finora non è stato fatto uno sforzo sistematico per trovare l'implementazione ottimale di RAG per l'intero processo.
Lo studio dell'Università di Fudan a Shanghai mira a identificare le migliori pratiche per RAG attraverso esperimenti dettagliati. Tuttavia, a causa dell'impossibilità di testare tutte le combinazioni possibili di questi metodi, viene adottato un approccio in tre fasi per individuare le pratiche ottimali. Inizialmente, vengono confrontati i metodi rappresentativi per ciascun passaggio (o modulo) di RAG e selezionati fino a tre dei migliori. Successivamente, l'impatto di ciascun metodo sulle prestazioni complessive di RAG viene valutato testando un metodo alla volta per un passaggio specifico, mantenendo invariati gli altri moduli RAG. Questo permette di determinare il metodo più efficace per ciascun passaggio in base al suo contributo e alla sua interazione con gli altri moduli durante la generazione delle risposte. Una volta scelto il miglior metodo per un modulo, viene utilizzato negli esperimenti successivi. Infine, vengono esplorate empiricamente alcune combinazioni promettenti adatte a diversi scenari applicativi, in cui l'efficienza potrebbe essere prioritaria rispetto alle prestazioni, o viceversa. Sulla base di questi risultati, vengono suggerite diverse strategie per implementare RAG che bilancino sia le prestazioni che l'efficienza.
RAG Workflow
Non tutte le richieste necessitano di un miglioramento tramite il recupero di informazioni, grazie alle capacità intrinseche dei modelli di linguaggio. Sebbene il RAG possa aumentare l'accuratezza delle informazioni e ridurre le allucinazioni, un recupero frequente può allungare i tempi di risposta. Per questo motivo, si inizia classificando le richieste per determinare se è necessario il recupero. Le richieste che necessitano di recupero passano attraverso i moduli RAG, mentre le altre vengono gestite direttamente dai LLM.
Il recupero è generalmente consigliato quando è necessario avere informazioni che vanno oltre i parametri del modello. Tuttavia, la necessità di recupero varia in base al compito. Ad esempio, un LLM addestrato fino al 2023 può gestire una richiesta di traduzione come "Sora è stata sviluppata da OpenAI" senza bisogno di recupero. Invece, una richiesta di introduzione sullo stesso argomento richiederebbe recupero per fornire informazioni pertinenti.
Si suggerisce quindi di classificare i compiti per tipo, al fine di determinare se una richiesta necessiti di recupero. Le attività vengono categorizzate in base alla sufficienza delle informazioni fornite dall'utente. Per i compiti che si basano interamente sulle informazioni date dall'utente, vengono indicati come "sufficienti" e non necessitano di recupero; altrimenti, vengono indicati come "insufficienti" e il recupero potrebbe essere necessario.
Segmentazione dei documenti per il miglioramento del recupero informazioni
La segmentazione dei documenti è una tecnica utilizzata per dividere testi lunghi in parti più gestibili, migliorando così la precisione nel trovare le informazioni richieste. Questa tecnica è particolarmente utile quando si lavora con modelli di linguaggio di grandi dimensioni, aiutando a evitare problemi legati alla lunghezza dei testi.
Il primo livello di segmentazione è quello dei token, che suddivide il testo in singole unità di parole o simboli. Questo metodo è semplice ma può spezzare frasi a metà, causando interruzioni di senso e riducendo la qualità del recupero delle informazioni.
Un secondo livello è la segmentazione in frasi, che divide il testo in frasi complete mantenendo il significato logico e contestuale. Questo metodo offre un buon equilibrio tra semplicità e conservazione del contesto, rendendo più facile la gestione del testo.
Il livello più avanzato è quello semantico, che utilizza modelli di linguaggio avanzati per determinare dove dividere il testo, cercando di preservare il contesto completo. Questo metodo è il più accurato ma anche il più complesso e lento da applicare.
Nello studio condotto dall'Università di Fudan, è stata adottata la segmentazione a livello di frasi, trovando un buon compromesso tra facilità di implementazione e integrità del significato. Sono state analizzate varie metriche di valutazione per testare l'efficacia di questo metodo, utilizzando diversi modelli di linguaggio.
Ad esempio, il "Mean Reciprocal Rank" (MRR) misura la posizione media del primo risultato rilevante trovato, con valori più alti che indicano una migliore capacità del modello di posizionare i risultati pertinenti in cima alla lista. Un'altra metrica è il "Recall" (R), che indica la percentuale di documenti rilevanti effettivamente recuperati dal sistema rispetto al totale disponibile, misurata a diversi livelli di profondità (come R@10, che considera i primi 10 documenti recuperati).
I risultati variano a seconda del modello utilizzato, ma illustrano chiaramente come differenti approcci alla segmentazione e ai modelli di linguaggio possano influenzare significativamente l'efficacia del recupero delle informazioni. Queste metriche aiutano a capire quali modelli funzionano meglio in specifiche configurazioni di segmentazione.
Dimensione dei Blocchi di Testo
La dimensione dei blocchi di testo è un fattore chiave che influisce sulle prestazioni di un modello di linguaggio. Utilizzare blocchi di testo più grandi consente di avere un contesto più ampio, migliorando così la comprensione del testo. Tuttavia, questo approccio richiede più tempo per l'elaborazione delle informazioni. D'altra parte, l'uso di blocchi più piccoli rende più veloce il recupero delle informazioni e riduce i tempi di elaborazione, ma può compromettere la completezza del contesto fornito.
Per stabilire la dimensione ottimale dei blocchi è necessario trovare un equilibrio tra due aspetti importanti: la fedeltà e la rilevanza. La fedeltà si riferisce alla precisione delle risposte fornite dal modello rispetto al testo originale. La rilevanza, invece, indica quanto le risposte del modello siano pertinenti rispetto alle domande poste.
Analizzando le prestazioni con blocchi di diverse dimensioni, i risultati mostrano variazioni nelle metriche di fedeltà e rilevanza:
- Con blocchi di 2048 token (pezzetti di testo), la fedeltà è del 80.37% e la rilevanza del 91.11%.
- Con blocchi di 1024 token, la fedeltà sale al 94.26% e la rilevanza al 95.56%.
- Con blocchi di 512 token, la fedeltà raggiunge il 97.59% e la rilevanza il 97.41%.
- Con blocchi di 256 token, si registra una fedeltà del 97.22% e una rilevanza del 97.78%.
- Con blocchi di 128 token, la fedeltà è del 95.74% e la rilevanza del 97.22%.
Questi dati sono stati ottenuti usando LlamaIndex, uno strumento per valutare le prestazioni, e il modello text-embedding-ada-002 per convertire il testo in formati numerici che il modello può processare. I modelli utilizzati per generare e valutare le risposte includono zephyr-7b-alpha e gpt-3.5-turbo, noti per la loro efficacia nel comprendere e generare linguaggio naturale. Per mantenere la continuità del contesto tra un blocco e l'altro, è stata prevista una sovrapposizione di 20 token. I dati analizzati provengono dai primi sessanta documenti del corpus lyft_2021, utilizzati per generare circa 170 query.
Queste osservazioni evidenziano come la dimensione dei blocchi influenzi direttamente la qualità e l'efficacia delle risposte, fornendo indicazioni preziose per ottimizzare le prestazioni dei modelli di linguaggio.
Tecniche di suddivisione del testo
Per migliorare il recupero delle informazioni, esistono tecniche avanzate per suddividere il testo in blocchi, come "small-to-big" e "sliding window". Queste tecniche aiutano a organizzare meglio le relazioni tra diverse parti del testo. In pratica, blocchi di testo più piccoli vengono utilizzati per trovare corrispondenze precise con le richieste di ricerca, mentre blocchi più grandi, che includono i piccoli e informazioni contestuali aggiuntive, forniscono una risposta più completa.
Un esempio di queste tecniche è l'uso del modello di embedding LLM-Embedder. L'embedding è un metodo che converte il testo in numeri, facilitando l'elaborazione da parte dell'intelligenza artificiale. In questo caso, i blocchi più piccoli sono di 175 token (unità di misura per le parole o parti di parole), mentre i blocchi più grandi sono di 512 token, con una sovrapposizione di 20 token tra i blocchi. Queste tecniche mantengono il contesto del testo, migliorando così il recupero delle informazioni rilevanti. I dettagli sono mostrati nella Tabella 4.
La scelta del modello di embedding è cruciale per assicurare una corrispondenza accurata tra le richieste e i blocchi di testo. Utilizzando il modulo di valutazione di FlagEmbedding e il dataset "lyft_2021", si valuta quanto fedelmente il modello rappresenta i dati originali e la rilevanza delle risposte. I risultati mostrano che la tecnica "small-to-big" ha una fedeltà media del 96,67% e una rilevanza del 95,37%, mentre la tecnica "sliding window" ha una fedeltà del 97,41% e una rilevanza del 96,85%.
Per scegliere il miglior modello di embedding, si usano come query il dataset "namespace-Pt/msmarco" e come corpus il dataset "namespace-Pt/msmarco-corpus". Il modello LLM-Embedder ottiene risultati simili al modello BAAI/bge-large-en, ma è tre volte più piccolo, rendendolo una scelta equilibrata tra prestazioni e dimensioni.
L'importanza dei metadati e dei database vettoriali nel migliorare il recupero delle informazioni
Aggiungere metadati come titoli, parole chiave e domande ipotetiche ai testi aiuta a trovare informazioni più facilmente, offrire più opzioni per l'elaborazione dei testi recuperati e migliorare la comprensione dei contenuti da parte dei LLM. Per esempio, aggiungere parole chiave come "intelligenza artificiale" o "database" a un documento può renderlo più facile da trovare quando qualcuno cerca informazioni su questi argomenti.
I database vettoriali memorizzano rappresentazioni numeriche dei dati insieme ai loro metadati, permettendo di trovare documenti rilevanti in modo efficiente tramite vari metodi di indicizzazione e approssimazione dei vicini più prossimi (ANN). Immagina di avere una collezione di articoli scientifici: invece di cercare solo per parole chiave, un database vettoriale permette di cercare articoli simili basati su concetti simili.
Per scegliere il database vettoriale più adatto, sono stati considerati alcuni criteri fondamentali: la disponibilità di più tipi di indice, il supporto per vettori su scala di miliardi, la capacità di effettuare ricerche ibride e le funzionalità cloud-native. Ad esempio, se hai bisogno di cercare tra miliardi di immagini, è importante avere un database che supporti vettori su scala di miliardi.
Questi criteri sono importanti perché garantiscono flessibilità, capacità di gestire grandi quantità di dati e facilità d'uso nelle infrastrutture cloud moderne. Avere più tipi di indice permette di ottimizzare le ricerche in base a diverse caratteristiche dei dati e casi d'uso. La gestione di vettori su scala di miliardi è cruciale per applicazioni con grandi modelli linguistici, come un motore di ricerca che deve analizzare enormi quantità di testo. La ricerca ibrida combina ricerca basata su vettori e su parole chiave, migliorando la precisione dei risultati. Per esempio, una ricerca ibrida potrebbe combinare i risultati di "intelligenza artificiale" con articoli che parlano di "machine learning" anche se non usano esattamente le stesse parole. Le funzionalità cloud-native garantiscono una gestione fluida negli ambienti cloud. Una tabella comparativa ha mostrato un'analisi dettagliata di cinque database vettoriali open-source: Weaviate, Faiss, Chroma, Qdrant e Milvus.
Milvus è emerso come la soluzione più completa tra i database valutati, soddisfacendo tutti i criteri principali e superando le altre opzioni open-source.
I metodi di recupero delle informazioni sono stati testati usando i set di dati TREC DL19 e TREC DL20, valutati con vari parametri come media di precisione media (mAP), Normalized Discounted Cumulative Gain a 10 (nDCG@10), richiamo a 50 (R@50), richiamo a 1000 (R@1k) e latenza. Per esempio, mAP misura quanto sono precisi i risultati della ricerca in media, mentre nDCG@10 valuta quanto sono rilevanti i primi 10 risultati. I risultati hanno evidenziato le prestazioni dei metodi non supervisionati e supervisionati, mostrando che l'LLM-Embedder combinato con la ricerca ibrida e tecniche come HyDE ha ottenuto le migliori prestazioni complessive.
Metodi di Recupero
Una volta individuati i documenti giusti, un modello di generazione usa queste informazioni per rispondere alla richiesta. Ma spesso le richieste originali non producono buoni risultati perché sono formulate in modo poco chiaro o mancano di dettagli importanti, complicando il processo di recupero. Per migliorare questa situazione, sono stati studiati tre metodi utilizzando il LLM-Embedder per codificare sia le richieste che i documenti.
Il primo metodo è la riscrittura delle richieste: si riformulano le richieste per farle corrispondere meglio ai documenti rilevanti. Questo metodo segue il concetto di Rewrite-Retrieve-Read, dove un modello linguistico riscrive le richieste per renderle più efficaci.
Il secondo metodo è la decomposizione delle richieste: si divide una richiesta complessa in domande più semplici. Ogni domanda semplice viene poi utilizzata per trovare i documenti pertinenti.
Il terzo metodo è la generazione di pseudo-documenti: si crea un documento ipotetico basato sulla richiesta dell'utente e lo si usa per trovare documenti simili. Un esempio di questo approccio è HyDE.
Gli studi recenti indicano che combinare la ricerca basata su parole chiave con quella basata su vettori migliora notevolmente i risultati. Per la ricerca basata su parole chiave viene usato BM25, mentre per la ricerca basata su vettori si utilizza Contriever, un codificatore non supervisionato. Questi metodi vengono usati come punti di riferimento.
I vari metodi di recupero sono stati testati sui dataset TREC DL 2019 e 2020. I risultati mostrano che i metodi supervisionati sono molto più efficaci di quelli non supervisionati. Combinando HyDE con la ricerca ibrida, LLM-Embedder ottiene i migliori risultati. Tuttavia, la riscrittura e la decomposizione delle richieste non hanno migliorato molto le prestazioni di recupero. Per ottenere i migliori risultati con una latenza accettabile, si consiglia di usare la ricerca ibrida con HyDE. Questa combinazione unisce il recupero basato su parole chiave (BM25) con quello basato su vettori (Original embedding), garantendo buoni risultati con una bassa latenza.
Con HyDE, anche solo un pseudo-documento migliora i risultati, ma aggiungendo più pseudo-documenti e richieste, le prestazioni aumentano ulteriormente, sebbene anche la latenza aumenti. Modificando il parametro α nella ricerca ibrida, che rappresenta il peso dato alla combinazione tra la ricerca basata su parole chiave e quella basata su vettori, le prestazioni variano. Il valore ottimale di α dipende dal giusto equilibrio tra la precisione dei risultati (quanto sono accurati) e la latenza (il tempo necessario per ottenere i risultati).
HyDE con diversi metodi di concatenazione di documenti e query
Unire più pseudo-documenti con la query originale può migliorare le prestazioni del recupero delle informazioni, anche se richiede più tempo. Questo evidenzia la necessità di bilanciare l'efficacia del recupero con l'efficienza del processo. Aggiungere troppi documenti ipotetici, però, non migliora significativamente i risultati e aumenta solo il tempo di elaborazione. Quindi, un solo documento ipotetico è spesso sufficiente.
Nello studio è stato testato come un parametro chiamato 𝛼 influisce sulle prestazioni del sistema. Questo parametro aiuta a trovare un equilibrio tra due diversi metodi di ricerca: uno che cerca in modo più ampio (recupero sparso) e uno che cerca in modo più dettagliato (recupero denso). La formula usata per calcolare l'efficacia del sistema è: 𝑆ℎ = 𝛼 ⋅ 𝑆𝑠 + 𝑆𝑑, dove 𝑆𝑠 e 𝑆𝑑 sono i punteggi dei due metodi di ricerca, e 𝑆ℎ è il punteggio finale. Hanno provato cinque valori diversi di 𝛼 e hanno scoperto che 0,3 è il migliore. Quindi, hanno usato questo valore per i loro esperimenti principali.
Nel dataset MS MARCO, sono stati confrontati diversi metodi per riorganizzare i risultati di ricerca (reranking). Senza questa riorganizzazione, sia l'ordinamento casuale che il metodo BM25 funzionano male. Modelli come monoT5, monoBERT e RankLLaMA migliorano molto i punteggi di precisione (Mean Reciprocal Rank - MRR) e il tasso di successo (Hit Rate). Il metodo TILDE, che si basa sulle probabilità dei termini, è più veloce e mantiene buone prestazioni.
Immagina di cercare "migliori libri di fantascienza" su un motore di ricerca. La prima fase di ricerca ti dà una lista di risultati. Senza reranking, questa lista potrebbe avere i risultati più rilevanti sparsi qua e là, come se fossero ordinati a caso. Questo è simile a come funzionano l'ordinamento casuale e il metodo BM25, che non danno buoni risultati.
Ora, modelli come monoT5, monoBERT e RankLLaMA entrano in gioco per riordinare questi risultati. È come avere un esperto che riorganizza la lista per te, mettendo i libri di fantascienza più consigliati in cima. Questo aumenta molto la precisione (MRR) e il tasso di successo (Hit Rate), cioè quanto spesso trovi subito quello che cerchi.
Il metodo TILDE, invece, è come un esperto che lavora molto velocemente, usando le probabilità di trovare le parole della tua query nei risultati. Anche se è più veloce, riesce comunque a darti una lista ben organizzata.
Sono stati considerati due approcci nel reranking: DLM Reranking e TILDE Reranking.
Il metodo DLM Reranking utilizza modelli di linguaggio profondi per valutare la rilevanza dei documenti rispetto a una query, classificandoli come "veri" o "falsi". Durante l'inferenza, i documenti sono classificati in base alla probabilità del token "vero". TILDE Reranking, invece, calcola la probabilità di ogni termine della query indipendentemente, sommando le probabilità logaritmiche pre-calcolate dei termini della query per un reranking rapido.
Gli esperimenti sono stati condotti sul dataset MS MARCO Passage ranking, utilizzando i modelli monoT5, monoBERT, RankLLaMA e TILDEv2. MonoT5 è raccomandato come metodo equilibrato tra prestazioni ed efficienza, RankLLaMA per ottenere le migliori prestazioni, mentre TILDEv2 è indicato per un'esperienza più veloce su una collezione fissa.
Ripacchettamento dei documenti
L'ordine di presentazione dei documenti può influenzare le performance dei processi successivi. Per affrontare questa problematica, è stato inserito un modulo compatto di ripacchettamento all'interno del flusso di lavoro, subito dopo la fase di riordino dei documenti. Questo modulo adotta tre metodi di ripacchettamento: "forward", "reverse" e "sides". Il metodo "forward" organizza i documenti in base ai punteggi di rilevanza, dal più alto al più basso. Ad esempio, se si devono riordinare articoli scientifici in base alla loro pertinenza con un argomento specifico, questo metodo metterà per primi quelli più rilevanti. Il metodo "reverse" invece ordina i documenti dal meno rilevante al più rilevante, utile in situazioni in cui si vuole iniziare con contenuti più generali per poi arrivare a quelli più specifici. Il metodo "sides", ispirato ai risultati di uno studio di Liu e collaboratori, colloca le informazioni rilevanti sia all'inizio che alla fine dell'input, poiché è stato dimostrato che questo approccio migliora le performance. Ad esempio, in una presentazione, si potrebbe iniziare e terminare con le informazioni più importanti per mantenere alta l'attenzione del pubblico.
Per selezionare il metodo più efficace, sono stati condotti test in combinazione con altri moduli. Alla fine, il metodo "sides" è stato scelto come predefinito per le sue migliori prestazioni. Questo significa che, in una situazione pratica, come la presentazione di un report aziendale, si potrebbe iniziare e concludere con i dati più rilevanti, migliorando la comprensione e l'impatto del messaggio.
Per valutare l'efficacia dei vari metodi di ripacchettamento, sono stati utilizzati set di dati conosciuti come NQ (Natural Questions), TQA (TriviaQA) e HotPotQA (HotPot Question Answering). Le performance sono state misurate utilizzando il punteggio F1, che valuta la precisione e la completezza. Ad esempio, un punteggio F1 elevato indica che il sistema risponde accuratamente e copre tutti i punti richiesti. È stato inoltre considerato il numero medio di token, che rappresenta la lunghezza del testo, utile per capire quanto il testo sia conciso.
Senza riassunto, cioè, utilizzando i documenti così come sono senza sintetizzarli, il prompt originale ha ottenuto un punteggio F1 medio di 31.53 con una media di 139 token. Con il metodo estrattivo BM25, che seleziona e utilizza solo le parti più rilevanti dei documenti, il punteggio F1 medio è stato di 29.47 con 54 token, mentre con Contriever, un altro metodo estrattivo che cerca di trovare le informazioni più pertinenti nei testi, è stato di 27.02 con 56 token. Il ripacchettamento estrattivo, che riorganizza il contenuto selezionato per migliorare la comprensione, ha leggermente migliorato le performance, con un punteggio F1 medio di 30.87 e 51 token.
Per quanto riguarda i metodi che creano riassunti del contenuto, detti metodi astrattivi, il SelectiveContext ha ottenuto un punteggio F1 medio di 31.24 con una media di 67 token. Un altro metodo astrattivo, chiamato LongLLMlingua, ha raggiunto un punteggio F1 medio di 28.29 con una media di 55 token. Il metodo di ripacchettamento astrattivo, che riorganizza il contenuto riassunto per migliorare la comprensione e la rilevanza, ha ottenuto il miglior risultato con un punteggio F1 medio di 32.85 e una media di 59 token. Questi risultati dimostrano che l'ordine di presentazione dei documenti può migliorare significativamente la qualità delle risposte generate.
Metodi efficaci per il riassunto di documenti nel processo RAG
Le ricerche possono presentare informazioni ridondanti o inutili, rendendo difficile per i modelli di linguaggio fornire risposte precise. Inoltre, prompt troppo lunghi possono rallentare il processo di risposta. Per questo motivo, è essenziale avere metodi efficaci per riassumere i documenti recuperati durante il processo di Recupero e Generazione (RAG). Esistono due tipi principali di riassunto: estrattivo e astrattivo. I metodi estrattivi suddividono il testo in frasi, le valutano e le classificano in base alla loro rilevanza. I metodi astrattivi, invece, sintetizzano le informazioni da più documenti per creare un riassunto coerente. Questi riassunti possono essere basati su una specifica query o meno. Poiché il processo RAG recupera informazioni pertinenti per specifiche query, l'attenzione si concentra sui metodi basati su query.
Recomp utilizza due tipi di compressori: estrattivi e astrattivi. Il compressore estrattivo sceglie le frasi più utili da un testo esistente, mentre quello astrattivo combina informazioni da più documenti per creare un riassunto. LongLLMLingua è una versione migliorata di LLMLingua che si concentra sulle informazioni più importanti per una data domanda. Selective Context rende i modelli di linguaggio più efficienti eliminando le informazioni superflue dall'input, valutando l'importanza delle parole con un modello linguistico di base. Questo metodo non dipende dalle query, permettendo di confrontare approcci che usano o non usano query.
Questi metodi sono stati valutati su tre dataset di riferimento: NQ, TriviaQA e HotpotQA. Recomp è raccomandato per le sue eccellenti prestazioni. LongLLMLingua, pur non essendo altrettanto performante, dimostra migliori capacità di generalizzazione.
Effetti della rifinitura del modello generatore con contesti pertinenti e non pertinenti
Lo studio analizza l'effetto della rifinitura di un modello generatore, valutando come contesti rilevanti o irrilevanti influiscano sulle sue prestazioni. L'input del sistema è definito come "query", mentre i contesti associati a questo input sono indicati come 𝒟. La perdita durante la rifinitura del generatore è calcolata come la log-verosimiglianza negativa dell'output atteso, una misura utilizzata per valutare quanto un modello predittivo sia vicino ai valori effettivi.
Per comprendere l'impatto della rifinitura con contesti pertinenti e non, vengono definiti due tipi di contesto: 𝑑𝑔𝑜𝑙𝑑, rilevante per la query, e 𝑑𝑟𝑎𝑛𝑑𝑜𝑚, recuperato casualmente. Il modello è istruito con varie combinazioni di questi contesti. Quando il contesto include solo documenti pertinenti alla query, è indicato come 𝐷𝑔={𝑑𝑔𝑜𝑙𝑑}. Se il contesto contiene un documento selezionato casualmente, è indicato come 𝐷𝑟={𝑑𝑟𝑎𝑛𝑑𝑜𝑚}. Se il contesto include sia un documento pertinente che uno casuale, è indicato come 𝐷𝑔𝑟={𝑑𝑔𝑜𝑙𝑑, 𝑑𝑟𝑎𝑛𝑑𝑜𝑚}. Se il contesto consiste in due copie dello stesso documento pertinente, è indicato come 𝐷𝑔𝑔={𝑑𝑔𝑜𝑙𝑑, 𝑑𝑔𝑜𝑙𝑑}.
Il modello non rifinito è chiamato 𝑀𝑏, mentre le versioni rifinite sono 𝑀𝑔, 𝑀𝑟, 𝑀𝑔𝑟 e 𝑀𝑔𝑔, a seconda del contesto utilizzato nella rifinitura. Il modello viene istruito e valutato su diversi set di dati di domande e risposte (QA) e comprensione del testo. La copertura dei dati di riferimento, ossia quanto il modello riesce a rispondere correttamente utilizzando le informazioni pertinenti, è utilizzata come metrica di valutazione, data la brevità delle risposte tipiche nei compiti di QA. Il modello di base utilizzato per questo studio è Llama-2-7B, un modello di linguaggio avanzato.
Tutti i modelli istruiti vengono valutati su set di validazione con contesti 𝐷𝑔, 𝐷𝑟, 𝐷𝑔𝑟 e 𝐷∅, dove 𝐷∅ rappresenta l'inferenza senza alcun contesto aggiuntivo. I modelli istruiti con una combinazione di contesti pertinenti e casuali (𝑀𝑔𝑟) mostrano le migliori prestazioni quando testati con contesti pertinenti o misti. Questo suggerisce che la mescolanza di contesti durante la fase di istruzione aumenta la robustezza del modello, rendendolo capace di gestire informazioni non pertinenti senza perdere l'efficacia nell'utilizzare contesti rilevanti. Quindi, l'approccio ottimale per la rifinitura è includere alcuni documenti pertinenti insieme a documenti scelti casualmente.
Ottimizzazione delle pratiche per l'implementazione di RAG
Per individuare le pratiche ottimali per l'implementazione di RAG (retrieval-augmented generation), sono state inizialmente utilizzate le pratiche standard definite in una sezione specifica per ciascun modulo. Si è seguito un flusso di lavoro in cui si è proceduto a ottimizzare ogni singolo modulo, selezionando l'opzione più efficace tra quelle disponibili. Questo processo iterativo è proseguito fino a identificare il metodo migliore per implementare il modulo finale di sintesi. È stato utilizzato il modello Llama2-7B-Chat, migliorato aggiungendo alcuni documenti rilevanti selezionati casualmente per ogni query. Per costruire un database vettoriale, è stato impiegato Milvus, che contiene 10 milioni di testi dall'enciclopedia inglese Wikipedia e 4 milioni di testi di dati medici. Inoltre, è stato valutato l'impatto della rimozione dei moduli di classificazione delle query, riorganizzazione e sintesi per comprenderne il contributo.
Sono stati condotti esperimenti approfonditi su vari compiti di elaborazione del linguaggio naturale (NLP) e dataset per valutare le prestazioni dei sistemi RAG. In particolare, sono stati considerati il ragionamento di buon senso, la verifica dei fatti, il QA (domanda e risposta) a dominio aperto, il QA MultiHop e il QA medico. È stata anche valutata la capacità di RAG su sottoinsiemi estratti da questi dataset, utilizzando metriche come fedeltà, rilevanza contestuale, rilevanza delle risposte e correttezza delle risposte. Inoltre, è stata misurata la somiglianza nel recupero calcolando la similarità coseno tra i documenti recuperati e quelli di riferimento.
L'accuratezza è stata utilizzata come metrica di valutazione per i compiti di ragionamento di buon senso, verifica dei fatti e QA medico. Per il QA a dominio aperto e MultiHop, sono stati impiegati il punteggio F1 a livello di token e il punteggio di corrispondenza esatta (EM). Il punteggio finale RAG è stato calcolato come media delle cinque capacità RAG sopra menzionate. Seguendo le indicazioni di Trivedi et al., sono stati sottocampionati fino a 500 esempi per ciascun dataset.
I risultati degli esperimenti hanno mostrato che ogni modulo contribuisce in modo unico alle prestazioni complessive del sistema RAG. Il modulo di classificazione delle query migliora l'accuratezza e riduce i tempi di risposta, mentre i moduli di recupero e riorganizzazione migliorano significativamente la capacità del sistema di gestire query diverse. I moduli di riposizionamento e sintesi affinano ulteriormente l'output del sistema, garantendo risposte di alta qualità in vari compiti.
L'integrazione e l'ottimizzazione di questi moduli sono fondamentali per migliorare le prestazioni e l'efficienza dei sistemi RAG, con particolare attenzione alle configurazioni che bilanciano efficacia e costi computazionali.
Implementazione dei Sistemi RAG (Retrieval Augmented Generation)
Gli esperimenti condotti hanno identificato due modalità per implementare i sistemi RAG (Retrieval-Augmented Generation), progettate per rispondere a esigenze diverse: una focalizzata sulla massimizzazione delle prestazioni e l'altra su un compromesso tra efficienza ed efficacia. Per ottenere le prestazioni migliori, si raccomanda di integrare un modulo di classificazione delle domande, utilizzare il metodo "Hybrid con HyDE" per recuperare informazioni, impiegare monoT5 per riordinare i risultati, scegliere Reverse per il riassemblaggio e sfruttare Recomp per la sintesi finale. Questa configurazione ha ottenuto un punteggio medio di 0,483, richiedendo però un significativo impegno computazionale.
Per un equilibrio tra prestazioni ed efficienza, si consiglia di includere il modulo di classificazione delle domande, implementare il metodo Hybrid per il recupero delle informazioni, usare TILDEv2 per riordinare i risultati, optare per Reverse nel riassemblaggio e continuare a utilizzare Recomp per la sintesi. Poiché il modulo di recupero delle informazioni consuma la maggior parte del tempo di elaborazione, adottare il metodo Hybrid mantenendo invariati gli altri moduli può ridurre significativamente i tempi di risposta, senza compromettere troppo le prestazioni.
L'uso del sistema RAG è stato esteso a contesti multimodali, integrando capacità di recupero text2image (da testo a immagine) e image2text (da immagine a testo), utilizzando una vasta collezione di immagini con descrizioni testuali come fonte di recupero. Quando una domanda dell'utente corrisponde bene alle descrizioni testuali delle immagini archiviate, la funzione text2image accelera il processo di generazione delle immagini. La funzionalità image2text viene utilizzata quando un utente fornisce un'immagine per ottenere informazioni a partire da essa. Queste capacità multimodali offrono vari vantaggi.
Innanzitutto, garantiscono l'affidabilità: i metodi di recupero forniscono informazioni da materiali multimodali verificati, assicurando autenticità e specificità. Al contrario, la generazione di contenuti in tempo reale si basa su modelli che possono occasionalmente produrre errori o inesattezze. Inoltre, sono efficienti: i metodi di recupero sono generalmente più rapidi, specialmente quando la risposta è già presente nei materiali archiviati. I metodi di generazione richiedono spesso più risorse computazionali per creare nuovi contenuti, soprattutto nel caso di immagini o testi lunghi. Infine, sono facilmente mantenibili: i modelli di generazione necessitano frequentemente di un accurato adattamento per nuove applicazioni, mentre i metodi basati sul recupero possono essere migliorati semplicemente ampliando e migliorando la qualità delle fonti di recupero.
Conclusioni
L'implementazione delle tecniche di generazione aumentata dal recupero (RAG) offre un'opportunità unica per le aziende di migliorare l'efficienza e la qualità dei loro sistemi di risposta automatica. Utilizzando una combinazione di recupero delle informazioni e generazione del testo, le aziende possono garantire che le risposte fornite siano sia aggiornate che accurate, riducendo così il rischio di informazioni errate o obsolete. Questo è particolarmente vantaggioso in settori ad alta specializzazione dove la precisione e la pertinenza dei dati sono cruciali.
Per le imprese, l'integrazione di un sistema RAG non solo migliora la qualità del servizio clienti, ma ottimizza anche i processi interni. Un sistema di intelligenza artificiale avanzato che utilizza tecniche RAG può accedere rapidamente a una vasta gamma di informazioni, sia interne che esterne, e fornire risposte dettagliate e contestualmente rilevanti.
La chiave per un'implementazione efficace di RAG risiede nella scelta delle tecniche e degli strumenti giusti per ogni fase del processo. Dalla classificazione delle richieste al recupero delle informazioni, fino alla generazione e al riordino delle risposte, ogni passaggio deve essere ottimizzato per garantire un equilibrio tra prestazioni ed efficienza. Ad esempio, l'uso di modelli già addestrati su ampi insiemi di dati può ridurre significativamente i tempi di elaborazione, mentre l'integrazione di feedback continuo può affinare la qualità delle risposte nel tempo.
Un aspetto fondamentale da considerare è l'efficienza del recupero delle informazioni. L'adozione di tecniche di segmentazione avanzate e l'uso di database vettoriali possono migliorare notevolmente la precisione e la velocità del sistema. Inoltre, l'integrazione di metadati e la gestione efficiente dei database vettoriali sono cruciali per garantire che le informazioni recuperate siano pertinenti e facilmente accessibili. Questo non solo migliora la qualità delle risposte, ma riduce anche i tempi di latenza, rendendo il sistema più reattivo alle richieste degli utenti.
L'adozione di metodi di riassunto e di ripacchettamento dei documenti contribuisce ulteriormente a migliorare la qualità delle risposte. Utilizzare riassunti estrattivi e astrattivi permette di eliminare informazioni ridondanti e presentare solo i dati più rilevanti, migliorando la comprensione e la pertinenza delle risposte generate. Inoltre, il ripacchettamento dei documenti può ottimizzare la presentazione delle informazioni, assicurando che le parti più importanti siano evidenziate in modo efficace.
Un ulteriore vantaggio dell'implementazione delle tecniche RAG è la loro applicabilità a contesti multimodali. Integrare capacità di recupero text2image e image2text permette alle aziende di offrire risposte non solo testuali, ma anche visive, migliorando l'esperienza utente e soddisfacendo una gamma più ampia di richieste. Questo approccio multimodale non solo aumenta la versatilità del sistema, ma garantisce anche una maggiore affidabilità e velocità nella generazione delle risposte.
In conclusione, l'implementazione delle tecniche RAG rappresenta un'opportunità strategica per le aziende di migliorare significativamente la qualità del servizio clienti e l'efficienza operativa. Ottimizzando ogni fase del processo, dalle tecniche di recupero e generazione alle strategie di riassunto e ripacchettamento, le imprese possono garantire che le risposte fornite siano sempre accurate, pertinenti e tempestive. L'integrazione di capacità multimodali e l'uso di metadati e database vettoriali completano un sistema robusto e versatile, capace di rispondere efficacemente alle esigenze delle aziende e di adattarsi rapidamente a nuove sfide e opportunità.
Comentarios